[Gd-chatter] r11665 - trunk/libraries/layer
hannes at gwydiondylan.org
hannes at gwydiondylan.org
Tue Feb 5 03:14:17 CET 2008
Author: hannes
Date: Tue Feb 5 03:14:16 2008
New Revision: 11665
Modified:
trunk/libraries/layer/module.dylan
trunk/libraries/layer/udp.dylan
Log:
Job: 7299
a better test case for sending udp frames...
Modified: trunk/libraries/layer/module.dylan
==============================================================================
--- trunk/libraries/layer/module.dylan (original)
+++ trunk/libraries/layer/module.dylan Tue Feb 5 03:14:16 2008
@@ -22,6 +22,7 @@
use simple-random;
use streams;
use ipv4;
+ use bittorrent;
use dhcp;
use dhcp-state-machine;
use tcp;
Modified: trunk/libraries/layer/udp.dylan
==============================================================================
--- trunk/libraries/layer/udp.dylan (original)
+++ trunk/libraries/layer/udp.dylan Tue Feb 5 03:14:16 2008
@@ -61,42 +61,29 @@
end;
define function udp-begin()
- let ip-layer = init-ip-layer();
- let udp = make(<udp-layer>, ip-layer: ip-layer);
- let socket = create-socket(udp, 53);
- connect(socket.decapsulator, make(<verbose-printer>, stream: *standard-output*));
- send(udp.ip-send-socket,
- ipv4-address("141.1.1.1"),
- make(<udp-frame>, source-port: 53, destination-port: 53,
- payload: make(<dns-frame>,
- questions: vector(make(<dns-question>,
- question-type: 1, // A
- question-class: 1, // THE INTERNET
- domainname: as(<domain-name>, "www.ccc.de"))))));
- sleep(10000);
-/*
- let tcp = make(<tcp-layer>, ip-layer: ip-layer, default-ip-address: ip-layer.default-ip-address);
- let s = create-client-socket(tcp, ipv4-address("213.73.91.29"), 80);
- write(s, "GET / HTTP/1.1\r\nHost: www.ccc.de\r\nConnection: keep-alive\r\n\r\n");
- block(ret)
- while (#t)
- let res = read(s, 20, on-end-of-stream: #f);
- //if (res)
- //format-out("Read %s\n", map-as(<string>, curry(as, <character>), res))
- //else
- close(s);
- ret();
- //end;
- end;
- end;
- let ss = create-server-socket(tcp, 23);
- while (#t)
- let conn = accept(ss);
- write(conn, "fnord");
- close(conn);
- end;
- sleep(1000);
-*/
+ let ethernet-layer
+ = build-ethernet-layer("eth0", promiscuous?: #t);
+ let ethernet-socket = create-raw-socket(ethernet-layer);
+ let (ip-layer, adapter)
+ = build-ip-layer(ethernet-layer,
+ ip-address: ipv4-address("23.23.23.112"),
+ default-gateway: ipv4-address("23.23.23.1"),
+ netmask: 24);
+
+ let bittorrent-frame = make(<bittorrent-announce>,
+ event: big-endian-unsigned-integer-4byte(#(0, 0, 0, 2)));
+ let udpframe = make(<udp-frame>,
+ source-port: 2342,
+ destination-port: 6969,
+ payload: bittorrent-frame);
+ format-out("sending %=\n", udpframe);
+ send(ip-layer, ipv4-address("217.13.206.133"), udpframe);
+
+ let ff = make(<frame-filter>, frame-filter: "udp.source-port = 6969");
+ connect(ethernet-socket, ff);
+ connect(ff, make(<verbose-printer>,
+ stream: *standard-output*));
+ sleep(100);
end;
//udp-begin();
More information about the chatter
mailing list