diff options
author | Sam Hartman <hartmans@mit.edu> | 1996-07-27 01:56:47 +0000 |
---|---|---|
committer | Sam Hartman <hartmans@mit.edu> | 1996-07-27 01:56:47 +0000 |
commit | 558444b37c64554d1d67242c88de9972b87fdaff (patch) | |
tree | 6549b58fdcc9bafe98f3152116ba24dae206f58b /src/appl/gssftp/ftp/ftp.c | |
parent | 52b8d0ca3bc884064f288fc936ee82a6a7a04569 (diff) | |
download | krb5-558444b37c64554d1d67242c88de9972b87fdaff.tar.gz krb5-558444b37c64554d1d67242c88de9972b87fdaff.tar.xz krb5-558444b37c64554d1d67242c88de9972b87fdaff.zip |
* Define a non-zero FUDGE_FACTOR for GSSAPI; I have it set to 64 now,
even though I tend to see 52 bytes of increased data because I'm not
sure that the 52 bytes is constant across all implementations ands
options.
* When allocating outbuf, set bufsize to the size that was actually
allocated; it tends not to be nbyte+FUDGE_FACTOR exactly, and you
smash the heap if you store a different size than you actually
allocate.
* If a secure_putbyte fails, set nout to zero so you don't run off the
end of the buffer next time around.
* Only write out foure bytes of net_len, no matter how big it is. The
right answer is to have it be some 32-bit type but I'm not sure if I
should use the krb5 type, the GSSAPI type, or what. (Remember, this
code has ifdefs for KerberosIV without GSSAPI)
* While we're at it, if secure_write fails while writing out a file in
the client, notice the error. (a break in an inner loop didn't break
out quite far enough)
With these changes, I am able to get and put multi-megabyte
files even on an Alpha.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8847 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/gssftp/ftp/ftp.c')
-rw-r--r-- | src/appl/gssftp/ftp/ftp.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/appl/gssftp/ftp/ftp.c b/src/appl/gssftp/ftp/ftp.c index a90987f9f5..0a2f4d1544 100644 --- a/src/appl/gssftp/ftp/ftp.c +++ b/src/appl/gssftp/ftp/ftp.c @@ -892,6 +892,8 @@ sendrequest(cmd, local, remote, printnames) } (void) fflush(stdout); } + if (d <= 0 ) + break; } if (hash && bytes > 0) { if (bytes < HASHBYTES) |