|
Lines 701-707
Link Here
|
| 701 |
|
701 |
|
| 702 |
if ((result = |
702 |
if ((result = |
| 703 |
receive_packet (ip, u.packbuf, sizeof u, &from, &hfrom)) < 0) { |
703 |
receive_packet (ip, u.packbuf, sizeof u, &from, &hfrom)) < 0) { |
|
|
704 |
int save_errno = errno; |
| 705 |
|
| 704 |
warn ("receive_packet failed on %s: %m", ip -> name); |
706 |
warn ("receive_packet failed on %s: %m", ip -> name); |
|
|
707 |
if (save_errno == ENXIO) { |
| 708 |
/* |
| 709 |
* The interface went away. All we can do for now |
| 710 |
* is terminate since there is no support |
| 711 |
* here for handling dynamic interfaces. |
| 712 |
* |
| 713 |
* This behaviour is relatively safe. The |
| 714 |
* only time an interface should go away in |
| 715 |
* normal operation is when a laptop NIC card |
| 716 |
* is removed. If that happens there's no reason |
| 717 |
* for us to stick around. The laptop's OS should |
| 718 |
* handle restarting us when the interface comes |
| 719 |
* back. |
| 720 |
*/ |
| 721 |
error("%s: interface removed?", |
| 722 |
ip -> name); |
| 723 |
} |
| 705 |
return; |
724 |
return; |
| 706 |
} |
725 |
} |
| 707 |
if (result == 0) |
726 |
if (result == 0) |