X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=jcc.c;h=17aa0392ca9afc37df4e1ae5b3d8a2da19234172;hp=36ac4f06eb734e3a6e183c73272c4536616ef4e5;hb=358601f7ad1aa1ad97dce91261e584c65296ab64;hpb=b15aee14f3dc660a966acb7c3f542586a768a1a0 diff --git a/jcc.c b/jcc.c index 36ac4f06..17aa0392 100644 --- a/jcc.c +++ b/jcc.c @@ -1813,6 +1813,19 @@ static jb_err receive_client_request(struct client_state *csp) free_http_request(http); return JB_ERR_PARSE; } + if (http->ssl && strcmpic(http->gpc, "CONNECT")) + { + write_socket_delayed(csp->cfd, CHEADER, strlen(CHEADER), + get_write_delay(csp)); + /* XXX: Use correct size */ + log_error(LOG_LEVEL_CLF, "%s - - [%T] \"Invalid request\" 400 0", + csp->ip_addr_str); + log_error(LOG_LEVEL_ERROR, "Client %s tried to send a https " + "URL without sending a CONNECT request first", + csp->ip_addr_str); + free_http_request(http); + return JB_ERR_PARSE; + } /* grab the rest of the client's headers */ init_list(headers);