Removed lots of compiler warnings.
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 27 Feb 2001 16:37:31 +0000 (16:37 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 27 Feb 2001 16:37:31 +0000 (16:37 +0000)
src/conf.h
src/net.c
src/net.h
src/protocol.c
src/tincd.c

index 5223864f8610058bcb86563d6d12ec35cddaca04..d1fb609acb91bb00385ef4de3e121b28cdfc1c35 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: conf.h,v 1.6.4.22 2001/01/13 16:36:21 guus Exp $
+    $Id: conf.h,v 1.6.4.23 2001/02/27 16:37:24 guus Exp $
 */
 
 #ifndef __TINC_CONF_H__
@@ -100,5 +100,6 @@ extern const config_t *get_config_val(config_t *, which_t type);
 extern void clear_config();
 extern int read_server_config(void);
 extern FILE *ask_and_safe_open(const char*, const char*, const char *);
+extern int is_safe_path(const char *);
 
 #endif /* __TINC_CONF_H__ */
index f4de67f205f73101923e939d8c14773776a8f291..5c59c6fa5e11abf11063f8be58d077b3c9d73d50 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: net.c,v 1.35.4.99 2001/02/27 16:17:04 guus Exp $
+    $Id: net.c,v 1.35.4.100 2001/02/27 16:37:25 guus Exp $
 */
 
 #include "config.h"
@@ -971,76 +971,6 @@ cp
   return;
 }
 
-/*
-  create a data (udp) socket
-  OBSOLETED: use only one listening socket for compatibility with non-Linux operating systems
-*/
-int setup_vpn_connection(connection_t *cl)
-{
-  int nfd, flags;
-  struct sockaddr_in a;
-  const int one = 1;
-cp
-  if(debug_lvl >= DEBUG_TRAFFIC)
-    syslog(LOG_DEBUG, _("Opening UDP socket to %s"), cl->hostname);
-
-  nfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-  if(nfd == -1)
-    {
-      syslog(LOG_ERR, _("Creating UDP socket failed: %m"));
-      return -1;
-    }
-
-  setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
-
-  flags = fcntl(nfd, F_GETFL);
-  if(fcntl(nfd, F_SETFL, flags | O_NONBLOCK) < 0)
-    {
-      close(nfd);
-      syslog(LOG_ERR, _("System call `%s' failed: %m"),
-            "fcntl");
-      return -1;
-    }
-
-  memset(&a, 0, sizeof(a));
-  a.sin_family = AF_INET;
-  a.sin_port = htons(myself->port);
-  a.sin_addr.s_addr = htonl(INADDR_ANY);
-
-  if(bind(nfd, (struct sockaddr *)&a, sizeof(struct sockaddr)))
-    {
-      close(nfd);
-      syslog(LOG_ERR, _("Can't bind to port %hd/udp: %m"), myself->port);
-      return -1;
-    }
-
-  a.sin_family = AF_INET;
-  a.sin_port = htons(cl->port);
-  a.sin_addr.s_addr = htonl(cl->address);
-
-  if(connect(nfd, (struct sockaddr *)&a, sizeof(a)) == -1)
-    {
-      close(nfd);
-      syslog(LOG_ERR, _("Connecting to %s port %d failed: %m"),
-            cl->hostname, cl->port);
-      return -1;
-    }
-
-  flags = fcntl(nfd, F_GETFL);
-  if(fcntl(nfd, F_SETFL, flags | O_NONBLOCK) < 0)
-    {
-      close(nfd);
-      syslog(LOG_ERR, _("This is a bug: %s:%d: %d:%m %s (%s)"), __FILE__, __LINE__, nfd,
-             cl->name, cl->hostname);
-      return -1;
-    }
-
-  cl->socket = nfd;
-  cl->status.dataopen = 1;
-cp
-  return 0;
-}
-
 /*
   handle an incoming tcp connect call and open
   a connection to it.
index f3357248c236c8bf1979704964247288034cb177..18b54726359e0d24e13387b68d2bfff22051cbd6 100644 (file)
--- a/src/net.h
+++ b/src/net.h
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: net.h,v 1.9.4.27 2001/01/07 20:19:31 guus Exp $
+    $Id: net.h,v 1.9.4.28 2001/02/27 16:37:28 guus Exp $
 */
 
 #ifndef __TINC_NET_H__
