[Gd-chatter] r11638 - in trunk/libraries: layer packetizer

hannes at gwydiondylan.org hannes at gwydiondylan.org
Fri Jan 18 23:36:42 CET 2008


Author: hannes
Date: Fri Jan 18 23:36:42 2008
New Revision: 11638

Modified:
   trunk/libraries/layer/dhcp.dylan
   trunk/libraries/packetizer/protocol-definer-macro.dylan
Log:
Job: 7299
fixes for enum fields

Modified: trunk/libraries/layer/dhcp.dylan
==============================================================================
--- trunk/libraries/layer/dhcp.dylan	(original)
+++ trunk/libraries/layer/dhcp.dylan	Fri Jan 18 23:36:42 2008
@@ -77,7 +77,7 @@
   let server-option = find-option(state.offer, <dhcp-server-identifier-option>);
   //XXX: somehow the #"dhcprequest" doesn't work here :/
   let options = list(make(<dhcp-message-type-option>,
-                          message-type: 3), //#"dhcprequest"),
+                          message-type: #"dhcprequest"),
                      make(<dhcp-requested-ip-address-option>,
                           requested-ip: state.offer.your-ip-address),
                      make(<dhcp-server-identifier-option>,

Modified: trunk/libraries/packetizer/protocol-definer-macro.dylan
==============================================================================
--- trunk/libraries/packetizer/protocol-definer-macro.dylan	(original)
+++ trunk/libraries/packetizer/protocol-definer-macro.dylan	Fri Jan 18 23:36:42 2008
@@ -38,17 +38,20 @@
   let args = copy-sequence(key/value-pairs);
   for (ele in fields)
     if (instance?(ele, <enum-field>))
-      let (key, pos)
+      let pos
         = block(ret)
             for (i :: <integer> from 0 below key/value-pairs.size by 2)
               if (key/value-pairs[i] == ele.field-name)
-                ret(values(key/value-pairs[i + 1], i + 1))
+                ret(i + 1);
               end;
             end;
           end;
-      if (key & instance?(key, <symbol>))
-        //format-out("changed %= from %= to %=\n", ele.field-name, key, enum-field-symbol-to-int(ele, key));
-        args[pos] := enum-field-symbol-to-int(ele, key);
+      if (pos)
+        let key = key/value-pairs[pos];
+        if (instance?(key, <symbol>))
+          //format-out("changed %= from %= to %=\n", ele.field-name, key, enum-field-symbol-to-int(ele, key));
+          args[pos] := enum-field-symbol-to-int(ele, key);
+        end;
       end;
     end;
   end;



More information about the chatter mailing list