]> git.meshlink.io Git - meshlink/blobdiff - src/protocol.c
Merge branch 'master' of git://tinc-vpn.org/tinc into 1.1
[meshlink] / src / protocol.c
index 2b179a72608c4cee65fcaccf548ac69787c50084..1c5b6cfd9c1d43dba0c6a2e21defabdb4c431209 100644 (file)
@@ -104,10 +104,24 @@ void forward_request(connection_t *from, const char *request) {
        char tmp[len + 1];
        memcpy(tmp, request, len);
        tmp[len] = '\n';
-       broadcast_meta(from, tmp, len);
+       broadcast_meta(from, tmp, sizeof tmp);
 }
 
 bool receive_request(connection_t *c, const char *request) {
+       if(proxytype == PROXY_HTTP && c->allow_request == ID) {
+               if(!request[0] || request[0] == '\r')
+                       return true;
+               if(!strncasecmp(request, "HTTP/1.1 ", 9)) {
+                       if(!strncmp(request + 9, "200", 3)) {
+                               logger(DEBUG_CONNECTIONS, LOG_DEBUG, "Proxy request granted");
+                               return true;
+                       } else {
+                               logger(DEBUG_ALWAYS, LOG_DEBUG, "Proxy request rejected: %s", request + 9);
+                               return false;
+                       }
+               }
+       }
+
        int reqno = atoi(request);
 
        if(reqno || *request == '0') {