Fix tftpd and tftp to support file transfers of over 65535 blocks

(about 31 MB - 32 MB).

Submitted (partially)
	by: Pascal Hofstee <daeron@wit401305.student.utwente.nl>
This commit is contained in:
Jeroen Ruigrok van der Werven 2001-02-02 10:53:02 +00:00
parent 294156a7ff
commit 67034ac6ad
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=71926
4 changed files with 14 additions and 4 deletions

View File

@ -192,3 +192,8 @@ and the
.Fl c
option was introduced in
.Fx 5.0 .
.Sh BUGS
Files larger than 33488896 octets (65535 blocks) cannot be transferred
without client and server supporting blocksize negotiation (RFC1783).
.Pp
Many tftp clients will not transfer files over 16744448 octets (32767 blocks).

View File

@ -501,7 +501,7 @@ xmitfile(pf)
struct tftphdr *dp, *r_init();
register struct tftphdr *ap; /* ack packet */
register int size, n;
volatile int block;
volatile unsigned short block;
signal(SIGALRM, timer);
dp = r_init();
@ -571,7 +571,7 @@ recvfile(pf)
struct tftphdr *dp, *w_init();
register struct tftphdr *ap; /* ack buffer */
register int n, size;
volatile int block;
volatile unsigned short block;
signal(SIGALRM, timer);
dp = w_init();

View File

@ -167,6 +167,9 @@ protocol, the remote site will probably have some
sort of file-access restrictions in place. The
exact methods are specific to each site and therefore
difficult to document here.
.Pp
Files larger than 33488896 octets (65535 blocks) cannot be transferred
without client and server supporting blocksize negotiation (RFC1783).
.Sh HISTORY
The
.Nm

View File

@ -96,7 +96,8 @@ xmitfile(fd, name, mode)
register struct tftphdr *ap; /* data and ack packets */
struct tftphdr *r_init(), *dp;
register int n;
volatile int block, size, convert;
volatile unsigned short block;
volatile int size, convert;
volatile unsigned long amount;
struct sockaddr_in from;
int fromlen;
@ -201,7 +202,8 @@ recvfile(fd, name, mode)
register struct tftphdr *ap;
struct tftphdr *dp, *w_init();
register int n;
volatile int block, size, firsttrip;
volatile unsigned short block;
volatile int size, firsttrip;
volatile unsigned long amount;
struct sockaddr_in from;
int fromlen;