From: Stefan E. <se...@us...> - 2003-03-18 16:20:58
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1:/tmp/cvs-serv16301 Modified Files: tftp.c ip_bits.c bootp.c arp.c Log Message: - updated to use new net/net.h include Index: tftp.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/tftp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- tftp.c 18 Mar 2003 15:05:07 -0000 1.2 +++ tftp.c 18 Mar 2003 16:20:49 -0000 1.3 @@ -7,17 +7,13 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -//#include "init.h" #include <util.h> #include <serial.h> +#include <net/net.h> #include <net/ip_bits.h> #include <net/arp.h> - -#define memeq( x, y, s ) (memcmp((x), (y), (s)) == 0) -#define memzero( x, s ) memset((x), 0, (s)) -#define printascii( s ) SerialOutputString( s ) -#define printch( c ) SerialOutputChar( c ) +#include <net/tftp.h> #define TFTP_DEBUG #ifdef TFTP_DEBUG @@ -56,9 +52,6 @@ static unsigned int tftp_length; static unsigned int block; static unsigned long tftp_received; - -extern unsigned char clientipaddress[4]; -extern unsigned char serveripaddress[4]; int tftp_rcv(unsigned long *addr) { Index: ip_bits.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ip_bits.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ip_bits.c 17 Mar 2003 15:15:29 -0000 1.1 +++ ip_bits.c 18 Mar 2003 16:20:49 -0000 1.2 @@ -7,18 +7,12 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -//#include "init.h" #include <util.h> #include <serial.h> +#include <net/net.h> #include <net/ether.h> #include <net/ip_bits.h> -#define memeq( x, y, s ) (memcmp((x), (y), (s)) == 0) -#define memzero( x, s ) memset((x), 0, (s)) -#define printascii( s ) SerialOutputString( s ) -#define printch( c ) SerialOutputChar( c ) - -extern unsigned char hwaddress[6]; unsigned long ip_sequence = 0; unsigned int checksum (unsigned char *ptr, int len, unsigned int cksum) Index: bootp.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/bootp.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- bootp.c 17 Mar 2003 15:15:29 -0000 1.1 +++ bootp.c 18 Mar 2003 16:20:50 -0000 1.2 @@ -7,16 +7,11 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -//#include "init.h" #include <util.h> #include <serial.h> +#include <net/net.h> #include <net/ip_bits.h> -#define memeq( x, y, s ) (memcmp((x), (y), (s)) == 0) -#define memzero( x, s ) memset((x), 0, (s)) -#define printascii( s ) SerialOutputString( s ) -#define printch( c ) SerialOutputChar( c ) - static const unsigned char bootp_txpacket[] = { /* destination - broadcast */ /*+source address */ @@ -54,8 +49,6 @@ static unsigned long zero = 0; static unsigned char bootp_tx[42 + 300]; static unsigned char bootp_rx[42 + 400]; - -extern unsigned char hwaddress[6]; unsigned char clientipaddress[4]; unsigned char serveripaddress[4]; Index: arp.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/arp.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- arp.c 17 Mar 2003 15:15:27 -0000 1.1 +++ arp.c 18 Mar 2003 16:20:50 -0000 1.2 @@ -9,12 +9,11 @@ */ //#include "init.h" #include <util.h> +#include <serial.h> +#include <net/net.h> #include <net/ether.h> #include <net/arp.h> -#define memeq( x, y, s ) (memcmp((x), (y), (s)) == 0) -#define memzero( x, s ) memset((x), 0, (s)) - static const unsigned char arp_txpacket[] = { /* destination address */ /* source address */ @@ -30,14 +29,11 @@ static unsigned char arp_tx[64]; static unsigned char arp_rx[64]; -extern unsigned char hwaddress[6]; -extern unsigned char clientipaddress[4]; - int arp_rcv (unsigned char *thwaddress) { unsigned int size; - size = readether (arp_rx, 64); + size = readether (arp_rx, sizeof(arp_rx)); if (!size) return 0; @@ -54,10 +50,11 @@ return 1; } -void do_arp (unsigned char *thwaddress, unsigned char *tipaddress) +int do_arp(unsigned char *thwaddress, unsigned char *tipaddress) { int i; unsigned char *p = arp_tx; + int retry = 8; memzero (p, sizeof (arp_tx)); memset (p, 0xff, 6); @@ -67,11 +64,13 @@ memcpy (p + 38, tipaddress, 4); do { - writeether (p, 60); + writeether (arp_tx, sizeof(arp_tx)); for (i = 0; i < 0x00040000; i++) { if (arp_rcv (thwaddress)) - return; + return 0; } - } while (1); + } while (--retry); + + return -1; } |