Convert sizeof foo to sizeof(foo).
[tinc] / src / proxy.c
index 22d4947..75e41de 100644 (file)
@@ -1,6 +1,6 @@
 /*
     proxy.c -- Proxy handling functions.
-    Copyright (C) 2015 Guus Sliepen <guus@tinc-vpn.org>
+    Copyright (C) 2015-2017 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@ char *proxypass;
 
 static void update_address_ipv4(connection_t *c, void *address, void *port) {
        sockaddrfree(&c->address);
-       memset(&c->address, 0, sizeof c->address);
+       memset(&c->address, 0, sizeof(c->address));
        c->address.sa.sa_family = AF_INET;
        if(address)
                memcpy(&c->address.in.sin_addr, address, sizeof(ipv4_t));
@@ -48,7 +48,7 @@ static void update_address_ipv4(connection_t *c, void *address, void *port) {
 
 static void update_address_ipv6(connection_t *c, void *address, void *port) {
        sockaddrfree(&c->address);
-       memset(&c->address, 0, sizeof c->address);
+       memset(&c->address, 0, sizeof(c->address));
        c->address.sa.sa_family = AF_INET6;
        if(address)
                memcpy(&c->address.in6.sin6_addr, address, sizeof(ipv6_t));
@@ -92,9 +92,9 @@ bool send_proxyrequest(connection_t *c) {
                        strcpy(s4req + 8, proxyuser);
                else
                        s4req[8] = 0;
-               s4req[sizeof s4req - 1] = 0;
+               s4req[sizeof(s4req) - 1] = 0;
                c->allow_request = PROXY;
-               return send_meta(c, s4req, sizeof s4req);
+               return send_meta(c, s4req, sizeof(s4req));
        }
 
        case PROXY_SOCKS5: {
@@ -158,7 +158,7 @@ bool send_proxyrequest(connection_t *c) {
                if(i > len)
                        abort();
                c->allow_request = PROXY;
-               return send_meta(c, s5req, sizeof s5req);
+               return send_meta(c, s5req, sizeof(s5req));
        }
 
        case PROXY_HTTP: {
@@ -174,7 +174,7 @@ bool send_proxyrequest(connection_t *c) {
        }
 
        case PROXY_EXEC:
-               return true;
+               abort();
 
        default:
                logger(LOG_ERR, "Unknown proxy type");
@@ -194,6 +194,8 @@ int receive_proxy_meta(connection_t *c, int start, int lenin) {
 
                        ifdebug(CONNECTIONS) logger(LOG_DEBUG, "Proxy request granted");
                        c->allow_request = ID;
+                       c->status.proxy_passed = true;
+                       send_id(c);
                        return 8;
                } else {
                        logger(LOG_ERR, "Proxy request rejected");
@@ -249,6 +251,8 @@ int receive_proxy_meta(connection_t *c, int start, int lenin) {
                } else {
                        ifdebug(CONNECTIONS) logger(LOG_DEBUG, "Proxy request granted");
                        c->allow_request = ID;
+                       c->status.proxy_passed = true;
+                       send_id(c);
                        return replen;
                }
 
@@ -275,8 +279,12 @@ int receive_proxy_meta(connection_t *c, int start, int lenin) {
                                logger(LOG_DEBUG, "Proxy request granted");
                                replen = p  + 1 - c->buffer;
                                c->allow_request = ID;
+                               c->status.proxy_passed = true;
+                               send_id(c);
                                return replen;
                        } else {
+                               p = memchr(c->buffer, '\n', c->buflen);
+                               p[-1] = 0;
                                logger(LOG_ERR, "Proxy request rejected: %s", c->buffer + 9);
                                return false;
                        }