- Fixed KEY_CHANGED notification. A lot of notify_others() calls were
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 27 Jun 2000 12:58:04 +0000 (12:58 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 27 Jun 2000 12:58:04 +0000 (12:58 +0000)
  wrong (first two arguments swapped). Should probably be doublechecked.
- Don't retry to connect to hosts with different protocol versions.

src/protocol.c

index c843b56ae8b29045e8963392b33acf37bcf5bc19..70122c1be7bfeb9e6d62bca7f76e942487be713f 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.9 2000/06/26 20:30:21 guus Exp $
+    $Id: protocol.c,v 1.28.4.10 2000/06/27 12:58:04 guus Exp $
 */
 
 #include "config.h"
@@ -403,6 +403,16 @@ cp
     {
        syslog(LOG_ERR, _("Got bad BASIC_INFO from %s"),
               cl->hostname);
+       if(cl->status.outgoing)
+         {
+           /* If we get here, it means that our uplink uses the wrong protocol.
+              If we don't do anything, we will reconnect every 5 seconds. Pretty dumb.
+              So we disable the outgoing flag, so that we won't reconnect anymore.
+              This still allows other tinc daemons to connect to us.
+            */
+           syslog(LOG_ERR, _("Warning: disabling uplink!"));
+           cl->status.outgoing = 0;
+         }
        return -1;
     }  
 
@@ -889,7 +899,7 @@ cp
   ik->status.validkey = 0;
   ik->status.waitingforkey = 0;
 
-  notify_others(cl, ik, send_key_changed);
+  notify_others(ik, cl, send_key_changed);
 cp
   return 0;
 }