From: Victor Julien Date: Fri, 5 Oct 2012 09:46:05 +0000 (+0200) Subject: Enable libhtp 0.3.0 compilation and crash free UT run. Still see 5 failed tests. X-Git-Tag: suricata-2.0beta1~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=080c15b3fce8ee693d5431f2aa89d267a7fd9b7c;p=thirdparty%2Fsuricata.git Enable libhtp 0.3.0 compilation and crash free UT run. Still see 5 failed tests. --- diff --git a/src/app-layer-htp.c b/src/app-layer-htp.c index 7908806dea..6f5ce72d70 100644 --- a/src/app-layer-htp.c +++ b/src/app-layer-htp.c @@ -633,14 +633,15 @@ static int HTPHandleRequestData(Flow *f, void *htp_state, if (!(hstate->flags & HTP_FLAG_STATE_OPEN)) { SCLogDebug("opening htp handle at %p", hstate->connp); - htp_connp_open(hstate->connp, NULL, f->sp, NULL, f->dp, 0); + htp_connp_open(hstate->connp, NULL, f->sp, NULL, f->dp, &f->startts); hstate->flags |= HTP_FLAG_STATE_OPEN; } else { SCLogDebug("using existing htp handle at %p", hstate->connp); } + htp_time_t ts = { f->lastts_sec, 0 }; /* pass the new data to the htp parser */ - r = htp_connp_req_data(hstate->connp, 0, input, input_len); + r = htp_connp_req_data(hstate->connp, &ts, input, input_len); switch(r) { case STREAM_STATE_ERROR: @@ -669,7 +670,8 @@ static int HTPHandleRequestData(Flow *f, void *htp_state, hstate->connp->in_status = STREAM_STATE_CLOSED; // Call the parsers one last time, which will allow them // to process the events that depend on stream closure - htp_connp_req_data(hstate->connp, 0, NULL, 0); + htp_time_t ts = { f->lastts_sec, 0 }; + htp_connp_req_data(hstate->connp, &ts, NULL, 0); hstate->flags |= HTP_FLAG_STATE_CLOSED_TS; SCLogDebug("stream eof encountered, closing htp handle for ts"); } @@ -723,7 +725,8 @@ static int HTPHandleResponseData(Flow *f, void *htp_state, * reactivate it if necessary) */ hstate->flags &=~ HTP_FLAG_NEW_BODY_SET; - r = htp_connp_res_data(hstate->connp, 0, input, input_len); + htp_time_t ts = { f->lastts_sec, 0 }; + r = htp_connp_res_data(hstate->connp, &ts, input, input_len); switch(r) { case STREAM_STATE_ERROR: HTPHandleError(hstate); @@ -750,7 +753,8 @@ static int HTPHandleResponseData(Flow *f, void *htp_state, hstate->connp->out_status = STREAM_STATE_CLOSED; // Call the parsers one last time, which will allow them // to process the events that depend on stream closure - htp_connp_res_data(hstate->connp, 0, NULL, 0); + htp_time_t ts = { f->lastts_sec, 0 }; + htp_connp_res_data(hstate->connp, &ts, NULL, 0); hstate->flags |= HTP_FLAG_STATE_CLOSED_TC; } @@ -2375,7 +2379,10 @@ static FileContainer *HTPStateGetFiles(void *state, uint8_t direction) { static int HTPStateGetAlstateProgress(void *tx, uint8_t direction) { - return ((htp_tx_t *)tx)->progress[direction]; + if (direction == 0) + return ((htp_tx_t *)tx)->request_progress; + else + return ((htp_tx_t *)tx)->response_progress; } static uint64_t HTPStateGetTxCnt(void *alstate) @@ -3949,7 +3956,7 @@ libhtp:\n\ } cfg_rec = cfg_rec->next; - if (cfg_rec->cfg->path_replacement_char != 'o' || + if (cfg_rec->cfg->bestfit_replacement_char != 'o' || cfg_rec->cfg->path_unicode_mapping != STATUS_400) { printf("failed 2\n"); goto end; diff --git a/src/suricata-common.h b/src/suricata-common.h index a7555ec80e..54203b2f9c 100644 --- a/src/suricata-common.h +++ b/src/suricata-common.h @@ -313,5 +313,9 @@ typedef enum PacketProfileDetectId_ { size_t strlcat(char *, const char *src, size_t siz); size_t strlcpy(char *dst, const char *src, size_t siz); +#define table_getc(x, y) table_get_c(x, y) +#define bstr_cmpc(x, y) bstr_cmp_c(x, y) +#define bstr_tocstr(x) bstr_util_strdup_to_c(x) + #endif /* __SURICATA_COMMON_H__ */