- register struct tftphdr *stp = (struct tftphdr *)sbuf;
- register struct tftphdr *rtp = (struct tftphdr *)rbuf;
- register int block = 0, size, n, amount = 0;
- struct sockaddr_in from, to;
- time_t start = time(0), delta;
- int fromlen, aborted = 0;
-
- to = sin;
+ register struct tftphdr *ap; /* data and ack packets */
+ struct tftphdr *r_init(), *dp;
+ register int block = 0, size, n;
+ register unsigned long amount = 0;
+ struct sockaddr_in from;
+ int fromlen;
+ int convert; /* true if doing nl->crlf conversion */
+ FILE *file;
+
+ startclock(); /* start stat's clock */
+ dp = r_init(); /* reset fillbuf/read-ahead code */
+ ap = (struct tftphdr *)ackbuf;
+ file = fdopen(fd, "r");
+ convert = !strcmp(mode, "netascii");
+