projects
/
tinc
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
79e46d0
)
Fix merge of commit 4a0b9981513059755b9fd15b38fc198f46a0d6f2.
author
Guus Sliepen
<guus@tinc-vpn.org>
Sat, 17 Apr 2010 10:33:15 +0000
(12:33 +0200)
committer
Guus Sliepen
<guus@tinc-vpn.org>
Sat, 17 Apr 2010 10:33:15 +0000
(12:33 +0200)
src/protocol_key.c
patch
|
blob
|
history
diff --git
a/src/protocol_key.c
b/src/protocol_key.c
index
3baa580
..
4187538
100644
(file)
--- a/
src/protocol_key.c
+++ b/
src/protocol_key.c
@@
-175,7
+175,7
@@
bool ans_key_h(connection_t *c, char *request) {
int cipher, digest, maclength, compression, keylen;
node_t *from, *to;
int cipher, digest, maclength, compression, keylen;
node_t *from, *to;
- if(sscanf(request, "%*d "MAX_STRING" "MAX_STRING" "MAX_STRING" %d %d %d %d
"
,
+ if(sscanf(request, "%*d "MAX_STRING" "MAX_STRING" "MAX_STRING" %d %d %d %d
"MAX_STRING" "MAX_STRING
,
from_name, to_name, key, &cipher, &digest, &maclength,
&compression, address, port) < 7) {
logger(LOG_ERR, "Got bad %s from %s (%s)", "ANS_KEY", c->name,
from_name, to_name, key, &cipher, &digest, &maclength,
&compression, address, port) < 7) {
logger(LOG_ERR, "Got bad %s from %s (%s)", "ANS_KEY", c->name,
@@
-216,6
+216,16
@@
bool ans_key_h(connection_t *c, char *request) {
return true;
}
return true;
}
+ if(!*address) {
+ char *address, *port;
+ ifdebug(PROTOCOL) logger(LOG_DEBUG, "Appending reflexive UDP address to ANS_KEY from %s to %s", from->name, to->name);
+ sockaddr2str(&from->address, &address, &port);
+ send_request(to->nexthop->connection, "%s %s %s", request, address, port);
+ free(address);
+ free(port);
+ return true;
+ }
+
return send_request(to->nexthop->connection, "%s", request);
}
return send_request(to->nexthop->connection, "%s", request);
}