Various small fixes to make tinc runnable again.
[tinc] / src / net.c
index c0c8e66..50f4acb 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.137 2001/10/27 12:13:17 guus Exp $
+    $Id: net.c,v 1.35.4.139 2001/10/27 15:19:13 guus Exp $
 */
 
 #include "config.h"
@@ -72,7 +72,9 @@
 
 #include "system.h"
 
+int maxtimeout = 900;
 int seconds_till_retry = 5;
+
 int tcp_socket = -1;
 int udp_socket = -1;
 
@@ -161,7 +163,7 @@ cp
   to.sin_addr.s_addr = htonl(n->address);
   to.sin_port = htons(n->port);
 
-  if((sendto(socket, (char *) outpkt.salt, outlen, 0, (const struct sockaddr *)&to, tolen)) < 0)
+  if((sendto(udp_socket, (char *) outpkt.salt, outlen, 0, (const struct sockaddr *)&to, tolen)) < 0)
     {
       syslog(LOG_ERR, _("Error sending packet to %s (%s): %m"),
              n->name, n->hostname);
@@ -664,9 +666,11 @@ cp
       return -1;
     }
 */
-  if(!get_config_port(lookup_config(myself->connection->config_tree, "Port"), &myself->connection->port))
+  if(!get_config_port(lookup_config(myself->connection->config_tree, "Port"), &myself->port))
     myself->port = 655;
 
+  myself->connection->port = myself->port;
+
 /* Read in all the subnets specified in the host configuration file */
 
   cfg = lookup_config(myself->connection->config_tree, "Subnet");
@@ -703,7 +707,7 @@ cp
   if(myself->options & OPTION_TCPONLY)
     myself->options |= OPTION_INDIRECT;
 
-  if(get_config_string(lookup_config(myself->connection->config_tree, "Mode"), &mode))
+  if(get_config_string(lookup_config(config_tree, "Mode"), &mode))
     {
       if(!strcasecmp(mode, "router"))
         routing_mode = RMODE_ROUTER;
@@ -744,7 +748,7 @@ cp
   myself->key = (char *)xmalloc(myself->keylength);
   RAND_pseudo_bytes(myself->key, myself->keylength);
 
-  if(!get_config_int(lookup_config(myself->connection->config_tree, "KeyExpire"), &keylifetime))
+  if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
     keylifetime = 3600;
 
   keyexpires = time(NULL) + keylifetime;
@@ -769,8 +773,9 @@ int setup_network_connections(void)
 cp
   init_connections();
   init_subnets();
+  init_nodes();
 
-  if(get_config_int(lookup_config(myself->connection->config_tree, "PingTimeout"), &timeout))
+  if(get_config_int(lookup_config(config_tree, "PingTimeout"), &timeout))
     {
       if(timeout < 1)
         {
@@ -1041,7 +1046,6 @@ try_outgoing_connections(int a)
   static config_t *cfg = NULL;
   static int retry = 0;
   char *name;
-  int maxtimeout = 900;
 cp
   if(!cfg)
     cfg = lookup_config(config_tree, "ConnectTo");
@@ -1122,6 +1126,7 @@ void main_loop(void)
   int r;
   time_t last_ping_check;
   int t;
+  vpn_packet_t packet;
 cp
   last_ping_check = time(NULL);
 
@@ -1190,7 +1195,12 @@ cp
 
           /* local tap data */
           if(FD_ISSET(device_fd, &fset))
-           handle_tap_input();
+            {
+              if(read_packet(&packet))
+                route_outgoing(&packet);
+              else
+                return;
+            }
         }
     }
 cp