projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get microsecond time resolution on Windows.
[tinc]
/
src
/
protocol_auth.c
diff --git
a/src/protocol_auth.c
b/src/protocol_auth.c
index
f6192d7
..
1b061b3
100644
(file)
--- a/
src/protocol_auth.c
+++ b/
src/protocol_auth.c
@@
-20,7
+20,6
@@
#include "system.h"
#include "system.h"
-#include "splay_tree.h"
#include "conf.h"
#include "connection.h"
#include "control.h"
#include "conf.h"
#include "connection.h"
#include "control.h"
@@
-65,7
+64,7
@@
static bool send_proxyrequest(connection_t *c) {
memcpy(s4req + 2, &c->address.in.sin_port, 2);
memcpy(s4req + 4, &c->address.in.sin_addr, 4);
if(proxyuser)
memcpy(s4req + 2, &c->address.in.sin_port, 2);
memcpy(s4req + 4, &c->address.in.sin_addr, 4);
if(proxyuser)
-
strcpy(s4req + 8, proxyuser
);
+
memcpy(s4req + 8, proxyuser, strlen(proxyuser)
);
s4req[sizeof s4req - 1] = 0;
c->tcplen = 8;
return send_meta(c, s4req, sizeof s4req);
s4req[sizeof s4req - 1] = 0;
c->tcplen = 8;
return send_meta(c, s4req, sizeof s4req);
@@
-83,10
+82,10
@@
static bool send_proxyrequest(connection_t *c) {
s5req[i++] = 2;
s5req[i++] = 1;
s5req[i++] = strlen(proxyuser);
s5req[i++] = 2;
s5req[i++] = 1;
s5req[i++] = strlen(proxyuser);
-
strcpy(s5req + i, proxyuser
);
+
memcpy(s5req + i, proxyuser, strlen(proxyuser)
);
i += strlen(proxyuser);
s5req[i++] = strlen(proxypass);
i += strlen(proxyuser);
s5req[i++] = strlen(proxypass);
-
strcpy(s5req + i, proxypass
);
+
memcpy(s5req + i, proxypass, strlen(proxypass)
);
i += strlen(proxypass);
c->tcplen += 2;
} else {
i += strlen(proxypass);
c->tcplen += 2;
} else {
@@
-163,8
+162,8
@@
bool id_h(connection_t *c, const char *request) {
c->allow_request = CONTROL;
c->last_ping_time = time(NULL) + 3600;
c->allow_request = CONTROL;
c->last_ping_time = time(NULL) + 3600;
- free(c->name);
-
c->name = xstrdup("<control>");
+ free(c->name);
+ c->name = xstrdup("<control>");
return send_request(c, "%d %d %d", ACK, TINC_CTL_VERSION_CURRENT, getpid());
}
return send_request(c, "%d %d %d", ACK, TINC_CTL_VERSION_CURRENT, getpid());
}
@@
-212,9
+211,8
@@
bool id_h(connection_t *c, const char *request) {
if(!c->config_tree) {
init_configuration(&c->config_tree);
if(!c->config_tree) {
init_configuration(&c->config_tree);
- if(!read_connection_config(c)) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Peer %s had unknown identity (%s)", c->hostname,
- c->name);
+ if(!read_host_config(c->config_tree, c->name)) {
+ logger(DEBUG_ALWAYS, LOG_ERR, "Peer %s had unknown identity (%s)", c->hostname, c->name);
return false;
}
return false;
}
@@
-250,7
+248,7
@@
bool send_metakey(connection_t *c) {
if(!cipher_open_blowfish_ofb(&c->outcipher))
return false;
if(!cipher_open_blowfish_ofb(&c->outcipher))
return false;
-
+
if(!digest_open_sha1(&c->outdigest, -1))
return false;
if(!digest_open_sha1(&c->outdigest, -1))
return false;
@@
-304,7
+302,7
@@
bool send_metakey(connection_t *c) {
cipher_get_nid(&c->outcipher),
digest_get_nid(&c->outdigest), c->outmaclength,
c->outcompression, hexkey);
cipher_get_nid(&c->outcipher),
digest_get_nid(&c->outdigest), c->outmaclength,
c->outcompression, hexkey);
-
+
c->status.encryptout = true;
return result;
}
c->status.encryptout = true;
return result;
}
@@
-506,38
+504,25
@@
bool send_ack(connection_t *c) {
get_config_int(lookup_config(c->config_tree, "Weight"), &c->estimated_weight);
get_config_int(lookup_config(c->config_tree, "Weight"), &c->estimated_weight);
- return send_request(c, "%d %s %d %x", ACK, myport, c->estimated_weight, (c->options & 0xffffff) | (
PROT_MINOR << 24
));
+ return send_request(c, "%d %s %d %x", ACK, myport, c->estimated_weight, (c->options & 0xffffff) | (
experimental ? (PROT_MINOR << 24) : 0
));
}
static void send_everything(connection_t *c) {
}
static void send_everything(connection_t *c) {
- splay_node_t *node, *node2;
- node_t *n;
- subnet_t *s;
- edge_t *e;
-
/* Send all known subnets and edges */
if(tunnelserver) {
/* Send all known subnets and edges */
if(tunnelserver) {
- for(node = myself->subnet_tree->head; node; node = node->next) {
- s = node->data;
+ for splay_each(subnet_t, s, myself->subnet_tree)
send_add_subnet(c, s);
send_add_subnet(c, s);
- }
return;
}
return;
}
- for(node = node_tree->head; node; node = node->next) {
- n = node->data;
-
- for(node2 = n->subnet_tree->head; node2; node2 = node2->next) {
- s = node2->data;
+ for splay_each(node_t, n, node_tree) {
+ for splay_each(subnet_t, s, n->subnet_tree)
send_add_subnet(c, s);
send_add_subnet(c, s);
- }
- for(node2 = n->edge_tree->head; node2; node2 = node2->next) {
- e = node2->data;
+ for splay_each(edge_t, e, n->edge_tree)
send_add_edge(c, e);
send_add_edge(c, e);
- }
}
}
}
}