Have tests/TESTrun run "./tcpdump --time-t-size and set HAVE_TIME_T_64
key based on that.
This will permit to run tests based on time_t size (32-bit or 64-bit).
(backported from commit
aacc29d06ccccd15b6b07bba0858e6fa32e97edd)
#define OPTION_TSTAMP_NANO 134
#define OPTION_FP_TYPE 135
#define OPTION_COUNT 136
#define OPTION_TSTAMP_NANO 134
#define OPTION_FP_TYPE 135
#define OPTION_COUNT 136
+#define OPTION_TIME_T_SIZE 139
static const struct option longopts[] = {
#if defined(HAVE_PCAP_CREATE) || defined(_WIN32)
static const struct option longopts[] = {
#if defined(HAVE_PCAP_CREATE) || defined(_WIN32)
{ "fp-type", no_argument, NULL, OPTION_FP_TYPE },
{ "number", no_argument, NULL, '#' },
{ "print", no_argument, NULL, OPTION_PRINT },
{ "fp-type", no_argument, NULL, OPTION_FP_TYPE },
{ "number", no_argument, NULL, '#' },
{ "print", no_argument, NULL, OPTION_PRINT },
+ { "time-t-size", no_argument, NULL, OPTION_TIME_T_SIZE },
{ "version", no_argument, NULL, OPTION_VERSION },
{ NULL, 0, NULL, 0 }
};
{ "version", no_argument, NULL, OPTION_VERSION },
{ NULL, 0, NULL, 0 }
};
ndo->ndo_packet_number = 1;
break;
ndo->ndo_packet_number = 1;
break;
+ case OPTION_TIME_T_SIZE:
+ printf("%zu\n", sizeof(time_t) * 8);
+ return 0;
+
case OPTION_VERSION:
print_version(stdout);
exit_tcpdump(S_SUCCESS);
case OPTION_VERSION:
print_version(stdout);
exit_tcpdump(S_SUCCESS);
printf "$TCPDUMP --fp-type => %s\n", $have_fptype;
$main::confighhash->{$have_fptype} = 1;
printf "$TCPDUMP --fp-type => %s\n", $have_fptype;
$main::confighhash->{$have_fptype} = 1;
+ # run tcpdump --time-t-size to get the size of size_t in bits
+ open(TIMETSIZE_PIPE, "$TCPDUMP --time-t-size |") or die("piping tcpdump --time-t-size failed\n");
+ my $time_t_size = <TIMETSIZE_PIPE>;
+ close(TIMETSIZE_PIPE);
+ my $have_time_t_64;
+ if($time_t_size == "64") {
+ $have_time_t_64 = "HAVE_TIME_T_64";
+ }
+ printf "$TCPDUMP --time-t-size => %s\n", $time_t_size;
+ $main::confighhash->{$have_time_t_64} = 1;
+
# and check whether this is OpenBSD, as one test fails in OpenBSD
# due to the sad hellscape of low-numbered DLT_ values, due to
# 12 meaning "OpenBSD loopback" rather than "raw IP" on OpenBSD
# and check whether this is OpenBSD, as one test fails in OpenBSD
# due to the sad hellscape of low-numbered DLT_ values, due to
# 12 meaning "OpenBSD loopback" rather than "raw IP" on OpenBSD