diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2020-11-08 17:41:12 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2020-11-08 17:41:12 +0100 |
commit | fa25caf92db4d65f56f44e3fe34f6223ef7a35f9 (patch) | |
tree | 2491db95a0672d98d52601198deaa8c1345e6efc | |
parent | ca28fd9a0357da62267a7b5549bdd0dc6ef55d96 (diff) |
Improved default capture device handling if none set via `-i'.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | nDPId.c | 24 |
1 files changed, 7 insertions, 17 deletions
@@ -395,9 +395,8 @@ static char * get_default_pcapdev(char * errbuf) return ifname; } -static int setup_reader_threads(char const * const file_or_device) +static int setup_reader_threads(void) { - char * file_or_default_device; char pcap_error_buffer[PCAP_ERRBUF_SIZE]; if (reader_thread_count > nDPId_MAX_READER_THREADS) @@ -405,35 +404,26 @@ static int setup_reader_threads(char const * const file_or_device) return 1; } - if (file_or_device == NULL) + if (pcap_file_or_interface == NULL) { - file_or_default_device = get_default_pcapdev(pcap_error_buffer); - if (file_or_default_device == NULL) + pcap_file_or_interface = get_default_pcapdev(pcap_error_buffer); + if (pcap_file_or_interface == NULL) { syslog(LOG_DAEMON | LOG_ERR, "pcap_lookupdev: %.*s", (int)PCAP_ERRBUF_SIZE, pcap_error_buffer); return 1; } - } - else - { - file_or_default_device = strdup(file_or_device); - if (file_or_default_device == NULL) - { - return 1; - } + syslog(LOG_DAEMON, "Capturing packets from default device: %s", pcap_file_or_interface); } for (unsigned long long int i = 0; i < reader_thread_count; ++i) { - reader_threads[i].workflow = init_workflow(file_or_default_device); + reader_threads[i].workflow = init_workflow(pcap_file_or_interface); if (reader_threads[i].workflow == NULL) { - free(file_or_default_device); return 1; } } - free(file_or_default_device); return 0; } @@ -2403,7 +2393,7 @@ int main(int argc, char ** argv) openlog("nDPId", LOG_CONS | LOG_PERROR, LOG_DAEMON); - if (setup_reader_threads(pcap_file_or_interface) != 0) + if (setup_reader_threads() != 0) { syslog(LOG_DAEMON | LOG_ERR, "setup_reader_threads failed"); return 1; |