From: Ken Raeburn Date: Fri, 13 Apr 2007 04:22:14 +0000 (+0000) Subject: If select returns EINTR, recompute the expiration time and call it again X-Git-Tag: krb5-1.7-alpha1~1157 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1a94872d6b77180c6bfceaf560fb55be8909f3b2;p=krb5.git 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 --- 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; }