Convert sizeof foo to sizeof(foo).
[tinc] / src / net_setup.c
index b0a0c95..85553be 100644 (file)
@@ -1,7 +1,7 @@
 /*
     net_setup.c -- Setup.
     Copyright (C) 1998-2005 Ivo Timmermans,
-                  2000-2016 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-2017 Guus Sliepen <guus@tinc-vpn.org>
                   2006      Scott Lamb <slamb@slamb.org>
                   2010      Brandon Black <blblack@gmail.com>
 
@@ -48,7 +48,6 @@
 #endif
 
 char *myport;
-static char *myname;
 static io_t device_io;
 devops_t devops;
 bool device_standby = false;
@@ -237,7 +236,7 @@ static bool read_invitation_key(void) {
                invitation_key = NULL;
        }
 
-       snprintf(fname, sizeof fname, "%s" SLASH "invitations" SLASH "ed25519_key.priv", confbase);
+       snprintf(fname, sizeof(fname), "%s" SLASH "invitations" SLASH "ed25519_key.priv", confbase);
 
        fp = fopen(fname, "r");
 
@@ -329,7 +328,7 @@ void load_all_nodes(void) {
        struct dirent *ent;
        char dname[PATH_MAX];
 
-       snprintf(dname, sizeof dname, "%s" SLASH "hosts", confbase);
+       snprintf(dname, sizeof(dname), "%s" SLASH "hosts", confbase);
        dir = opendir(dname);
        if(!dir) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Could not open %s: %s", dname, strerror(errno));
@@ -612,6 +611,9 @@ bool setup_myself_reloadable(void) {
 
        get_config_bool(lookup_config(config_tree, "DisableBuggyPeers"), &disablebuggypeers);
 
+       if(!get_config_int(lookup_config(config_tree, "InvitationExpire"), &invitation_lifetime))
+               invitation_lifetime = 604800; // 1 week
+
        read_invitation_key();
 
        return true;
@@ -705,29 +707,17 @@ void device_enable(void) {
 
        /* Run tinc-up script to further initialize the tap interface */
 
-       char *envp[5] = {NULL};
-       xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
-       xasprintf(&envp[1], "DEVICE=%s", device ? : "");
-       xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
-       xasprintf(&envp[3], "NAME=%s", myname);
-
-       execute_script("tinc-up", envp);
-
-       for(int i = 0; i < 4; i++)
-               free(envp[i]);
+       environment_t env;
+       environment_init(&env);
+       execute_script("tinc-up", &env);
+       environment_exit(&env);
 }
 
 void device_disable(void) {
-       char *envp[5] = {NULL};
-       xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
-       xasprintf(&envp[1], "DEVICE=%s", device ? : "");
-       xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
-       xasprintf(&envp[3], "NAME=%s", myname);
-
-       execute_script("tinc-down", envp);
-
-       for(int i = 0; i < 4; i++)
-               free(envp[i]);
+       environment_t env;
+       environment_init(&env);
+       execute_script("tinc-down", &env);
+       environment_exit(&env);
 
        if (devops.disable)
                devops.disable();
@@ -857,7 +847,7 @@ static bool setup_myself(void) {
        /* Generate packet encryption key */
 
        if(!get_config_string(lookup_config(config_tree, "Cipher"), &cipher))
-               cipher = xstrdup("blowfish");
+               cipher = xstrdup("aes-256-cbc");
 
        if(!strcasecmp(cipher, "none")) {
                myself->incipher = NULL;
@@ -881,7 +871,7 @@ static bool setup_myself(void) {
        }
 
        if(!get_config_string(lookup_config(config_tree, "Digest"), &digest))
-               digest = xstrdup("sha1");
+               digest = xstrdup("sha256");
 
        if(!strcasecmp(digest, "none")) {
                myself->indigest = NULL;
@@ -929,6 +919,8 @@ static bool setup_myself(void) {
                        devops = raw_socket_devops;
                else if(!strcasecmp(type, "multicast"))
                        devops = multicast_devops;
+               else if(!strcasecmp(type, "fd"))
+                       devops = fd_devops;
 #ifdef ENABLE_UML
                else if(!strcasecmp(type, "uml"))
                        devops = uml_devops;
@@ -965,7 +957,7 @@ static bool setup_myself(void) {
                }
 
                for(int i = 0; i < listen_sockets; i++) {
-                       salen = sizeof sa;
+                       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(sockerrno));
                                return false;
@@ -1022,7 +1014,7 @@ static bool setup_myself(void) {
 
        if(!port_specified || atoi(myport) == 0) {
                sockaddr_t sa;
-               socklen_t salen = sizeof sa;
+               socklen_t salen = sizeof(sa);
                if(!getsockname(listen_socket[0].udp.fd, &sa.sa, &salen)) {
                        free(myport);
                        sockaddr2str(&sa, NULL, &myport);
@@ -1148,7 +1140,6 @@ void close_network_connections(void) {
 
        exit_control();
 
-       free(myname);
        free(scriptextension);
        free(scriptinterpreter);