[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