diff --git a/debian/patches/series b/debian/patches/series index 1730a18..c15adff 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ debian/0001-rssm-shebang.patch +upstream/0001-time64.patch diff --git a/debian/patches/upstream/0001-time64.patch b/debian/patches/upstream/0001-time64.patch new file mode 100644 index 0000000..63b009e --- /dev/null +++ b/debian/patches/upstream/0001-time64.patch @@ -0,0 +1,90 @@ +From 0f8e75aff4ae7c01c27a6aacc580be25b0e0c971 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jerry=20Lundstr=C3=B6m?= +Date: Tue, 22 Apr 2025 09:50:50 +0200 +Subject: [PATCH] . + +--- + src/dnscap.h | 6 ++++++ + src/dumper.c | 2 +- + src/network.c | 10 +++++----- + 3 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/src/dnscap.h b/src/dnscap.h +index d339ff1..bede3c3 100644 +--- a/src/dnscap.h ++++ b/src/dnscap.h +@@ -204,6 +204,12 @@ + #define MAX_TCP_WINDOW (0xFFFF << 14) + #define MEM_MAX 20000000000 /* SETTING MAX MEMORY USAGE TO 2GB */ + ++#if _TIME_BITS == 64 ++#define PRI_tv_usec "lld" ++#else ++#define PRI_tv_usec "ld" ++#endif ++ + #define ISC_CHECK_NONE 1 + #include "isc/list.h" + #include "isc/assertions.h" +diff --git a/src/dumper.c b/src/dumper.c +index 68783e7..b1e6c9a 100644 +--- a/src/dumper.c ++++ b/src/dumper.c +@@ -198,7 +198,7 @@ int dumper_open(my_bpftimeval ts) + + gmtime_r((time_t*)&ts.tv_sec, &tm); + strftime(sbuf, 64, "%Y%m%d.%H%M%S", &tm); +- if (asprintf(&dumpname, "%s.%s.%06ld%s", ++ if (asprintf(&dumpname, "%s.%s.%06" PRI_tv_usec "%s", + dump_base, sbuf, + ts.tv_usec, dump_suffix ? dump_suffix : "") + < 0 +diff --git a/src/network.c b/src/network.c +index f0a6238..6b20c55 100644 +--- a/src/network.c ++++ b/src/network.c +@@ -207,7 +207,7 @@ void layer_pkt(u_char* user, const pcap_thread_packet_t* packet, const u_char* p + } + + if (vlan != MAX_VLAN) { +- snprintf(descr, sizeof(descr), "[%zu] %s.%06ld [#%zd %s (vlan %u) %u] \\\n", ++ snprintf(descr, sizeof(descr), "[%zu] %s.%06" PRI_tv_usec " [#%zd %s (vlan %u) %u] \\\n", + len, + when, + firstpkt->pkthdr.ts.tv_usec, +@@ -216,7 +216,7 @@ void layer_pkt(u_char* user, const pcap_thread_packet_t* packet, const u_char* p + vlan, + vlan); + } else { +- snprintf(descr, sizeof(descr), "[%zu] %s.%06ld [#%zd %s %u] \\\n", ++ snprintf(descr, sizeof(descr), "[%zu] %s.%06" PRI_tv_usec " [#%zd %s %u] \\\n", + len, + when, + firstpkt->pkthdr.ts.tv_usec, +@@ -437,7 +437,7 @@ void dl_pkt(u_char* user, const struct pcap_pkthdr* hdr, const u_char* pkt, cons + } else { + viap = "\"some interface\""; + } +- snprintf(descr, sizeof(descr), "[%zu] %s.%06ld [#%zu %s %u] \\\n", ++ snprintf(descr, sizeof(descr), "[%zu] %s.%06" PRI_tv_usec " [#%zu %s %u] \\\n", + len, when, hdr->ts.tv_usec, msgcount, viap, vlan); + } else { + descr[0] = '\0'; +@@ -725,7 +725,7 @@ void network_pkt2(const char* descr, my_bpftimeval ts, const pcap_thread_packet_ + + tcpstate = tcpstate_find(from, to, sport, dport, ts.tv_sec); + if (dumptrace >= 3) { +- fprintf(stderr, "%s: tcp pkt: %" PRIdMAX ".%06ld [%4zu] %15s -> ", ++ fprintf(stderr, "%s: tcp pkt: %" PRIdMAX ".%06" PRI_tv_usec " [%4zu] %15s -> ", + ProgramName, + (intmax_t)ts.tv_sec, + ts.tv_usec, +@@ -1327,7 +1327,7 @@ void network_pkt(const char* descr, my_bpftimeval ts, unsigned pf, + + tcpstate = tcpstate_find(from, to, sport, dport, ts.tv_sec); + if (dumptrace >= 3) { +- fprintf(stderr, "%s: tcp pkt: %" PRIdMAX ".%06ld [%4zu] ", ProgramName, ++ fprintf(stderr, "%s: tcp pkt: %" PRIdMAX ".%06" PRI_tv_usec " [%4zu] ", ProgramName, + (intmax_t)ts.tv_sec, ts.tv_usec, len); + fprintf(stderr, "%15s -> ", ia_str(from)); + fprintf(stderr, "%15s; ", ia_str(to));