[Gd-chatter] r10915 - in trunk/libraries: packetizer pcap
hannes at gwydiondylan.org
hannes at gwydiondylan.org
Mon Oct 2 02:50:52 CEST 2006
Author: hannes
Date: Mon Oct 2 02:50:49 2006
New Revision: 10915
Modified:
trunk/libraries/packetizer/dns.dylan
trunk/libraries/packetizer/leaf-frames.dylan
trunk/libraries/packetizer/module.dylan
trunk/libraries/packetizer/packetizer.dylan
trunk/libraries/packetizer/stretchy-byte-vector.dylan
trunk/libraries/pcap/library.dylan
Log:
Bug: 7299
*inherit from <vector> to use copy-bytes on <vector>
*remove copy-bytes-into, use copy-bytes instead
*fix some imports
Modified: trunk/libraries/packetizer/dns.dylan
==============================================================================
--- trunk/libraries/packetizer/dns.dylan (original)
+++ trunk/libraries/packetizer/dns.dylan Mon Oct 2 02:50:49 2006
@@ -83,7 +83,7 @@
define method as (class == <string>, frame :: <externally-delimited-string>)
=> (res :: <string>)
let res = make(<string>, size: byte-offset(frame-size(frame)));
- copy-bytes-into!(frame.data, 0, res, 0, byte-offset(frame-size(frame)));
+ copy-bytes(frame.data, 0, res, 0, byte-offset(frame-size(frame)));
res;
end;
Modified: trunk/libraries/packetizer/leaf-frames.dylan
==============================================================================
--- trunk/libraries/packetizer/leaf-frames.dylan (original)
+++ trunk/libraries/packetizer/leaf-frames.dylan Mon Oct 2 02:50:49 2006
@@ -218,7 +218,7 @@
packet :: <stretchy-byte-vector-subsequence>,
start :: <integer>) => (res :: <integer>)
byte-aligned(start);
- copy-bytes-into!(frame.data, 0, packet, byte-offset(start), byte-offset(frame-size(frame)));
+ copy-bytes(frame.data, 0, packet, byte-offset(start), byte-offset(frame-size(frame)));
start + frame-size(frame)
end;
@@ -453,7 +453,7 @@
packet :: <stretchy-byte-vector-subsequence>,
start :: <integer>) => (res :: <integer>)
byte-aligned(start);
- copy-bytes-into!(frame.data, 0, packet, byte-offset(start), frame.data.size);
+ copy-bytes(frame.data, 0, packet, byte-offset(start), frame.data.size);
start + frame-size(frame)
end;
Modified: trunk/libraries/packetizer/module.dylan
==============================================================================
--- trunk/libraries/packetizer/module.dylan (original)
+++ trunk/libraries/packetizer/module.dylan Mon Oct 2 02:50:49 2006
@@ -11,6 +11,7 @@
use streams;
use print, import: { print-object };
use date;
+ use byte-vector;
// Add binding exports here.
export <stretchy-vector-subsequence>,
Modified: trunk/libraries/packetizer/packetizer.dylan
==============================================================================
--- trunk/libraries/packetizer/packetizer.dylan (original)
+++ trunk/libraries/packetizer/packetizer.dylan Mon Oct 2 02:50:49 2006
@@ -415,7 +415,7 @@
to-packet :: <stretchy-vector-subsequence>,
start :: <integer>) => (res :: <integer>)
byte-aligned(start);
- copy-bytes-into!(frame.packet, 0, to-packet, byte-offset(start), frame.packet.size);
+ copy-bytes(frame.packet, 0, to-packet, byte-offset(start), frame.packet.size);
end;
define method assemble-field-into(field :: <single-field>,
Modified: trunk/libraries/packetizer/stretchy-byte-vector.dylan
==============================================================================
--- trunk/libraries/packetizer/stretchy-byte-vector.dylan (original)
+++ trunk/libraries/packetizer/stretchy-byte-vector.dylan Mon Oct 2 02:50:49 2006
@@ -8,7 +8,7 @@
define constant <stretchy-byte-vector> = limited(<stretchy-vector>, of: <byte>);
-define abstract class <stretchy-vector-subsequence> (<mutable-sequence>)
+define abstract class <stretchy-vector-subsequence> (<vector>)
constant slot real-data :: <stretchy-byte-vector> = make(<stretchy-byte-vector>),
init-keyword: data:;
constant slot start-index :: <integer> = 0, init-keyword: start:;
@@ -53,7 +53,7 @@
//assumption: start, length, last are in bits!
let (start, end-offset) = check-values(start, length, last);
let (start-byte :: <integer>, start-bit :: <integer>) = truncate/(start, 8);
- if (seq.end-index & ((seq.end-index <= start-byte + seq.start-index)))
+ if (seq.end-index & ((seq.end-index < start-byte + seq.start-index)))
signal(make(<out-of-bound-error>))
end;
let (last-byte :: false-or(<integer>), last-bit :: false-or(<integer>))
@@ -118,14 +118,6 @@
real-sbv-element-setter, vs-fip-copy-state)
end;
-define method copy-bytes-into!
- (source :: <collection>, src-start :: <integer>,
- destination :: <stretchy-byte-vector-subsequence>, dest-start :: <integer>,
- length :: <integer>)
- for (i from 0 below length)
- destination[i + dest-start] := source[src-start + i]
- end;
-end;
define inline method as (class == <stretchy-byte-vector-subsequence>, data :: <byte-vector>)
=> (res :: <stretchy-byte-vector-subsequence>)
make(<stretchy-byte-vector-subsequence>, data: as(<stretchy-byte-vector>, data));
Modified: trunk/libraries/pcap/library.dylan
==============================================================================
--- trunk/libraries/pcap/library.dylan (original)
+++ trunk/libraries/pcap/library.dylan Mon Oct 2 02:50:49 2006
@@ -24,7 +24,13 @@
use machine-words;
use byte-vector;
use flow;
- use packetizer, import: { unparsed-class, <ethernet-frame>, <frame>, assemble-frame };
+ use packetizer,
+ import: { unparsed-class,
+ <ethernet-frame>,
+ <frame>,
+ assemble-frame,
+ packet,
+ <stretchy-byte-vector-subsequence> };
export <ethernet-interface>, interface-name, running?-setter, running?, find-all-devices;
end;
More information about the chatter
mailing list