Fix errno references when handling socket errors.
[tinc] / src / net_setup.c
index 8c04d00..e3c543c 100644 (file)
@@ -417,7 +417,7 @@ char *get_name(void) {
                                return false;
                        }
                        if(gethostname(hostname, sizeof hostname) || !*hostname) {
-                               logger(DEBUG_ALWAYS, LOG_ERR, "Could not get hostname: %s\n", strerror(errno));
+                               logger(DEBUG_ALWAYS, LOG_ERR, "Could not get hostname: %s\n", sockstrerror(sockerrno));
                                return false;
                        }
                        hostname[31] = 0;
@@ -728,6 +728,9 @@ static bool add_listen_address(char *address, bool bindto) {
 }
 
 void device_enable(void) {
+       if (devops.enable)
+               devops.enable();
+
        /* Run tinc-up script to further initialize the tap interface */
 
        char *envp[5] = {NULL};
@@ -753,6 +756,9 @@ void device_disable(void) {
 
        for(int i = 0; i < 4; i++)
                free(envp[i]);
+
+       if (devops.disable)
+               devops.disable();
 }
 
 /*
@@ -974,7 +980,7 @@ static bool setup_myself(void) {
                for(int i = 0; i < listen_sockets; i++) {
                        salen = sizeof sa;
                        if(getsockname(i + 3, &sa.sa, &salen) < 0) {
-                               logger(DEBUG_ALWAYS, LOG_ERR, "Could not get address of listen fd %d: %s", i + 3, sockstrerror(errno));
+                               logger(DEBUG_ALWAYS, LOG_ERR, "Could not get address of listen fd %d: %s", i + 3, sockstrerror(sockerrno));
                                return false;
                        }