[Gd-chatter] r11040 - trunk/libraries/network/koala/sources/examples/buddha

hannes at gwydiondylan.org hannes at gwydiondylan.org
Fri Dec 8 17:40:12 CET 2006


Author: hannes
Date: Fri Dec  8 17:40:08 2006
New Revision: 11040

Modified:
   trunk/libraries/network/koala/sources/examples/buddha/TODO
   trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan
   trunk/libraries/network/koala/sources/examples/buddha/config.dylan
   trunk/libraries/network/koala/sources/examples/buddha/vlan.dylan
   trunk/libraries/network/koala/sources/examples/buddha/zone.dylan
Log:
Bug: 7257
*improvements to compile again (looks like we'll use buddha also on 23c3)
*minor updates on TODO

Modified: trunk/libraries/network/koala/sources/examples/buddha/TODO
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/TODO	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/TODO	Fri Dec  8 17:40:08 2006
@@ -23,6 +23,10 @@
           list of mac-address and ip, recent changes?))
  *put obj-tables in user session objects
 
+*aaaa, srv, naptr, txt dns records
+*host-records:
+ foo.vlanx.congress.ccc.de IN MX 10 example.com.
+
 security:
  -prevent cross-site scripting (escape nearly everything in all input data,
   maybe enki's framework-stuff andreas implemented in dylan on his laptop)

Modified: trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan	Fri Dec  8 17:40:08 2006
@@ -55,9 +55,11 @@
              end;
              //dns, dhcp shouldn't need a valid user
              //(to get it working with wget and stuff, without needing cookies)
-             unless (logged-in(request))
-               login(request);
-               unless (logged-in(request))
+             unless (logged-in?(request))
+               let username = get-query-value("username");
+               let password = get-query-value("password");
+               login(request, username, password);
+               unless (logged-in?(request))
                  //error
                  respond-to-get(#"login", request, response,
                                 errors: list(make(<web-error>,
@@ -220,7 +222,7 @@
                               request :: <request>,
                               response :: <response>,
                               #key errors = #())
-  if (*user* & *user*.admin?)
+  if (*user*) // & *user*.admin?)
     let out = output-stream(response);
     with-buddha-template(out, "User management")
       collect(show-errors(errors));
@@ -551,7 +553,7 @@
                                                                   href => concatenate("/subnet-detail?subnet=",
                                                                                       get-reference(y))) },
                                                            td(show(y.dhcp?)),
-                                                           td { a(show(y.vlan.number),
+                                                           td { a(show(y.vlan.vlan-number),
                                                                   href => concatenate("/vlan-detail?vlan=",
                                                                                       get-reference(y.vlan))) },
                                                              td }
@@ -760,7 +762,7 @@
                   do(reset-color(storage(<vlan>));
                      map(method(x) with-xml()
                                      tr(class => next-color(storage(<vlan>)))
-                                       { td { a(show(x.number),
+                                       { td { a(show(x.vlan-number),
                                                href => concatenate("/vlan-detail?vlan=",
                                                                    get-reference(x))) },
                                           td(show(x.vlan-name)),
@@ -789,12 +791,12 @@
      #key errors)
   let dvlan = get-object(get-query-value("vlan"));
   let out = output-stream(response);
-  with-buddha-template(out, concatenate("VLAN ", show(dvlan.number), " detail"))
+  with-buddha-template(out, concatenate("VLAN ", show(dvlan.vlan-number), " detail"))
     collect(show-errors(errors));
     collect(with-xml()
               div(id => "content")
               {
-                h1(concatenate("VLAN ", show(dvlan.number), ", Name ", dvlan.vlan-name)),
+                h1(concatenate("VLAN ", show(dvlan.vlan-number), ", Name ", dvlan.vlan-name)),
                 do(edit-form(dvlan,
                              refer: "vlan-detail",
                              xml: with-xml()
@@ -803,7 +805,7 @@
                                           value => get-reference(dvlan))
                                   end)),
                 do(remove-form(dvlan, storage(<vlan>), url: "vlan")),
-                h2(concatenate("Subnets in VLAN ", show(dvlan.number))),
+                h2(concatenate("Subnets in VLAN ", show(dvlan.vlan-number))),
                 table {
                   tr { th("CIDR"), th("dhcp?") },
                   do(reset-color(storage(<subnet>));
@@ -1012,8 +1014,8 @@
                               do(reset-color(dzone.cnames);
                                  map(method(x) with-xml()
                                                  tr(class => next-color(dzone.cnames))
-                                                   { td(x.source),
-                                                     td(x.target),
+                                                   { td(x.cname-source),
+                                                     td(x.cname-target),
                                                      td { do(remove-form(x, dzone.cnames,
                                                                          url: "zone-detail",
                                                                          xml: with-xml()

Modified: trunk/libraries/network/koala/sources/examples/buddha/config.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/config.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/config.dylan	Fri Dec  8 17:40:08 2006
@@ -40,13 +40,13 @@
 
 define method check-in-context (tzone :: <zone>, tcname :: <cname>)
  => (res :: <boolean>)
-  if (any?(method(x) x.source = tcname.source end, tzone.cnames))
+  if (any?(method(x) x.source = tcname.cname-source end, tzone.cnames))
     signal(make(<web-error>,
                 error: "Same A record already exists"));
-  elseif (any?(method(x) x.host-name = tcname.source end, tzone.a-records))
+  elseif (any?(method(x) x.host-name = tcname.cname-source end, tzone.a-records))
     signal(make(<web-error>,
                 error: "Same A record already exists"));
-  elseif (any?(method(x) x.host-name = tcname.source end,
+  elseif (any?(method(x) x.host-name = tcname.cname-source end,
                choose(method(y) y.zone = tzone end, storage(<host>))))
     signal(make(<web-error>,
                 error: "Same A record already exists"));
@@ -95,7 +95,7 @@
                       host.zone.a-records)) > 0)
     signal(make(<web-error>,
                 error: "A record for host already exists in zone"));
-  elseif (size(choose(method(x) x.target = host.host-name end,
+  elseif (size(choose(method(x) x.cname-target = host.host-name end,
                       host.zone.cnames)) > 0)
     signal(make(<web-error>,
                 error: "A record already exists in zone"));
@@ -124,10 +124,10 @@
 define method check (vlan :: <vlan>, #key test-result = 0)
  => (res :: <boolean>)
   let vlans = storage(<vlan>);
-  if ((vlan.number < 0) | (vlan.number > 4095))
+  if ((vlan.vlan-number < 0) | (vlan.vlan-number > 4095))
     signal(make(<web-error>,
                 error: "VLAN not in range 0 - 4095"));
-  elseif (size(choose(method(x) x.number = vlan.number end , vlans)) > test-result)
+  elseif (size(choose(method(x) x.vlan-number = vlan.vlan-number end , vlans)) > test-result)
     signal(make(<web-error>,
                 error: "VLAN with same number already exists"));
   elseif (size(choose(method(x) x.vlan-name = vlan.vlan-name end, vlans)) > test-result)

Modified: trunk/libraries/network/koala/sources/examples/buddha/vlan.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/vlan.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/vlan.dylan	Fri Dec  8 17:40:08 2006
@@ -2,9 +2,9 @@
 author: Hannes Mehnert <hannes at mehnert.org>
 
 define web-class <vlan> (<reference-object>)
-  data number :: <integer>;
+  data vlan-number :: <integer>;
   data vlan-name :: <string>;
-  data description :: <string>;
+  data vlan-description :: <string>;
 end;
 
 define method print-object (vlan :: <vlan>, stream :: <stream>)
@@ -14,10 +14,10 @@
 
 define method as (class == <string>, vlan :: <vlan>)
  => (res :: <string>)
-  concatenate(integer-to-string(vlan.number), " ", vlan.vlan-name);
+  concatenate(integer-to-string(vlan.vlan-number), " ", vlan.vlan-name);
 end;
 
 define method \< (a :: <vlan>, b :: <vlan>)
  => (res :: <boolean>)
-  a.number < b.number
+  a.vlan-number < b.vlan-number
 end;

Modified: trunk/libraries/network/koala/sources/examples/buddha/zone.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/zone.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/zone.dylan	Fri Dec  8 17:40:08 2006
@@ -2,8 +2,8 @@
 author: Hannes Mehnert <hannes at mehnert.org>
 
 define web-class <cname> (<object>)
-  data source :: <string>;
-  data target :: <string>;
+  data cname-source :: <string>;
+  data cname-target :: <string>;
 end;
 
 define method print-object (cname :: <cname>, stream :: <stream>)
@@ -13,12 +13,12 @@
 
 define method as (class == <string>, cname :: <cname>)
  => (res :: <string>)
-  concatenate(cname.source, " => ", cname.target);
+  concatenate(cname.cname-source, " => ", cname.cname-target);
 end;
 
 define method \< (a :: <cname>, b :: <cname>)
  => (res :: <boolean>)
-  a.source < b.source
+  a.cname-source < b.cname-source
 end;
 
 define web-class <a-record> (<object>)
@@ -236,7 +236,7 @@
     //CNAME
     do(method(x)
            format(stream, "C%s.%s:%s.%s\n",
-                  source(x), print-zone.zone-name, target(x), print-zone.zone-name);
+                  cname-source(x), print-zone.zone-name, cname-target(x), print-zone.zone-name);
        end, print-zone.cnames);
     //a records for dynamic PTR records
     let ip = storage(<network>)[0].cidr.cidr-network-address;



More information about the chatter mailing list