[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