Releasing 1.1pre5.
[tinc] / src / vde_device.c
index ab2ffdc..446ca16 100644 (file)
@@ -1,6 +1,6 @@
 /*
     device.c -- VDE plug
-    Copyright (C) 2012 Guus Sliepen <guus@tinc-vpn.org>
+    Copyright (C) 2013 Guus Sliepen <guus@tinc-vpn.org>
 
     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
@@ -23,6 +23,7 @@
 
 #include "conf.h"
 #include "device.h"
+#include "names.h"
 #include "net.h"
 #include "logger.h"
 #include "utils.h"
@@ -35,9 +36,6 @@ static int port = 0;
 static char *group = NULL;
 static char *device_info;
 
-extern char *identname;
-extern volatile bool running;
-
 static uint64_t device_total_in = 0;
 static uint64_t device_total_out = 0;
 
@@ -99,10 +97,10 @@ static void close_device(void) {
 }
 
 static bool read_packet(vpn_packet_t *packet) {
-       int lenin = plug.vde_recv(conn, packet->data, MTU, 0);
+       int lenin = (ssize_t)plug.vde_recv(conn, packet->data, MTU, 0);
        if(lenin <= 0) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Error while reading from %s %s: %s", device_info, device, strerror(errno));
-               running = false;
+               event_exit();
                return false;
        }
 
@@ -114,10 +112,10 @@ 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(DEBUG_ALWAYS, LOG_ERR, "Can't write to %s %s: %s", device_info, device, strerror(errno));
-                       running = false;
+                       event_exit();
                }
 
                return false;