-int receive_request(connection_t *c)
-{
- int request;
-
- cp();
-
- if(sscanf(c->buffer, "%d", &request) == 1) {
- if((request < 0) || (request >= LAST) || !request_handlers[request]) {
- if(debug_level >= DEBUG_META)
- logger(DEBUG_ALWAYS, LOG_DEBUG, _("Unknown request from %s (%s): %s"),
- c->name, c->hostname, c->buffer);
- else
- logger(DEBUG_ALWAYS, LOG_ERR, _("Unknown request from %s (%s)"),
- c->name, c->hostname);
-
- return -1;
- } else {
- if(debug_level >= DEBUG_PROTOCOL) {
- if(debug_level >= DEBUG_META)
- logger(DEBUG_ALWAYS, LOG_DEBUG, _("Got %s from %s (%s): %s"),
- request_name[request], c->name, c->hostname,
- c->buffer);
- else
- logger(DEBUG_ALWAYS, LOG_DEBUG, _("Got %s from %s (%s)"),
- request_name[request], c->name, c->hostname);
+bool receive_request(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ if(c->outgoing && mesh->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(mesh, MESHLINK_DEBUG, "Proxy request granted");
+ return true;
+ } else {
+ logger(mesh, MESHLINK_DEBUG, "Proxy request rejected: %s", request + 9);
+ return false;