summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1993-12-01 22:14:09 +0000
committerTheodore Tso <tytso@mit.edu>1993-12-01 22:14:09 +0000
commit6b50ce396e5dfcf7b4b8c169ca076485ac256466 (patch)
tree1ec3bd591192b37d305c32daaac0e202c51ae5b4 /src/lib
parent875c1214865914b338392b9da1890567d2bdff18 (diff)
downloadkrb5-6b50ce396e5dfcf7b4b8c169ca076485ac256466.tar.gz
krb5-6b50ce396e5dfcf7b4b8c169ca076485ac256466.tar.xz
krb5-6b50ce396e5dfcf7b4b8c169ca076485ac256466.zip
If the select gets an EINTR error, retry with that host immediately, instead
of backing off through the exponential timeout. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@3055 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/os/sendto_kdc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/krb5/os/sendto_kdc.c b/src/lib/krb5/os/sendto_kdc.c
index f8dc24cab..64b964292 100644
--- a/src/lib/krb5/os/sendto_kdc.c
+++ b/src/lib/krb5/os/sendto_kdc.c
@@ -132,6 +132,7 @@ OLDDECLARG(krb5_data *, reply)
if (send(socklist[addr[host].sa_family],
message->data, message->length, 0) != message->length)
continue;
+ retry:
waitlen.tv_usec = 0;
waitlen.tv_sec = timeout;
FD_ZERO(&readable);
@@ -143,7 +144,7 @@ OLDDECLARG(krb5_data *, reply)
&waitlen)) {
if (nready == -1) {
if (errno == EINTR)
- continue;
+ goto retry;
retval = errno;
goto out;
}