[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