diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2007-04-13 04:22:14 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2007-04-13 04:22:14 +0000 |
| commit | 1a94872d6b77180c6bfceaf560fb55be8909f3b2 (patch) | |
| tree | c99f13ff4e975d0f3789e0c109a7b67cf95c05e5 /src/lib | |
| parent | 183a4d78661159d31ac207ea6ea9428b86103484 (diff) | |
| download | krb5-1a94872d6b77180c6bfceaf560fb55be8909f3b2.tar.gz krb5-1a94872d6b77180c6bfceaf560fb55be8909f3b2.tar.xz krb5-1a94872d6b77180c6bfceaf560fb55be8909f3b2.zip | |
If select returns EINTR, recompute the expiration time and call it again
ticket: 5440
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19452 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/krb5/os/sendto_kdc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/krb5/os/sendto_kdc.c b/src/lib/krb5/os/sendto_kdc.c index 78bb419bd..b133ec7d2 100644 --- a/src/lib/krb5/os/sendto_kdc.c +++ b/src/lib/krb5/os/sendto_kdc.c @@ -497,6 +497,7 @@ krb5int_cm_call_select (const struct select_state *in, e = getcurtime(&now); if (e) return e; +try_again: if (out->end_time.tv_sec == 0) timo = 0; else { @@ -527,8 +528,11 @@ krb5int_cm_call_select (const struct select_state *in, else dprint(":%F\n", &out->rfds, &out->wfds, &out->xfds, out->max); - if (*sret < 0) + if (*sret < 0) { + if (e == EINTR) + goto try_again; return e; + } return 0; } |
