}
end:
- event_add(&n->mtuevent, &(struct timeval){timeout, 0});
+ event_add(&n->mtuevent, &(struct timeval){timeout, rand() % 100000});
}
void send_mtu_probe(node_t *n) {
sockaddr_t *sa;
int sock;
+ sockaddr_t broadcast;
/* Overloaded use of priority field: -1 means local broadcast */
if(origpriority == -1 && n->prevedge) {
- sockaddr_t broadcast;
broadcast.in.sin_family = AF_INET;
broadcast.in.sin_addr.s_addr = -1;
broadcast.in.sin_port = n->prevedge->address.in.sin_port;
node_t *from = handle;
if(type == SPTPS_HANDSHAKE) {
- from->status.validkey = true;
- from->status.waitingforkey = false;
- logger(DEBUG_META, LOG_INFO, "SPTPS key exchange with %s (%s) succesful", from->name, from->hostname);
+ if(!from->status.validkey) {
+ from->status.validkey = true;
+ from->status.waitingforkey = false;
+ logger(DEBUG_META, LOG_INFO, "SPTPS key exchange with %s (%s) succesful", from->name, from->hostname);
+ }
return true;
}