Add fd_device
[tinc] / src / protocol_auth.c
index aee5736..d4705bd 100644 (file)
@@ -436,6 +436,8 @@ bool send_metakey(connection_t *c) {
        if(!c)
                return false;
 
+       c->outbudget = cipher_budget(c->outcipher);
+
        if(!(c->outdigest = digest_open_by_name("sha256", -1)))
                return false;
 
@@ -548,6 +550,8 @@ bool metakey_h(connection_t *c, const char *request) {
                c->incipher = NULL;
        }
 
+       c->inbudget = cipher_budget(c->incipher);
+
        if(digest) {
                if(!(c->indigest = digest_open_by_nid(digest, -1))) {
                        logger(DEBUG_ALWAYS, LOG_ERR, "Error during initialisation of digest from %s (%s)", c->name, c->hostname);
@@ -884,8 +888,10 @@ bool ack_h(connection_t *c, const char *request) {
        socklen_t local_salen = sizeof local_sa;
        if (getsockname(c->socket, &local_sa.sa, &local_salen) < 0)
                logger(DEBUG_ALWAYS, LOG_WARNING, "Could not get local socket address for connection with %s", c->name);
-       else
+       else {
                sockaddr_setport(&local_sa, myport);
+               c->edge->local_address = local_sa;
+       }
        c->edge->weight = (weight + c->estimated_weight) / 2;
        c->edge->connection = c;
        c->edge->options = c->options;