projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove unnecessary parentheses from sizeof, apply sizeof to variables instead of...
[tinc]
/
src
/
protocol_key.c
diff --git
a/src/protocol_key.c
b/src/protocol_key.c
index
66ffb11
..
0cd840b
100644
(file)
--- a/
src/protocol_key.c
+++ b/
src/protocol_key.c
@@
-122,12
+122,18
@@
bool req_key_h(connection_t *c, char *request) {
if(to == myself) { /* Yes, send our own key back */
mykeyused = true;
from->received_seqno = 0;
if(to == myself) { /* Yes, send our own key back */
mykeyused = true;
from->received_seqno = 0;
- memset(from->late, 0, sizeof
(from->late)
);
+ memset(from->late, 0, sizeof
from->late
);
send_ans_key(c, myself, from);
} else {
if(tunnelserver)
return false;
send_ans_key(c, myself, from);
} else {
if(tunnelserver)
return false;
+ if(!to->status.reachable) {
+ logger(LOG_WARNING, _("Got %s from %s (%s) destination %s which is not reachable"),
+ "REQ_KEY", c->name, c->hostname, to_name);
+ return true;
+ }
+
send_req_key(to->nexthop->connection, from, to);
}
send_req_key(to->nexthop->connection, from, to);
}
@@
-136,7
+142,7
@@
bool req_key_h(connection_t *c, char *request) {
bool send_ans_key(connection_t *c, const node_t *from, const node_t *to) {
size_t keylen = cipher_keylength(&from->cipher);
bool send_ans_key(connection_t *c, const node_t *from, const node_t *to) {
size_t keylen = cipher_keylength(&from->cipher);
- char key[keylen];
+ char key[keylen
* 2 + 1
];
cp();
cp();
@@
-190,6
+196,12
@@
bool ans_key_h(connection_t *c, char *request) {
if(tunnelserver)
return false;
if(tunnelserver)
return false;
+ if(!to->status.reachable) {
+ logger(LOG_WARNING, _("Got %s from %s (%s) destination %s which is not reachable"),
+ "ANS_KEY", c->name, c->hostname, to_name);
+ return true;
+ }
+
return send_request(to->nexthop->connection, "%s", request);
}
return send_request(to->nexthop->connection, "%s", request);
}