From c4796f77ecd133e1c38e7813c603c32a3603a445 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sun, 30 Dec 2018 15:50:41 -0500 Subject: [PATCH] rawnet - add rawnet_status() call to check if interface is open. --- src/rawnet/rawnet.c | 7 +++++++ src/rawnet/rawnet.h | 2 ++ src/rawnet/rawnetarch.h | 2 ++ src/rawnet/rawnetarch_darwin.c | 5 +++++ src/rawnet/rawnetarch_tap.c | 4 ++++ src/rawnet/rawnetarch_unix.c | 5 +++++ src/rawnet/rawnetarch_win32.c | 5 +++++ 7 files changed, 30 insertions(+) diff --git a/src/rawnet/rawnet.c b/src/rawnet/rawnet.c index 24c7b87..7ccedfb 100644 --- a/src/rawnet/rawnet.c +++ b/src/rawnet/rawnet.c @@ -76,4 +76,11 @@ char *rawnet_get_standard_interface(void) { return rawnet_arch_get_standard_interface(); } + +extern int rawnet_status(void) +{ + return rawnet_arch_status(); +} + + #endif /* #ifdef HAVE_RAWNET */ diff --git a/src/rawnet/rawnet.h b/src/rawnet/rawnet.h index 33a0c92..bc61944 100644 --- a/src/rawnet/rawnet.h +++ b/src/rawnet/rawnet.h @@ -72,4 +72,6 @@ extern int rawnet_enumadapter(char **ppname, char **ppdescription); extern int rawnet_enumadapter_close(void); extern char *rawnet_get_standard_interface(void); +extern int rawnet_status(void); + #endif diff --git a/src/rawnet/rawnetarch.h b/src/rawnet/rawnetarch.h index f5749f3..4b76204 100644 --- a/src/rawnet/rawnetarch.h +++ b/src/rawnet/rawnetarch.h @@ -69,4 +69,6 @@ extern char *rawnet_arch_get_standard_interface(void); extern int rawnet_arch_get_mtu(void); extern int rawnet_arch_get_mac(uint8_t mac[6]); +extern int rawnet_arch_status(void); + #endif diff --git a/src/rawnet/rawnetarch_darwin.c b/src/rawnet/rawnetarch_darwin.c index 63b4d10..582f832 100644 --- a/src/rawnet/rawnetarch_darwin.c +++ b/src/rawnet/rawnetarch_darwin.c @@ -498,3 +498,8 @@ int rawnet_arch_get_mac(uint8_t mac[6]) { return -1; } + +int rawnet_arch_status(void) { + return interface ? 1 : 0; +} + diff --git a/src/rawnet/rawnetarch_tap.c b/src/rawnet/rawnetarch_tap.c index 8e59d78..7b886cb 100644 --- a/src/rawnet/rawnetarch_tap.c +++ b/src/rawnet/rawnetarch_tap.c @@ -307,3 +307,7 @@ int rawnet_arch_get_mac(uint8_t mac[6]) { } +int rawnet_arch_status(void) { + return interface_fd >= 0 ? 1 : 0; +} + diff --git a/src/rawnet/rawnetarch_unix.c b/src/rawnet/rawnetarch_unix.c index 4b737d9..a31c6d9 100644 --- a/src/rawnet/rawnetarch_unix.c +++ b/src/rawnet/rawnetarch_unix.c @@ -543,4 +543,9 @@ extern int rawnet_arch_get_mac(uint8_t mac[6]) { return -1; } +int rawnet_arch_status(void) { + return rawnet_pcap_fp ? 1 : 0; +} + + #endif /* #ifdef HAVE_RAWNET */ diff --git a/src/rawnet/rawnetarch_win32.c b/src/rawnet/rawnetarch_win32.c index 81d5b4b..42426c0 100644 --- a/src/rawnet/rawnetarch_win32.c +++ b/src/rawnet/rawnetarch_win32.c @@ -562,4 +562,9 @@ extern int rawnet_arch_get_mac(uint8_t mac[6]) { return -1; } +int rawnet_arch_status(void) { + return EthernetPcapFP ? 1 : 0; +} + + #endif /* #ifdef HAVE_RAWNET */