X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=21f13a13ad042b9a7e5df7de10612db692341f9b;hb=084ba04f51441098c55d3bd21b11bbe368e7b52e;hp=52afa0969cffafbbc7342af42f1fda9c3ba5f6d3;hpb=06a4a8c153407b690a3ce3f0e7fdaa8568ccb1a3;p=meshlink diff --git a/src/protocol_auth.c b/src/protocol_auth.c index 52afa096..21f13a13 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -22,11 +22,8 @@ #include "conf.h" #include "connection.h" -#include "control.h" -#include "control_common.h" #include "cipher.h" #include "crypto.h" -#include "device.h" #include "digest.h" #include "ecdsa.h" #include "edge.h" @@ -40,7 +37,6 @@ #include "prf.h" #include "protocol.h" #include "rsa.h" -#include "script.h" #include "sptps.h" #include "utils.h" #include "xalloc.h" @@ -177,22 +173,7 @@ static bool finalize_invitation(connection_t *c, const char *data, uint16_t len) logger(DEBUG_CONNECTIONS, LOG_INFO, "Key succesfully received from %s (%s)", c->name, c->hostname); - // Call invitation-accepted script - char *envp[7] = {NULL}; - char *address, *port; - - xasprintf(&envp[0], "NETNAME=%s", netname ? : ""); - xasprintf(&envp[1], "DEVICE=%s", device ? : ""); - xasprintf(&envp[2], "INTERFACE=%s", iface ? : ""); - xasprintf(&envp[3], "NODE=%s", c->name); - sockaddr2str(&c->address, &address, &port); - xasprintf(&envp[4], "REMOTEADDRESS=%s", address); - xasprintf(&envp[5], "NAME=%s", myself->name); - - execute_script("invitation-accepted", envp); - - for(int i = 0; envp[i] && i < 7; i++) - free(envp[i]); + //TODO: callback to application to inform of an accepted invitation sptps_send_record(&c->sptps, 2, data, 0); return true; @@ -292,18 +273,7 @@ bool id_h(connection_t *c, const char *request) { return false; } - /* Check if this is a control connection */ - - if(name[0] == '^' && !strcmp(name + 1, controlcookie)) { - c->status.control = true; - c->allow_request = CONTROL; - c->last_ping_time = now.tv_sec + 3600; - - free(c->name); - c->name = xstrdup(""); - - return send_request(c, "%d %d %d", ACK, TINC_CTL_VERSION_CURRENT, getpid()); - } + /* Check if this is an invitation */ if(name[0] == '?') { if(!invitation_key) { @@ -681,6 +651,7 @@ bool send_ack(connection_t *c) { static void send_everything(connection_t *c) { /* Send all known subnets and edges */ + // TODO: remove this if(disablebuggypeers) { static struct { vpn_packet_t pkt; @@ -692,17 +663,7 @@ static void send_everything(connection_t *c) { send_tcppacket(c, &zeropkt.pkt); } - if(tunnelserver) { - for splay_each(subnet_t, s, myself->subnet_tree) - send_add_subnet(c, s); - - return; - } - for splay_each(node_t, n, node_tree) { - for splay_each(subnet_t, s, n->subnet_tree) - send_add_subnet(c, s); - for splay_each(edge_t, e, n->edge_tree) send_add_edge(c, e); } @@ -767,7 +728,7 @@ bool ack_h(connection_t *c, const char *request) { } terminate_connection(n->connection, false); - /* Run graph algorithm to purge key and make sure up/down scripts are rerun with new IP addresses and stuff */ + /* Run graph algorithm to keep things in sync */ graph(); } }