[Gd-chatter] r10930 - trunk/libraries/packetizer

hannes at gwydiondylan.org hannes at gwydiondylan.org
Wed Oct 18 01:13:24 CEST 2006


Author: hannes
Date: Wed Oct 18 01:13:22 2006
New Revision: 10930

Modified:
   trunk/libraries/packetizer/dns.dylan
   trunk/libraries/packetizer/protocol-definer-macro.dylan
Log:
Bug: 7299
*some more start-fixes for parse-frame

Modified: trunk/libraries/packetizer/dns.dylan
==============================================================================
--- trunk/libraries/packetizer/dns.dylan	(original)
+++ trunk/libraries/packetizer/dns.dylan	Wed Oct 18 01:13:22 2006
@@ -109,19 +109,16 @@
 
 define method parse-frame (frame-type == <domain-name-fragment>,
                            packet :: <byte-sequence>,
-                           #key start :: <integer> = 0,
-                           parent :: false-or(<container-frame>) = #f)
+                           #key parent :: false-or(<container-frame>) = #f)
  => (value :: <domain-name-fragment>, next-unparsed :: false-or(<integer>))
-  byte-aligned(start);
-  let domain-name = make(unparsed-class(<domain-name-fragment>),
-                         packet: subsequence(packet, start: byte-offset(start)));
+  let domain-name = make(unparsed-class(<domain-name-fragment>), packet: packet);
   let label-frame-type
     = select (domain-name.type-code)
         0 => <label>;
         3 => <label-offset>;
         otherwise => signal(make(<malformed-packet-error>))
       end;
-  parse-frame(label-frame-type, packet, start: start, parent: parent);
+  parse-frame(label-frame-type, packet, parent: parent);
 end;
 
 

Modified: trunk/libraries/packetizer/protocol-definer-macro.dylan
==============================================================================
--- trunk/libraries/packetizer/protocol-definer-macro.dylan	(original)
+++ trunk/libraries/packetizer/protocol-definer-macro.dylan	Wed Oct 18 01:13:22 2006
@@ -304,11 +304,11 @@
     frame-fields := add!(frame-fields,
                          make(<rep-frame-field>,
                               start: start,
-                              end: byte-offset(start) * 8 + offset,
-                              length: byte-offset(start) * 8 + offset - start,
+                              end: start + offset,
+                              length: offset,
                               frame: value,
                               parent: ff));
-    start := byte-offset(start) * 8 + offset;
+    start := start + offset;
     while ((~ field.reached-end?(frames.last)) & (byte-offset(start) < packet.size))
       let (value, offset)
         = parse-frame(field.type,
@@ -321,11 +321,11 @@
       frame-fields := add!(frame-fields,
                            make(<rep-frame-field>,
                                 start: start,
-                                end: byte-offset(start) * 8 + offset,
-                                length: byte-offset(start) * 8 + offset - start,
+                                end: start + offset,
+                                length: offset,
                                 frame: value,
                                 parent: ff));
-      start :=  byte-offset(start) * 8 + offset;
+      start :=  start + offset;
     end;
   end;
   values(frames, start);
@@ -351,11 +351,11 @@
       frame-fields := add!(frame-fields,
                            make(<rep-frame-field>,
                                 start: start,
-                                end: byte-offset(start) * 8 + offset,
-                                length: byte-offset(start) * 8 + offset - start,
+                                end: start + offset,
+                                length: offset,
                                 frame: value,
                                 parent: ff));
-      start := byte-offset(start) * 8 + offset;
+      start := start + offset;
     end;
   end;
   values(frames, start);



More information about the chatter mailing list