[Linux-decnet-commit] CVS: dnprogs/multinet multinet.c,1.4,1.5
Brought to you by:
chrissie_c,
ph3-der-loewe
From: Patrick C. <pa...@us...> - 2006-03-29 12:11:28
|
Update of /cvsroot/linux-decnet/dnprogs/multinet In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13789 Modified Files: multinet.c Log Message: More tinkering Index: multinet.c =================================================================== RCS file: /cvsroot/linux-decnet/dnprogs/multinet/multinet.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** multinet.c 29 Mar 2006 10:20:57 -0000 1.4 --- multinet.c 29 Mar 2006 12:11:23 -0000 1.5 *************** *** 60,64 **** #define DUMP_MAX 1024 ! static int send_ip(int use_seq, unsigned char *, int len); static void dump_data(char *from, unsigned char *databuf, int datalen) --- 60,64 ---- #define DUMP_MAX 1024 ! static int send_ip(int fudge_header, unsigned char *, int len); static void dump_data(char *from, unsigned char *databuf, int datalen) *************** *** 169,173 **** dump_data("to TUN0:", header, header_len); ! dump_data("to TUN1:", buf+6, len-6); writev(tunfd, iov, 2); --- 169,173 ---- dump_data("to TUN0:", header, header_len); ! dump_data("to TUN1:", buf, len); writev(tunfd, iov, 2); *************** *** 267,283 **** if (buf[4] == 0x05) /* PtP hello */ { ! // TODO get router priority & level from /proc */ ! unsigned char hello[] = {/* Router 2 hello message */ ! 0x00, 0x00, /* Length, filled in later */ ! 0x0b, /* FLAGS: Router hello */ ! 0x02, 0x00, 0x00, /* Router version */ 0xaa, 0x00, 0x04, 0x00, buf[5], buf[6], /* Routers MAC addr */ ! router_level, /* Info, including routing level */ mtu % 0xFF, mtu >> 8, /* Data block size */ ! 0x40, /* Priority */ ! 0x00, /* Reserved */ ! 0x0f, 0x00, /* Hello timer (seconds) */ ! 0x00, /* Reserved */ ! 0x00, /* Length of (other 'logical' ethernets) message that follows */ }; --- 267,282 ---- if (buf[4] == 0x05) /* PtP hello */ { ! unsigned char hello[] = { ! 0x00, 0x00, /* Length, filled in later */ ! 0x0b, /* FLAGS: Router hello */ ! 0x02, 0x00, 0x00, /* Router version */ 0xaa, 0x00, 0x04, 0x00, buf[5], buf[6], /* Routers MAC addr */ ! router_level, /* Info, including routing level */ mtu % 0xFF, mtu >> 8, /* Data block size */ ! router_priority, /* Priority */ ! 0x00, /* Reserved */ ! 0x0f, 0x00, /* Hello timer (seconds) */ // TODO ! 0x00, /* Reserved */ ! 0x00, /* Length of (other 'logical' ethernets) message that follows */ }; *************** *** 286,290 **** got_verification = 1; ! alarm(0); } --- 285,289 ---- got_verification = 1; ! alarm(0); /* cancel START timer */ } *************** *** 310,314 **** } ! if (buf[4] == 0x07) /* Routing info */ // TODO Fix this ! { /* --- 309,313 ---- } ! if (buf[4] == 0x07 || buf[4] == 0x09) /* Routing info */ // TODO Fix this ! { /* *************** *** 326,331 **** off Multinet: ! 09 00 00 00 09 23 ! 0c 00 3f 00 01 00 04 04 0a 04 00 00 ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f 04 04 ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f --- 325,330 ---- off Multinet: ! 09 00 00 00 multinet header ! 09 23 0c 00 3f 00 01 00 04 04 0a 04 00 00 ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f 04 04 ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f *************** *** 378,381 **** --- 377,386 ---- return ; } + /* Routing messages, Don't fudge the header on these */ + if (buf[16] == 0x07 || buf[16] == 0x09) + { + send_ip(0, buf+16, len-16); + return; + } /* Data or other packet */ *************** *** 436,440 **** } - return tunfd; } --- 441,444 ---- |