summaryrefslogtreecommitdiffstats
path: root/src/appl/gss-sample/gss-misc.c
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1995-06-10 04:29:38 +0000
committerTheodore Tso <tytso@mit.edu>1995-06-10 04:29:38 +0000
commitc4b14f1a8f0c749a1f25b42536abfc8db2e17ac1 (patch)
tree527094cec1625bb878a9e1fb59e21874973db12f /src/appl/gss-sample/gss-misc.c
parente228371e1e7d1cc027d6104c416dc3b30fba2618 (diff)
downloadkrb5-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.c20
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;