X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fmingw%2Fdevice.c;h=e025cf78f564be93eb43941de3956fbc46b28127;hp=004249ce49f82efc94b9bb0c775cdd7012184770;hb=78fc59e994c764d072bf0045177f690a378d1308;hpb=03f3fc01e8d9402c4a14904fded883ff8cc574f6 diff --git a/src/mingw/device.c b/src/mingw/device.c index 004249ce..e025cf78 100644 --- a/src/mingw/device.c +++ b/src/mingw/device.c @@ -1,7 +1,7 @@ /* device.c -- Interaction with Windows tap driver in a MinGW environment Copyright (C) 2002-2005 Ivo Timmermans, - 2002-2006 Guus Sliepen + 2002-2009 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 @@ -38,7 +38,7 @@ int device_fd = 0; static HANDLE device_handle = INVALID_HANDLE_VALUE; char *device = NULL; char *iface = NULL; -char *device_info = NULL; +static char *device_info = NULL; static int device_total_in = 0; static int device_total_out = 0; @@ -52,7 +52,7 @@ static struct packetbuf { static int nbufs = 64; -DWORD WINAPI tapreader(void *bla) { +static DWORD WINAPI tapreader(void *bla) { int sock, err, status; struct addrinfo *ai; struct addrinfo hint = { @@ -76,18 +76,20 @@ DWORD WINAPI tapreader(void *bla) { sock = socket(ai->ai_family, SOCK_STREAM, IPPROTO_TCP); - freeaddrinfo(ai); - if(sock < 0) { logger(LOG_ERR, _("System call `%s' failed: %s"), "socket", strerror(errno)); + freeaddrinfo(ai); return -1; } if(connect(sock, ai->ai_addr, ai->ai_addrlen)) { logger(LOG_ERR, _("System call `%s' failed: %s"), "connect", strerror(errno)); + freeaddrinfo(ai); return -1; } + freeaddrinfo(ai); + logger(LOG_DEBUG, _("Tap reader running")); /* Read from tap device and send to parent */ @@ -143,7 +145,7 @@ bool setup_device(void) .ai_family = AF_UNSPEC, .ai_socktype = SOCK_STREAM, .ai_protocol = IPPROTO_TCP, - .ai_flags = AI_PASSIVE, + .ai_flags = 0, }; cp(); @@ -311,6 +313,9 @@ void close_device(void) cp(); CloseHandle(device_handle); + + free(device); + free(iface); } bool read_packet(vpn_packet_t *packet)