@@ -117,7 +117,6 @@ extern int receive_packet(connection_t *, vpn_packet_t *);
 extern int setup_network_connections(void);
 extern void close_network_connections(void);
 extern void main_loop(void);
-extern int setup_vpn_connection(connection_t *);
 extern void terminate_connection(connection_t *);
 extern void flush_queue(connection_t *);
 
index bdb78c2b41d1cfa864923714a45927d66a23cfc7..a193933b94c0cb68819184aee32c8a2fe4f8caf2 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: protocol.c,v 1.28.4.82 2001/02/26 11:37:20 guus Exp $
+    $Id: protocol.c,v 1.28.4.83 2001/02/27 16:37:28 guus Exp $
 */
 
 #include "config.h"
@@ -271,6 +271,88 @@ cp
   return send_metakey(cl);
 }
 
+int ack_h(connection_t *cl)
+{
+  config_t const *cfg;
+  connection_t *old, *p;
+  subnet_t *subnet;
+  avl_node_t *node, *node2;
+cp
+  /* Okay, before we active the connection, we check if there is another entry
+     in the connection list with the same name. If so, it presumably is an
+     old connection that has timed out but we don't know it yet.
+   */
+
+  while((old = lookup_id(cl->name)))
+    {
+      if(debug_lvl >= DEBUG_CONNECTIONS)
+        syslog(LOG_NOTICE, _("Removing old entry for %s at %s in favour of new connection from %s"),
+        cl->name, old->hostname, cl->hostname);
+
+      terminate_connection(old);
+    }
+
+  /* Activate this connection */
+
+  cl->allow_request = ALL;
+  cl->status.active = 1;
+  cl->nexthop = cl;
+  cl->cipher_pkttype = EVP_bf_cbc();
+  cl->cipher_pktkeylength = cl->cipher_pkttype->key_len + cl->cipher_pkttype->iv_len;
+
+  if(debug_lvl >= DEBUG_CONNECTIONS)
+    syslog(LOG_NOTICE, _("Connection with %s (%s) activated"), cl->name, cl->hostname);
+
+cp
+  /* Check some options */
+  
+  if((cfg = get_config_val(cl->config, config_indirectdata)))
+    {
+      if(cfg->data.val == stupid_true)
+        cl->options |= OPTION_INDIRECT;
+    }
+
+  if((cfg = get_config_val(cl->config, config_tcponly)))
+    {
+      if(cfg->data.val == stupid_true)
+        cl->options |= OPTION_TCPONLY;
+    }
+
+  /* Send him our subnets */
+  
+  for(node = myself->subnet_tree->head; node; node = node->next)
+    {
+      subnet = (subnet_t *)node->data;
+      send_add_subnet(cl, subnet);
+    }
+  /* And send him all the hosts and their subnets we know... */
+  
+  for(node = connection_tree->head; node; node = node->next)
+    {
+      p = (connection_t *)node->data;
+      
+      if(p != cl && p->status.active)
+        {
+          /* Notify others of this connection */
+
+          if(p->status.meta)
+            send_add_host(p, cl);
+
+          /* Notify new connection of everything we know */
+
+          send_add_host(cl, p);
+
+          for(node2 = p->subnet_tree->head; node2; node2 = node2->next)
+            {
+              subnet = (subnet_t *)node2->data;
+              send_add_subnet(cl, subnet);
+            }
+        }
+    }  
+cp
+  return 0;
+}
+
 int send_challenge(connection_t *cl)
 {
   char *buffer;
@@ -539,88 +621,6 @@ cp
   return send_challenge(cl);
 }
 
