mirror of
https://passt.top/passt
synced 2024-11-09 14:19:56 +00:00
tap: Don't quit if pasta gets EIO on writev() to tap, interface might be down
If we start pasta with some ports forwarded, but no --config-net, say: $ ./pasta -u 10001 and then use a local, non-loopback address to send traffic to that port, say: $ socat -u FILE:test UDP4:192.0.2.1:10001 pasta writes to the tap file descriptor, but if the interface is down, we get EIO and terminate. By itself, what I'm doing in this case is not very useful (I simply forgot to pass --config-net), but if we happen to have a DHCP client in the network namespace, the interface might still be down while somebody tries to send traffic to it, and exiting in that case is not really helpful. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
a09aeb4bd6
commit
d19b396f11
1
tap.c
1
tap.c
@ -324,6 +324,7 @@ static size_t tap_send_frames_pasta(const struct ctx *c,
|
|||||||
case EINTR:
|
case EINTR:
|
||||||
case ENOBUFS:
|
case ENOBUFS:
|
||||||
case ENOSPC:
|
case ENOSPC:
|
||||||
|
case EIO: /* interface down? */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
die("Write error on tap device, exiting");
|
die("Write error on tap device, exiting");
|
||||||
|
Loading…
Reference in New Issue
Block a user