diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2002-05-23 00:52:00 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2002-05-23 00:52:00 +0000 |
| commit | f45edae0d227f2372a1b6529c590626720ee467a (patch) | |
| tree | 7c013f0da0a32a00fded93608baf4126ee62b477 /src | |
| parent | 2b1c76e215047f85ef3ff3d96ff5c763c4bd5755 (diff) | |
| download | krb5-f45edae0d227f2372a1b6529c590626720ee467a.tar.gz krb5-f45edae0d227f2372a1b6529c590626720ee467a.tar.xz krb5-f45edae0d227f2372a1b6529c590626720ee467a.zip | |
* krlogin.c (oob): Loop reading data until we actually reach the URG marker
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14448 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/appl/bsd/ChangeLog | 5 | ||||
| -rw-r--r-- | src/appl/bsd/krlogin.c | 19 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog index bbdf547dc9..6c409afaa1 100644 --- a/src/appl/bsd/ChangeLog +++ b/src/appl/bsd/ChangeLog @@ -1,3 +1,8 @@ +2002-05-22 Ken Raeburn <raeburn@mit.edu> + + * krlogin.c (oob): Loop reading data until we actually reach the + URG marker. + 2002-03-26 Ken Raeburn <raeburn@mit.edu> * defines.h (FAI_PREFIX): Don't define. diff --git a/src/appl/bsd/krlogin.c b/src/appl/bsd/krlogin.c index 7831298975..c497dc2fb6 100644 --- a/src/appl/bsd/krlogin.c +++ b/src/appl/bsd/krlogin.c @@ -1469,20 +1469,25 @@ int server_message(mark) void oob() { char mark; - char waste[RLOGIN_BUFSIZ]; - int atmark; + static char waste[RLOGIN_BUFSIZ]; + int atmark, n; mark = 0; recv(rem, &mark, 1, MSG_OOB); if (server_message(mark)) { - if (ioctl(rem, SIOCATMARK, &atmark) < 0) { - perror("ioctl"); - return; + for (;;) { + if (ioctl(rem, SIOCATMARK, &atmark) < 0) { + perror("ioctl"); + return; + } + if (atmark) + break; + n = read(rem, waste, sizeof (waste)); + if (n <= 0) + break; } - if (!atmark) - read(rem, waste, sizeof (waste)); } } |
