version 1.8, 2001/07/31 14:32:15 |
version 1.9, 2001/11/19 19:02:16 |
|
|
char *name; |
char *name; |
char *mode; |
char *mode; |
{ |
{ |
register struct tftphdr *ap; /* data and ack packets */ |
struct tftphdr *ap; /* data and ack packets */ |
struct tftphdr *r_init(), *dp; |
struct tftphdr *r_init(), *dp; |
register int n; |
int n; |
volatile int block, size, convert; |
volatile int block, size, convert; |
volatile unsigned long amount; |
volatile unsigned long amount; |
struct sockaddr_in from; |
struct sockaddr_in from; |
|
|
char *name; |
char *name; |
char *mode; |
char *mode; |
{ |
{ |
register struct tftphdr *ap; |
struct tftphdr *ap; |
struct tftphdr *dp, *w_init(); |
struct tftphdr *dp, *w_init(); |
register int n; |
int n; |
volatile int block, size, firsttrip; |
volatile int block, size, firsttrip; |
volatile unsigned long amount; |
volatile unsigned long amount; |
struct sockaddr_in from; |
struct sockaddr_in from; |
|
|
struct tftphdr *tp; |
struct tftphdr *tp; |
const char *mode; |
const char *mode; |
{ |
{ |
register char *cp; |
char *cp; |
|
|
tp->th_opcode = htons((u_short)request); |
tp->th_opcode = htons((u_short)request); |
cp = tp->th_stuff; |
cp = tp->th_stuff; |
|
|
nak(error) |
nak(error) |
int error; |
int error; |
{ |
{ |
register struct errmsg *pe; |
struct errmsg *pe; |
register struct tftphdr *tp; |
struct tftphdr *tp; |
int length; |
int length; |
|
|
tp = (struct tftphdr *)ackbuf; |
tp = (struct tftphdr *)ackbuf; |
|
|
{ |
{ |
static char *opcodes[] = |
static char *opcodes[] = |
{ "#0", "RRQ", "WRQ", "DATA", "ACK", "ERROR" }; |
{ "#0", "RRQ", "WRQ", "DATA", "ACK", "ERROR" }; |
register char *cp, *file; |
char *cp, *file; |
u_short op = ntohs(tp->th_opcode); |
u_short op = ntohs(tp->th_opcode); |
|
|
if (op < RRQ || op > ERROR) |
if (op < RRQ || op > ERROR) |