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