From 2200b214a314047697b4e080bc82b469933ff44b Mon Sep 17 00:00:00 2001 From: Spencer Thomason Date: Thu, 7 Jul 2016 02:55:09 -0700 Subject: [PATCH 1/2] sipcapture: fix timestamp byte order - swap timestamp byte order on big endian machines --- modules/sipcapture/hep.c | 4 ++-- modules/sipcapture/hep.h | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/sipcapture/hep.c b/modules/sipcapture/hep.c index 3114f2c48d0..1ca29043535 100644 --- a/modules/sipcapture/hep.c +++ b/modules/sipcapture/hep.c @@ -176,8 +176,8 @@ int hepv2_received(char *buf, unsigned int len, struct receive_info *ri){ hep_offset+=sizeof(struct hep_timehdr); heptime_tmp = (struct hep_timehdr*) hep_payload; - heptime->tv_sec = heptime_tmp->tv_sec; - heptime->tv_usec = heptime_tmp->tv_usec; + heptime->tv_sec = to_le(heptime_tmp->tv_sec); + heptime->tv_usec = to_le(heptime_tmp->tv_usec); heptime->captid = heptime_tmp->captid; } diff --git a/modules/sipcapture/hep.h b/modules/sipcapture/hep.h index c2433db990f..3135b6b689d 100644 --- a/modules/sipcapture/hep.h +++ b/modules/sipcapture/hep.h @@ -24,6 +24,13 @@ #ifndef _hep_h #define _hep_h +#include "../../endianness.h" + +#ifdef __IS_BIG_ENDIAN +#define to_le(x) bswap32(x) +#else +#define to_le(x) (x) +#endif #ifdef __OS_solaris typedef uint8_t u_int8_t; From 0eac2809862cd8106c1fbfbcdcf0d05c768a9e64 Mon Sep 17 00:00:00 2001 From: Spencer Thomason Date: Thu, 7 Jul 2016 03:01:52 -0700 Subject: [PATCH 2/2] siptrace: fix timestamp byte order - swap timestamp byte order on big endian machines --- modules/siptrace/siptrace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/siptrace/siptrace.c b/modules/siptrace/siptrace.c index 4594e255990..078f1a9b45c 100644 --- a/modules/siptrace/siptrace.c +++ b/modules/siptrace/siptrace.c @@ -1799,8 +1799,8 @@ static int trace_send_hep_duplicate(str *body, str *from, str *to, struct dest_i if(hep_version == 2) { - hep_time.tv_sec = tvb.tv_sec; - hep_time.tv_usec = tvb.tv_usec; + hep_time.tv_sec = to_le(tvb.tv_sec); + hep_time.tv_usec = to_le(tvb.tv_usec); hep_time.captid = hep_capture_id; memcpy((void*)buffer+buflen, &hep_time, sizeof(struct hep_timehdr));