Protocol fix (ANS_KEY). This breaks 0.3.3 protocol compatibility.
[tinc] / src / protocol.c
index 44f012f..18fe440 100644 (file)
@@ -335,20 +335,14 @@ cp
   tmp->len = strlen(my_public_key_base36);
   strcpy(&(tmp->key), my_public_key_base36);
 
-cp
-  syslog(LOG_DEBUG, "key sent = %s", my_public_key_base36);
-cp
- fw = lookup_conn(to);
+  fw = lookup_conn(to);
   
-cp
   if(!fw)
     {
       syslog(LOG_ERR, "Attempting to send key answer to " IP_ADDR_S ", which does not exist?",
             IP_ADDR_V(to));
       return -1;
     }
-cp
-  syslog(LOG_DEBUG, "key sent = %s", &(tmp->key));
 
 cp
  if(debug_lvl > 2)
@@ -744,21 +738,21 @@ int ans_key_h(conn_list_t *cl)
   conn_list_t *fw, *gk;
   char *key;
 cp
-  if(read(cl->meta_socket, &((char*)(&tmp))[1], sizeof(tmp)-2) <= 0)
+  if(read(cl->meta_socket, &((char*)(&tmp))[1], sizeof(tmp) - 3) <= 0)
     {
       syslog(LOG_ERR, "%d: Receive failed: %m", __LINE__);
       return -1;
     }
 
+  syslog(LOG_DEBUG, "%08lx %08lx %d %hd", tmp.from, tmp.to, tmp.expiry, tmp.len); 
   key = xmalloc(tmp.len);
-
-  if(read(cl->meta_socket, key, tmp.len + 1) <= 0)
+  
+  if(read(cl->meta_socket, key, tmp.len + 2) <= 0)
     {
       syslog(LOG_ERR, "%d: Receive failed: %m", __LINE__);
       return -1;
     }
-
-  syslog(LOG_DEBUG, "key = %s", key);
+  syslog(LOG_DEBUG, "%s", key);
 
   if(debug_lvl > 3)
     syslog(LOG_DEBUG, "got ANS_KEY from " IP_ADDR_S " for " IP_ADDR_S,
@@ -797,7 +791,7 @@ cp
     syslog(LOG_DEBUG, "Forwarding public key to " IP_ADDR_S,
           IP_ADDR_V(fw->nexthop->vpn_ip));
   tmp.type = ANS_KEY;
-  if(write(fw->nexthop->meta_socket, &tmp, sizeof(tmp) -1) < 0)
+  if(write(fw->nexthop->meta_socket, &tmp, sizeof(tmp) -2) < 0)
     {
       syslog(LOG_ERR, "send failed: %s:%d: %m", __FILE__, __LINE__);
       return -1;