Allowing eth reconnections. Added DOCS.
--- /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++;