Close all filedescriptors in Solaris close_device().
[oweals/tinc.git] / src / solaris / device.c
index e26dc06c4d8ed84bcdc959692d8083ac9b8bf08e..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);
@@ -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);
 }