aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
diff options
context:
space:
mode:
authorGuy Harris <gharris@sonic.net>2020-11-25 12:43:00 -0800
committerGuy Harris <gharris@sonic.net>2020-11-25 12:43:00 -0800
commitf1ab1f0b5b09aa5f885b512d23d8f9f0f6aba651 (patch)
treef12fea0c3e01a245bae748caacbe8c3852c09309 /dumpcap.c
parenteb02336e28f120ecf3dd6108d66397c1f201acc7 (diff)
Put the XXX_pipe_open_live() calls after the file type determination.
That way, there's only one pcap_pipe_open_live() call, as was the case in the past.
Diffstat (limited to 'dumpcap.c')
-rw-r--r--dumpcap.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/dumpcap.c b/dumpcap.c
index a1c47fcd3e..a8c1a78122 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -1784,8 +1784,6 @@ cap_pipe_open_live(char *pipename,
pcap_src->cap_pipe_info.pcap.byte_swapped = FALSE;
pcap_src->cap_pipe_modified = FALSE;
pcap_src->ts_nsec = magic == PCAP_NSEC_MAGIC;
- pcap_pipe_open_live(fd, pcap_src, (struct pcap_hdr *) hdr, errmsg, errmsgl,
- secondary_errmsg, secondary_errmsgl);
break;
case PCAP_MODIFIED_MAGIC:
/* This is a pcap file.
@@ -1793,8 +1791,6 @@ cap_pipe_open_live(char *pipename,
a program using either ss990915 or ss991029 libpcap. */
pcap_src->cap_pipe_info.pcap.byte_swapped = FALSE;
pcap_src->cap_pipe_modified = TRUE;
- pcap_pipe_open_live(fd, pcap_src, (struct pcap_hdr *) hdr, errmsg, errmsgl,
- secondary_errmsg, secondary_errmsgl);
break;
case PCAP_SWAPPED_MAGIC:
case PCAP_SWAPPED_NSEC_MAGIC:
@@ -1805,8 +1801,6 @@ cap_pipe_open_live(char *pipename,
pcap_src->cap_pipe_info.pcap.byte_swapped = TRUE;
pcap_src->cap_pipe_modified = FALSE;
pcap_src->ts_nsec = magic == PCAP_SWAPPED_NSEC_MAGIC;
- pcap_pipe_open_live(fd, pcap_src, (struct pcap_hdr *) hdr, errmsg, errmsgl,
- secondary_errmsg, secondary_errmsgl);
break;
case PCAP_SWAPPED_MODIFIED_MAGIC:
/* This is a pcap file.
@@ -1815,8 +1809,6 @@ cap_pipe_open_live(char *pipename,
or ss991029 libpcap. */
pcap_src->cap_pipe_info.pcap.byte_swapped = TRUE;
pcap_src->cap_pipe_modified = TRUE;
- pcap_pipe_open_live(fd, pcap_src, (struct pcap_hdr *) hdr, errmsg, errmsgl,
- secondary_errmsg, secondary_errmsgl);
break;
case BLOCK_TYPE_SHB:
/* This is a pcapng file. */
@@ -1824,7 +1816,6 @@ cap_pipe_open_live(char *pipename,
pcap_src->cap_pipe_dispatch = pcapng_pipe_dispatch;
pcap_src->cap_pipe_info.pcapng.src_iface_to_global = g_array_new(FALSE, FALSE, sizeof(guint32));
global_capture_opts.use_pcapng = TRUE; /* we can only output in pcapng format */
- pcapng_pipe_open_live(fd, pcap_src, errmsg, errmsgl);
break;
default:
/* Not a pcapng file, and either not a pcap type we know about
@@ -1836,6 +1827,12 @@ cap_pipe_open_live(char *pipename,
goto error;
}
+ if (pcap_src->from_pcapng)
+ pcapng_pipe_open_live(fd, pcap_src, errmsg, errmsgl);
+ else
+ pcap_pipe_open_live(fd, pcap_src, (struct pcap_hdr *) hdr, errmsg, errmsgl,
+ secondary_errmsg, secondary_errmsgl);
+
return;
error: