Changeset View
Changeset View
Standalone View
Standalone View
head/stand/libsa/ip.c
Show First 20 Lines • Show All 410 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
time_t t; | time_t t; | ||||
ssize_t ret = -1; | ssize_t ret = -1; | ||||
t = getsecs(); | t = getsecs(); | ||||
while ((getsecs() - t) < tleft) { | while ((getsecs() - t) < tleft) { | ||||
errno = 0; | errno = 0; | ||||
ret = readipv4(d, pkt, payload, tleft, proto); | ret = readipv4(d, pkt, payload, tleft, proto); | ||||
if (ret >= 0) | |||||
return (ret); | |||||
/* Bubble up the error if it wasn't successful */ | |||||
if (errno != EAGAIN) | if (errno != EAGAIN) | ||||
break; | return (-1); | ||||
} | } | ||||
return (ret); | /* We've exhausted tleft; timeout */ | ||||
errno = ETIMEDOUT; | |||||
return (-1); | |||||
} | } |