-int ack_h(connection_t *cl)
-{
-  config_t const *cfg;
-  connection_t *old, *p;
-  subnet_t *subnet;
-  avl_node_t *node, *node2;
-cp
-  /* Okay, before we active the connection, we check if there is another entry
-     in the connection list with the same name. If so, it presumably is an
-     old connection that has timed out but we don't know it yet.
-   */
-
-  while((old = lookup_id(cl->name)))
-    {
-      if(debug_lvl >= DEBUG_CONNECTIONS)
-        syslog(LOG_NOTICE, _("Removing old entry for %s at %s in favour of new connection from %s"),
-        cl->name, old->hostname, cl->hostname);
-
-      terminate_connection(old);
-    }
-
-  /* Activate this connection */
-
-  cl->allow_request = ALL;
-  cl->status.active = 1;
-  cl->nexthop = cl;
-  cl->cipher_pkttype = EVP_bf_cbc();
-  cl->cipher_pktkeylength = cl->cipher_pkttype->key_len + cl->cipher_pkttype->iv_len;
-
-  if(debug_lvl >= DEBUG_CONNECTIONS)
-    syslog(LOG_NOTICE, _("Connection with %s (%s) activated"), cl->name, cl->hostname);
-
-cp
-  /* Check some options */
-  
-  if((cfg = get_config_val(cl->config, config_indirectdata)))
-    {
-      if(cfg->data.val == stupid_true)
-        cl->options |= OPTION_INDIRECT;
-    }
-
-  if((cfg = get_config_val(cl->config, config_tcponly)))
-    {
-      if(cfg->data.val == stupid_true)
-        cl->options |= OPTION_TCPONLY;
-    }
-
-  /* Send him our subnets */
-  
-  for(node = myself->subnet_tree->head; node; node = node->next)
-    {
-      subnet = (subnet_t *)node->data;
-      send_add_subnet(cl, subnet);
-    }
-  /* And send him all the hosts and their subnets we know... */
-  
-  for(node = connection_tree->head; node; node = node->next)
-    {
-      p = (connection_t *)node->data;
-      
-      if(p != cl && p->status.active)
-        {
-          /* Notify others of this connection */
-
-          if(p->status.meta)
-            send_add_host(p, cl);
-
-          /* Notify new connection of everything we know */
-
-          send_add_host(cl, p);
-
-          for(node2 = p->subnet_tree->head; node2; node2 = node2->next)
-            {
-              subnet = (subnet_t *)node2->data;
-              send_add_subnet(cl, subnet);
-            }
-        }
-    }  
-cp
-  return 0;
-}
-
 /* Address and subnet information exchange */
 
 int send_add_subnet(connection_t *cl, subnet_t *subnet)
@@ -798,6 +798,8 @@ cp
   if(!(cl->options & OPTION_INDIRECT))
     return send_request(cl, "%d %s %lx:%d %lx", ADD_HOST,
                       other->name, other->address, other->port, other->options);
+  else
+    return 0;
 }
 
 int add_host_h(connection_t *cl)
@@ -808,7 +810,7 @@ int add_host_h(connection_t *cl)
 cp
   new = new_connection();
 
-  if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%d %lx", name, &new->address, &new->port, &new->options) != 4)
+  if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%hd %lx", name, &new->address, &new->port, &new->options) != 4)
     {
        syslog(LOG_ERR, _("Got bad ADD_HOST from %s (%s)"), cl->name, cl->hostname);
        return -1;
@@ -890,6 +892,8 @@ cp
   if(!(cl->options & OPTION_INDIRECT))
     return send_request(cl, "%d %s %lx:%d %lx", DEL_HOST,
                       other->name, other->address, other->port, other->options);
+  else
+    return 0;
 }
 
 int del_host_h(connection_t *cl)
@@ -901,7 +905,7 @@ int del_host_h(connection_t *cl)
   connection_t *old, *p;
   avl_node_t *node;
 cp
-  if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%d %lx", name, &address, &port, &options) != 4)
+  if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%hd %lx", name, &address, &port, &options) != 4)
     {
       syslog(LOG_ERR, _("Got bad DEL_HOST from %s (%s)"),
              cl->name, cl->hostname);
index 574822472e4b4ade4026fdb54c5a4c4577256b48..0495779af80897fae9dd8780555d4171509eca1f 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: tincd.c,v 1.10.4.43 2001/02/25 14:51:42 guus Exp $
+    $Id: tincd.c,v 1.10.4.44 2001/02/27 16:37:31 guus Exp $
 */
 
 #include "config.h"
@@ -246,7 +246,7 @@ int keygen(int bits)
   if(config && (cfg = get_config_val(config, config_name)))
     asprintf(&filename, "%s/hosts/%s", confbase, cfg->data.ptr);
   else
-    asprintf(&filename, "%s/rsa_key.priv");
+    asprintf(&filename, "%s/rsa_key.priv", confbase);
 
   if((f = ask_and_safe_open(filename, _("public RSA key"), "a")) == NULL)
     return -1;