along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: device.c,v 1.1.2.10 2003/08/02 21:33:19 guus Exp $
+ $Id: device.c,v 1.1.2.13 2003/08/08 19:49:47 guus Exp $
*/
#include "system.h"
int device_total_in = 0;
int device_total_out = 0;
+extern char *myport;
+
DWORD WINAPI tapreader(void *bla) {
int sock, err, status;
struct addrinfo *ai;
/* Open a socket to the parent process */
- err = getaddrinfo(NULL, "12345", &hint, &ai);
+ err = getaddrinfo(NULL, myport, &hint, &ai);
if(err || !ai) {
logger(LOG_ERR, _("System call `%s' failed: %s"), "getaddrinfo", gai_strerror(errno));
.ai_family = AF_UNSPEC,
.ai_socktype = SOCK_DGRAM,
.ai_protocol = IPPROTO_UDP,
- .ai_flags = AI_PASSIVE,
+ .ai_flags = 0,
};
cp();
continue;
len = sizeof(adaptername);
- RegQueryValueEx(key2, "Name", 0, 0, adaptername, &len);
+ err = RegQueryValueEx(key2, "Name", 0, 0, adaptername, &len);
RegCloseKey(key2);
+ if(err)
+ continue;
+
if(device) {
if(!strcmp(device, adapterid)) {
found = true;
}
if(device_handle == INVALID_HANDLE_VALUE) {
- logger(LOG_ERR, _("%s (%s) is no a usable Windows tap device!"), device, iface);
+ logger(LOG_ERR, _("%s (%s) is not a usable Windows tap device: %s"), device, iface, winerror(GetLastError()));
return false;
}
/* Get MAC address from tap device */
if(!DeviceIoControl(device_handle, TAP_IOCTL_GET_MAC, mymac.x, sizeof(mymac.x), mymac.x, sizeof(mymac.x), &len, 0)) {
- logger(LOG_ERR, _("Could not get MAC address from Windows tap device!"));
+ logger(LOG_ERR, _("Could not get MAC address from Windows tap device %s (%s): %s"), device, iface, winerror(GetLastError()));
return false;
}
/* Create a listening socket */
- err = getaddrinfo(NULL, "12345", &hint, &ai);
+ err = getaddrinfo(NULL, myport, &hint, &ai);
if(err || !ai) {
logger(LOG_ERR, _("System call `%s' failed: %s"), "getaddrinfo", gai_strerror(errno));