Allowing eth reconnections. Added DOCS.
authorlbatlle@npdl268.bpo.hp.com
Wed, 26 Sep 2007 15:18:30 +0200
changeset 46 bb76f8ca177d
parent 45 9e73cd37514e
child 47 8dcc45d8f3e5
Allowing eth reconnections. Added DOCS.
DOCS
eth_proto.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DOCS	Wed Sep 26 15:18:30 2007 +0200
@@ -0,0 +1,6 @@
+Pseudo-terminals:
+ http://tldp.org/HOWTO/Text-Terminal-HOWTO-7.html
+
+Job Control and sessions:
+ http://www.fh-wedel.de/~di/html/glibc/libc_24.html (Job Control)
+ Interesting on 'setsid'.
--- a/eth_proto.c	Wed Sep 26 00:56:51 2007 +0200
+++ b/eth_proto.c	Wed Sep 26 15:18:30 2007 +0200
@@ -71,17 +71,19 @@
     int res;
     int seq;
     enum Control c;
+    char partner[6];
 
     do {
-        if (edata.seq_wait == 0)
-        {
-            res = eth_recv(eth_buffer, sizeof(eth_buffer), edata.partner);
+            res = eth_recv(eth_buffer, sizeof(eth_buffer), partner);
             edata.partner_set = 1;
-        }
-        else
-            res = eth_recv(eth_buffer, sizeof(eth_buffer), 0);
     } while(res < HEAD);
     parse_head(eth_buffer, &seq, &c, &res);
+    /* We admit any first connection */
+    if (seq == 0)
+    {
+      edata.seq_wait = 0;
+      memcpy(edata.partner, partner, sizeof(edata.partner));
+    }
     if (seq != edata.seq_wait)
     {
         edata.wrong_recv++;