Bug #427 ยป 0001-Return-STREAM_STATE_TUNNEL-after-entering-a-tunnel.patch
| htp/htp_request.c | ||
|---|---|---|
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_DATA (previous error)\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_ERROR;
|
||
|
}
|
||
| ... | ... | |
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_DATA (zero-length chunk)\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_ERROR;
|
||
|
}
|
||
| ... | ... | |
|
// mode (which it would be after an initial CONNECT transaction).
|
||
|
if (connp->in_status == STREAM_STATE_TUNNEL) {
|
||
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_DATA (tunnel)\n");
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_TUNNEL\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_DATA;
|
||
|
return STREAM_STATE_TUNNEL;
|
||
|
}
|
||
|
// Invoke a processor, in a loop, until an error
|
||
| ... | ... | |
|
// on processors to add error messages, so we'll
|
||
|
// keep quiet here.
|
||
|
int rc = connp->in_state(connp);
|
||
|
if (rc != HTP_OK) {
|
||
|
if (rc == HTP_OK) {
|
||
|
if (connp->in_status == STREAM_STATE_TUNNEL) {
|
||
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_TUNNEL\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_TUNNEL;
|
||
|
}
|
||
|
} else {
|
||
|
// Do we need more data?
|
||
|
if (rc == HTP_DATA) {
|
||
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_req_data: returning STREAM_STATE_DATA\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_DATA;
|
||
|
}
|
||
| htp/htp_response.c | ||
|---|---|---|
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_res_data: returning STREAM_STATE_DATA (previous error)\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_ERROR;
|
||
|
}
|
||
| ... | ... | |
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_res_data: returning STREAM_STATE_DATA (zero-length chunk)\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_ERROR;
|
||
|
}
|
||
| ... | ... | |
|
// mode (which it would be after an initial CONNECT transaction.
|
||
|
if (connp->out_status == STREAM_STATE_TUNNEL) {
|
||
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_res_data: returning STREAM_STATE_DATA (tunnel)\n");
|
||
|
fprintf(stderr, "htp_connp_res_data: returning STREAM_STATE_TUNNEL\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_DATA;
|
||
|
return STREAM_STATE_TUNNEL;
|
||
|
}
|
||
|
// Invoke a processor, in a loop, until an error
|
||
| ... | ... | |
|
// on processors to add error messages, so we'll
|
||
|
// keep quiet here.
|
||
|
int rc = connp->out_state(connp);
|
||
|
if (rc != HTP_OK) {
|
||
|
if (rc == HTP_OK) {
|
||
|
if (connp->out_status == STREAM_STATE_TUNNEL) {
|
||
|
#ifdef HTP_DEBUG
|
||
|
fprintf(stderr, "htp_connp_res_data: returning STREAM_STATE_TUNNEL\n");
|
||
|
#endif
|
||
|
return STREAM_STATE_TUNNEL;
|
||
|
}
|
||
|
} else {
|
||
|
// Do we need more data?
|
||
|
if (rc == HTP_DATA) {
|
||
|
return STREAM_STATE_DATA;
|
||