|
Lines 242-252
extern int slurm_send_timeout(int fd, char *buf, size_t size,
Link Here
|
| 242 |
* nonblocking read means just that. |
242 |
* nonblocking read means just that. |
| 243 |
*/ |
243 |
*/ |
| 244 |
if (ufds.revents & POLLERR) { |
244 |
if (ufds.revents & POLLERR) { |
| 245 |
int e; |
245 |
int e, rc; |
| 246 |
|
246 |
|
| 247 |
fd_get_socket_error(fd, &e); |
247 |
if ((rc = fd_get_socket_error(fd, &e))) |
| 248 |
debug("%s: Socket POLLERR: %s", |
248 |
debug("%s: Socket POLLERR, fd_get_socket_error failed: %s", |
| 249 |
__func__, slurm_strerror(e)); |
249 |
__func__, slurm_strerror(rc)); |
|
|
250 |
else |
| 251 |
debug("%s: Socket POLLERR: %s", |
| 252 |
__func__, slurm_strerror(e)); |
| 250 |
|
253 |
|
| 251 |
slurm_seterrno(e); |
254 |
slurm_seterrno(e); |
| 252 |
sent = SLURM_ERROR; |
255 |
sent = SLURM_ERROR; |
|
Lines 254-263
extern int slurm_send_timeout(int fd, char *buf, size_t size,
Link Here
|
| 254 |
} |
257 |
} |
| 255 |
if ((ufds.revents & POLLHUP) || (ufds.revents & POLLNVAL) || |
258 |
if ((ufds.revents & POLLHUP) || (ufds.revents & POLLNVAL) || |
| 256 |
(recv(fd, &temp, 1, flags) == 0)) { |
259 |
(recv(fd, &temp, 1, flags) == 0)) { |
| 257 |
int so_err; |
260 |
int so_err, rc; |
| 258 |
fd_get_socket_error(fd, &so_err); |
261 |
if ((rc = fd_get_socket_error(fd, &so_err))) |
| 259 |
debug2("%s: Socket no longer there: %s", |
262 |
debug2("%s: Socket no longer there, fd_get_socket_error failed: %s", |
| 260 |
__func__, slurm_strerror(so_err)); |
263 |
__func__, slurm_strerror(rc)); |
|
|
264 |
else |
| 265 |
debug2("%s: Socket no longer there: %s", |
| 266 |
__func__, slurm_strerror(so_err)); |
| 261 |
slurm_seterrno(so_err); |
267 |
slurm_seterrno(so_err); |
| 262 |
sent = SLURM_ERROR; |
268 |
sent = SLURM_ERROR; |
| 263 |
goto done; |
269 |
goto done; |
|
Lines 352-362
extern int slurm_recv_timeout(int fd, char *buffer, size_t size,
Link Here
|
| 352 |
} |
358 |
} |
| 353 |
|
359 |
|
| 354 |
if (ufds.revents & POLLERR) { |
360 |
if (ufds.revents & POLLERR) { |
| 355 |
int e; |
361 |
int e, rc; |
| 356 |
|
362 |
|
| 357 |
fd_get_socket_error(fd, &e); |
363 |
if ((rc = fd_get_socket_error(fd, &e))) |
| 358 |
debug("%s: Socket POLLERR: %s", |
364 |
debug("%s: Socket POLLERR: fd_get_socket_error failed: %s", |
| 359 |
__func__, slurm_strerror(e)); |
365 |
__func__, slurm_strerror(rc)); |
|
|
366 |
else |
| 367 |
debug("%s: Socket POLLERR: %s", |
| 368 |
__func__, slurm_strerror(e)); |
| 360 |
|
369 |
|
| 361 |
slurm_seterrno(e); |
370 |
slurm_seterrno(e); |
| 362 |
recvlen = SLURM_ERROR; |
371 |
recvlen = SLURM_ERROR; |
|
Lines 365-375
extern int slurm_recv_timeout(int fd, char *buffer, size_t size,
Link Here
|
| 365 |
if ((ufds.revents & POLLNVAL) || |
374 |
if ((ufds.revents & POLLNVAL) || |
| 366 |
((ufds.revents & POLLHUP) && |
375 |
((ufds.revents & POLLHUP) && |
| 367 |
((ufds.revents & POLLIN) == 0))) { |
376 |
((ufds.revents & POLLIN) == 0))) { |
| 368 |
int so_err; |
377 |
int so_err, rc; |
| 369 |
fd_get_socket_error(fd, &so_err); |
378 |
if ((rc = fd_get_socket_error(fd, &so_err))) { |
| 370 |
debug2("%s: Socket no longer there: %s", |
379 |
debug2("%s: Socket no longer there: fd_get_socket_error failed: %s", |
| 371 |
__func__, slurm_strerror(so_err)); |
380 |
__func__, slurm_strerror(rc)); |
| 372 |
slurm_seterrno(so_err); |
381 |
slurm_seterrno(rc); |
|
|
382 |
} else { |
| 383 |
debug2("%s: Socket no longer there: %s", |
| 384 |
__func__, slurm_strerror(so_err)); |
| 385 |
slurm_seterrno(so_err); |
| 386 |
} |
| 373 |
recvlen = SLURM_ERROR; |
387 |
recvlen = SLURM_ERROR; |
| 374 |
goto done; |
388 |
goto done; |
| 375 |
} |
389 |
} |