[Gd-chatter] r11532 - in trunk/libraries: gui-sniffer layer utilities/state-machine

andreas at gwydiondylan.org andreas at gwydiondylan.org
Mon Dec 10 00:17:45 CET 2007


Author: andreas
Date: Mon Dec 10 00:17:44 2007
New Revision: 11532

Modified:
   trunk/libraries/gui-sniffer/commands.dylan
   trunk/libraries/gui-sniffer/library.dylan
   trunk/libraries/gui-sniffer/module.dylan
   trunk/libraries/layer/layer.dylan
   trunk/libraries/utilities/state-machine/state-machine.dylan
Log:
job: 7299

Ignore unconnected nodes on disconnect, added timeout to "ping" command.


Modified: trunk/libraries/gui-sniffer/commands.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/commands.dylan	(original)
+++ trunk/libraries/gui-sniffer/commands.dylan	Mon Dec 10 00:17:44 2007
@@ -66,9 +66,16 @@
   let socket = create-filter-socket(context.nnv-context.ip-layer,
                                     list(protocol: 1, source-address: target),
                                     #());
+  let timer = make(<timer>,
+                   in: 10,
+                   event: method()
+                            format(stream, "Timeout waiting for response from %s\n", target);
+                            close-socket(socket);
+                          end);
   let response-handler = make(<closure-node>, 
                               closure: method(packet :: <icmp-frame>)
                                          format(stream, "Host %s is alive\n", target);
+                                         cancel(timer);
                                          close-socket(socket);
                                        end);
   connect(socket, response-handler);
@@ -96,7 +103,7 @@
           let default-cidr = as(<cidr>, "0.0.0.0/0");
           delete-route(context.nnv-context.ip-layer, default-cidr);
           add-next-hop-route(context.nnv-context.ip-layer, router, default-cidr);
-          //format(context.context-server.server-output-stream, "received ack %s\n", as(<string>, frame));
+          format(context.context-server.server-output-stream, "IP address configured from DHCP to %s\n", ip);
         end;
   let dhcp = make(<dhcp-client>, send-socket: socket, response-callback: set-ip);
   connect(socket.decapsulator, dhcp);

Modified: trunk/libraries/gui-sniffer/library.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/library.dylan	(original)
+++ trunk/libraries/gui-sniffer/library.dylan	Mon Dec 10 00:17:44 2007
@@ -19,4 +19,5 @@
   use protocols;
   use network-interfaces;
   use layer;
+  use timer;
 end library gui-sniffer;

Modified: trunk/libraries/gui-sniffer/module.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/module.dylan	(original)
+++ trunk/libraries/gui-sniffer/module.dylan	Mon Dec 10 00:17:44 2007
@@ -61,8 +61,8 @@
   use cidr;
   use tcp;
   use ipv6;
-  // Add binding exports here.
   use deuce-internals, prefix: "deuce/";
   use network-interfaces;
   use layer;
+  use timer;
 end module gui-sniffer;

Modified: trunk/libraries/layer/layer.dylan
==============================================================================
--- trunk/libraries/layer/layer.dylan	(original)
+++ trunk/libraries/layer/layer.dylan	Mon Dec 10 00:17:44 2007
@@ -72,6 +72,14 @@
   connect(socket.socket-layer.fan-out, input.the-input);
 end;
 
+define method disconnect (false == #f, object :: <object>)
+  // catch-all: already disconnected
+end;
+
+define method disconnect (object :: <object>, false == #f)
+  // catch-all: already disconnected
+end;
+
 define method disconnect (socket :: <raw-socket>, input :: <push-input>)
   disconnect(socket.socket-layer.fan-out, input);
 end;
@@ -155,7 +163,7 @@
 define method close-socket (socket :: <filter-socket>) => ();
   disconnect(socket.decapsulator.the-output, socket.decapsulator.the-output.connected-input);
   disconnect(socket.demultiplexer-output, socket.decapsulator.the-input);
-  disconnect(socket.completer.the-output, socket.completer.the-output.conected-input);
+  disconnect(socket.completer.the-output, socket.completer.the-output.connected-input);
   disconnect(socket.completer.the-input.connected-output, socket.completer.the-input);
 end;  
 

Modified: trunk/libraries/utilities/state-machine/state-machine.dylan
==============================================================================
--- trunk/libraries/utilities/state-machine/state-machine.dylan	(original)
+++ trunk/libraries/utilities/state-machine/state-machine.dylan	Mon Dec 10 00:17:44 2007
@@ -45,7 +45,7 @@
 define method process-event (dingens :: <protocol-state-encapsulation>, event :: <symbol>)
   let old-state = dingens.state;
   let new-state = next-state(old-state, event);
-  format-out("State transition %= => %=\n", old-state, new-state);
+  //format-out("State transition %= => %=\n", old-state, new-state);
   dingens.state := new-state;
   state-transition(dingens, old-state, new-state);
 end;



More information about the chatter mailing list