From 6e43bf84a2afc4e83ce33b7a416d7b81f7dd5658 Mon Sep 17 00:00:00 2001 From: Mikko Lehto Date: Thu, 27 Jul 2017 22:37:03 +0300 Subject: [PATCH] sipcapture: remove excess byte order conversion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - buffer pointer `tmp` in hepv3_get_chunk() was assigned to hg->time_(ยต)sec - therefore everytime route script calls pseudovariables, part of original `buf` was byte converted --- src/modules/sipcapture/hep.c | 44 +++++++++++++----------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/src/modules/sipcapture/hep.c b/src/modules/sipcapture/hep.c index 764dea05e41..c05180ecd8a 100644 --- a/src/modules/sipcapture/hep.c +++ b/src/modules/sipcapture/hep.c @@ -372,16 +372,14 @@ int parsing_hepv3_message(char *buf, unsigned int len) { break; case 9: hg->time_sec = (hep_chunk_uint32_t *) (tmp); - hg->time_sec->data = ntohl(hg->time_sec->data); - heptime->tv_sec = hg->time_sec->data; + heptime->tv_sec = ntohl(hg->time_sec->data); i+=chunk_length; totelem++; - break; - + break; + case 10: hg->time_usec = (hep_chunk_uint32_t *) (tmp); - hg->time_usec->data = ntohl(hg->time_usec->data); - heptime->tv_usec = hg->time_usec->data; + heptime->tv_usec = ntohl(hg->time_usec->data); i+=chunk_length; totelem++; break; @@ -394,8 +392,8 @@ int parsing_hepv3_message(char *buf, unsigned int len) { case 12: hg->capt_id = (hep_chunk_uint32_t *) (tmp); - i+=chunk_length; heptime->captid = ntohl(hg->capt_id->data); + i+=chunk_length; totelem++; break; @@ -483,13 +481,6 @@ int parsing_hepv3_message(char *buf, unsigned int len) { si->name.s = si->address_str.s; ri.bind_address=si; - - /*TIME*/ - heptime->tv_sec = hg->time_sec->data; - heptime->tv_usec = hg->time_usec->data; - heptime->captid = ntohl(hg->capt_id->data); - - if(payload != NULL ) { /* and now recieve message */ if (hg->proto_t->data == 5) receive_logging_json_msg(payload, payload_len, hg, "rtcp_capture"); @@ -646,19 +637,17 @@ int hepv3_message_parse(char *buf, unsigned int len, sip_msg_t* msg) { break; case 9: hg->time_sec = (hep_chunk_uint32_t *) (tmp); - hg->time_sec->data = ntohl(hg->time_sec->data); - heptime->tv_sec = hg->time_sec->data; + heptime->tv_sec = ntohl(hg->time_sec->data); i+=chunk_length; totelem++; - break; - + break; + case 10: hg->time_usec = (hep_chunk_uint32_t *) (tmp); - hg->time_usec->data = ntohl(hg->time_usec->data); - heptime->tv_usec = hg->time_usec->data; + heptime->tv_usec = ntohl(hg->time_usec->data); i+=chunk_length; totelem++; - break; + break; case 11: hg->proto_t = (hep_chunk_uint8_t *) (tmp); @@ -728,10 +717,10 @@ int hepv3_message_parse(char *buf, unsigned int len, sip_msg_t* msg) { if(payload != NULL) ret = len - payload_len; - /*TIME*/ - heptime->tv_sec = hg->time_sec->data; - heptime->tv_usec = hg->time_usec->data; - heptime->captid = ntohl(hg->capt_id->data); + + + + done: @@ -987,11 +976,10 @@ int hepv3_get_chunk(struct sip_msg *msg, char *buf, unsigned int len, int req_ch hg->time_sec->data = ntohl(hg->time_sec->data); ret = pv_get_uintval(msg, param, res, hg->time_sec->data); goto done; - + case 10: hg->time_usec = (hep_chunk_uint32_t *) (tmp); - hg->time_usec->data = ntohl(hg->time_usec->data); - ret = pv_get_uintval(msg, param, res, hg->time_usec->data); + ret = pv_get_uintval(msg, param, res, ntohl(hg->time_usec->data)); goto done; case 11: