diff options
author | Theodore Tso <tytso@mit.edu> | 1995-06-10 04:29:38 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1995-06-10 04:29:38 +0000 |
commit | c4b14f1a8f0c749a1f25b42536abfc8db2e17ac1 (patch) | |
tree | 527094cec1625bb878a9e1fb59e21874973db12f /src/appl/gss-sample/gss-misc.c | |
parent | e228371e1e7d1cc027d6104c416dc3b30fba2618 (diff) | |
download | krb5-c4b14f1a8f0c749a1f25b42536abfc8db2e17ac1.tar.gz krb5-c4b14f1a8f0c749a1f25b42536abfc8db2e17ac1.tar.xz krb5-c4b14f1a8f0c749a1f25b42536abfc8db2e17ac1.zip |
Allow for partial reads while reading the token
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6032 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/gss-sample/gss-misc.c')
-rw-r--r-- | src/appl/gss-sample/gss-misc.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/appl/gss-sample/gss-misc.c b/src/appl/gss-sample/gss-misc.c index f4478aa7bb..625c601b59 100644 --- a/src/appl/gss-sample/gss-misc.c +++ b/src/appl/gss-sample/gss-misc.c @@ -114,6 +114,7 @@ int recv_token(s, tok) gss_buffer_t tok; { int ret; + int readsofar; if (display_file == 0) display_file = stderr; @@ -137,17 +138,14 @@ int recv_token(s, tok) return -1; } - ret = read(s, (char *) tok->value, tok->length); - if (ret < 0) { - perror("reading token data"); - free(tok->value); - return -1; - } else if (ret != tok->length) { - fprintf(display_file, - "sending token data: %d of %d bytes written\n", - ret, tok->length); - free(tok->value); - return -1; + while (readsofar < tok->length) { + ret = read(s, (char *) tok->value, tok->length); + readsofar += ret; + if (ret < 0) { + perror("reading token data"); + free(tok->value); + return -1; + } } return 0; |