logo       
Google Custom Search
    AddThis Social Bookmark Button

r10675 - trunk/libraries/packetizer: msg#00066

Subject: r10675 - trunk/libraries/packetizer
Author: hannes
Date: Fri Apr  7 02:33:55 2006
New Revision: 10675

Modified:
   trunk/libraries/packetizer/packetizer.dylan
   trunk/libraries/packetizer/protocol-definer-macro.dylan
Log:
Bug: 7299
*fix assemble-frame problem (when parsing dns, use the start init keyword for 
the subsequence...)
*implement assemble-frame for <unparsed-container-frame> (not sure if it is 
called with current class hierarchy)

Modified: trunk/libraries/packetizer/packetizer.dylan
==============================================================================
--- trunk/libraries/packetizer/packetizer.dylan (original)
+++ trunk/libraries/packetizer/packetizer.dylan Fri Apr  7 02:33:55 2006
@@ -159,6 +159,11 @@
 define generic assemble-frame
   (frame :: <frame>) => (packet :: <vector>);
 
+define method assemble-frame
+  (frame :: <unparsed-container-frame>) => (packet :: <vector>)
+  frame.packet;
+end;
+
 define generic assemble-frame-as
     (frame-type :: subclass(<frame>), data :: <object>) => (packet :: 
<vector>);
 
@@ -531,7 +536,8 @@
   unless (frame-field.%value)
     let (my-frame, my-length) = parse-frame-field(frame-field);
     frame-field.%value := my-frame;
-    frame-field.%length := frame-field.end-offset - my-length;
+    frame-field.%end-offset := my-length;
+    frame-field.%length := frame-field.%end-offset - frame-field.%start-offset;
   end;
   frame-field.%value;
 end;

Modified: trunk/libraries/packetizer/protocol-definer-macro.dylan
==============================================================================
--- trunk/libraries/packetizer/protocol-definer-macro.dylan     (original)
+++ trunk/libraries/packetizer/protocol-definer-macro.dylan     Fri Apr  7 
02:33:55 2006
@@ -358,7 +358,7 @@
                            parent :: false-or(<container-frame>) = #f)
   byte-aligned(start);
   let frame = make(unparsed-class(frame-type),
-                   packet: packet,
+                   packet: subsequence(packet, start: byte-offset(start)),
                    parent: parent);
   let length = field-size(frame-type);
   if (length = $unknown-at-compile-time)
-- 
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://www.gwydiondylan.org/mailman/listinfo/gd-chatter




Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>