X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol.c;h=18fe4409455459313ca9df3bbceb10728b3cf54e;hp=7c267838453f139a671ffec8a74f438fb1a9bdc3;hb=75d351eaf1264cfb7aa47166469e8ec722712a89;hpb=ca73b722cbad5a08ec9bb5026ed5129da9a24bd8 diff --git a/src/protocol.c b/src/protocol.c index 7c267838..18fe4409 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -333,22 +333,19 @@ cp tmp->from = myself->vpn_ip; tmp->expiry = my_key_expiry; tmp->len = strlen(my_public_key_base36); - strcpy(&tmp->key, my_public_key_base36); + strcpy(&(tmp->key), my_public_key_base36); -cp 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); - if(debug_lvl > 2) +cp + if(debug_lvl > 2) syslog(LOG_DEBUG, "Sending public key to " IP_ADDR_S, IP_ADDR_V(fw->nexthop->vpn_ip)); cp @@ -741,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, @@ -794,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;