X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fvde_device.c;h=1f1d8cf8c9861d99ef16c3ec9031e2b11755b724;hp=8f601e79361040d7c82c0e021b89680a20a26015;hb=cfe6558d4ba4f572311aeafd62737f6f2692ad86;hpb=178e52f76ef4ba40748c13ea7e518837394d6dbc diff --git a/src/vde_device.c b/src/vde_device.c index 8f601e79..1f1d8cf8 100644 --- a/src/vde_device.c +++ b/src/vde_device.c @@ -1,6 +1,6 @@ /* device.c -- VDE plug - Copyright (C) 2011 Guus Sliepen + Copyright (C) 2012 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -74,6 +74,10 @@ static bool setup_device(void) { device_fd = plug.vde_datafd(conn); +#ifdef FD_CLOEXEC + fcntl(device_fd, F_SETFD, FD_CLOEXEC); +#endif + logger(LOG_INFO, "%s is a %s", device, device_info); if(routing_mode == RMODE_ROUTER) @@ -110,7 +114,7 @@ static bool read_packet(vpn_packet_t *packet) { } static bool write_packet(vpn_packet_t *packet) { - if(plug.vde_send(conn, packet->data, packet->len, 0) < 0) { + if((ssize_t)plug.vde_send(conn, packet->data, packet->len, 0) < 0) { if(errno != EINTR && errno != EAGAIN) { logger(LOG_ERR, "Can't write to %s %s: %s", device_info, device, strerror(errno)); running = false;