X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fmulticast_device.c;h=931a8d0284879fbc8401439f6adbde280a24dcd6;hp=48e120038236055db48b2777181a72b441704dc1;hb=d4410d0cce40929db9a0ce7042ef962f1867234d;hpb=41583d5dcfc1277b1a203478de4cce2cd0cda1b1 diff --git a/src/multicast_device.c b/src/multicast_device.c index 48e12003..931a8d02 100644 --- a/src/multicast_device.c +++ b/src/multicast_device.c @@ -129,7 +129,7 @@ static bool setup_device(void) { #endif default: - logger(DEBUG_ALWAYS, LOG_ERR, "Multicast for address family %hx unsupported", ai->ai_family); + logger(DEBUG_ALWAYS, LOG_ERR, "Multicast for address family %x unsupported", ai->ai_family); goto error; } @@ -148,25 +148,27 @@ error: } static void close_device(void) { - close(device_fd); + close(device_fd); device_fd = -1; - free(device); - free(iface); + free(device); device = NULL; + free(iface); iface = NULL; - if(ai) - freeaddrinfo(ai); + if(ai) { + freeaddrinfo(ai); ai = NULL; + } + device_info = NULL; } static bool read_packet(vpn_packet_t *packet) { int lenin; - if((lenin = recv(device_fd, (void *)packet->data, MTU, 0)) <= 0) { + if((lenin = recv(device_fd, DATA(packet), MTU, 0)) <= 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while reading from %s %s: %s", device_info, - device, strerror(errno)); + device, sockstrerror(sockerrno)); return false; } - if(!memcmp(&ignore_src, packet->data + 6, sizeof ignore_src)) { + if(!memcmp(&ignore_src, DATA(packet) + 6, sizeof ignore_src)) { logger(DEBUG_SCARY_THINGS, LOG_DEBUG, "Ignoring loopback packet of %d bytes from %s", lenin, device_info); return false; } @@ -183,13 +185,13 @@ static bool write_packet(vpn_packet_t *packet) { logger(DEBUG_TRAFFIC, LOG_DEBUG, "Writing packet of %d bytes to %s", packet->len, device_info); - if(sendto(device_fd, (void *)packet->data, packet->len, 0, ai->ai_addr, ai->ai_addrlen) < 0) { + if(sendto(device_fd, DATA(packet), packet->len, 0, ai->ai_addr, ai->ai_addrlen) < 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Can't write to %s %s: %s", device_info, device, - strerror(errno)); + sockstrerror(sockerrno)); return false; } - memcpy(&ignore_src, packet->data + 6, sizeof ignore_src); + memcpy(&ignore_src, DATA(packet) + 6, sizeof ignore_src); return true; }