projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve recently seen address cache
[tinc]
/
src
/
net_socket.c
diff --git
a/src/net_socket.c
b/src/net_socket.c
index
4c76c30
..
982bc80
100644
(file)
--- a/
src/net_socket.c
+++ b/
src/net_socket.c
@@
-671,22
+671,18
@@
void setup_outgoing_connection(outgoing_t *outgoing, bool verbose) {
n->address_cache = open_address_cache(n);
}
n->address_cache = open_address_cache(n);
}
- if(n->connection) {
- logger(DEBUG_CONNECTIONS, LOG_INFO, "Already connected to %s", n->name);
-
- if(!n->connection->outgoing) {
- n->connection->outgoing = outgoing;
- return;
- } else {
- goto remove;
- }
+ if(!n->connection) {
+ do_outgoing_connection(outgoing);
+ return;
}
}
- do_outgoing_connection(outgoing);
- return;
+ logger(DEBUG_CONNECTIONS, LOG_INFO, "Already connected to %s", n->name);
-remove:
- list_delete(&outgoing_list, outgoing);
+ if(n->connection->outgoing) {
+ list_delete(&outgoing_list, outgoing);
+ } else {
+ n->connection->outgoing = outgoing;
+ }
}
static bool check_tarpit(const sockaddr_t *sa, int fd) {
}
static bool check_tarpit(const sockaddr_t *sa, int fd) {
@@
-864,8
+860,7
@@
void try_outgoing_connections(void) {
node_t *n = lookup_node(name);
if(!n) {
node_t *n = lookup_node(name);
if(!n) {
- n = new_node();
- n->name = xstrdup(name);
+ n = new_node(name);
node_add(n);
}
node_add(n);
}