Close all filedescriptors in Solaris close_device().
[oweals/tinc.git] / src / solaris / device.c
index 43938006b36cf1de794d05c9b94c12e89061d96d..d14975b311c9e8ee50372d307b687c7f737c15e1 100644 (file)
 #define DEFAULT_DEVICE "/dev/tun"
 
 int device_fd = -1;
+int ip_fd = -1, if_fd = -1;
 char *device = NULL;
 char *iface = NULL;
 static char *device_info = NULL;
 
-static int device_total_in = 0;
-static int device_total_out = 0;
+static uint64_t device_total_in = 0;
+static uint64_t device_total_out = 0;
 
 bool setup_device(void) {
-       int ip_fd = -1, if_fd = -1;
        int ppa;
        char *ptr;
 
@@ -105,6 +105,8 @@ bool setup_device(void) {
 }
 
 void close_device(void) {
+       close(if_fd);
+       close(ip_fd);
        close(device_fd);
 
        free(device);
@@ -131,7 +133,7 @@ bool read_packet(vpn_packet_t *packet) {
                        break;
                default:
                        ifdebug(TRAFFIC) logger(LOG_ERR,
-                                          _ ("Unknown IP version %d while reading packet from %s %s"),
+                                          "Unknown IP version %d while reading packet from %s %s",
                                           packet->data[14] >> 4, device_info, device);
                        return false;
        }
@@ -163,6 +165,6 @@ bool write_packet(vpn_packet_t *packet) {
 
 void dump_device_stats(void) {
        logger(LOG_DEBUG, "Statistics for %s %s:", device_info, device);
-       logger(LOG_DEBUG, " total bytes in:  %10d", device_total_in);
-       logger(LOG_DEBUG, " total bytes out: %10d", device_total_out);
+       logger(LOG_DEBUG, " total bytes in:  %10"PRIu64, device_total_in);
+       logger(LOG_DEBUG, " total bytes out: %10"PRIu64, device_total_out);
 }