summaryrefslogtreecommitdiffstats
path: root/src
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
parente228371e1e7d1cc027d6104c416dc3b30fba2618 (diff)
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')
-rw-r--r--src/appl/gss-sample/ChangeLog5
-rw-r--r--src/appl/gss-sample/gss-misc.c20
2 files changed, 14 insertions, 11 deletions
diff --git a/src/appl/gss-sample/ChangeLog b/src/appl/gss-sample/ChangeLog
index 6b37c09fe..097a40e2b 100644
--- a/src/appl/gss-sample/ChangeLog
+++ b/src/appl/gss-sample/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jun 10 00:28:50 1995 Theodore Y. Ts'o <tytso@dcl>
+
+ * gss-misc.c (recv_token): Allow for partial reads while reading
+ the token.
+
Fri Jun 9 18:26:50 1995 <tytso@rsx-11.mit.edu>
* configure.in: Remove standardized set of autoconf macros, which
diff --git a/src/appl/gss-sample/gss-misc.c b/src/appl/gss-sample/gss-misc.c
index f4478aa7b..625c601b5 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;