diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2015-07-17 17:01:27 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-07-22 07:10:10 +0000 |
commit | 6452caa3b3ffe0f72d2a6396d96f0470ceb77671 (patch) | |
tree | e75ce1025539ea5d2f9e013ae0f23b7340b8c137 /capchild | |
parent | 32d9a1d714d5d253428a5c3d5450e1d3316a9f16 (diff) |
Fix retrieval of data link type supported by remote interfaces with authentication
Make use of -A parameter when querying data link types supported by a given interface with dumpcap.
Ensure to pass the authentication parameters configured for a remote interface when calling capture_get_if_capabilities()
Bug: 11366
Change-Id: I4efea615084a82108e4a12a64e8c46817f30a5c6
Reviewed-on: https://code.wireshark.org/review/9690
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'capchild')
-rw-r--r-- | capchild/capture_ifinfo.c | 3 | ||||
-rw-r--r-- | capchild/capture_sync.c | 6 | ||||
-rw-r--r-- | capchild/capture_sync.h | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/capchild/capture_ifinfo.c b/capchild/capture_ifinfo.c index eb86215c89..510f529549 100644 --- a/capchild/capture_ifinfo.c +++ b/capchild/capture_ifinfo.c @@ -223,6 +223,7 @@ capture_interface_list(int *err, char **err_str, void (*update_cb)(void)) * we use "real" data serialization instead, e.g. via XML? */ if_capabilities_t * capture_get_if_capabilities(const gchar *ifname, gboolean monitor_mode, + const gchar *auth_string, char **err_str, void (*update_cb)(void)) { if_capabilities_t *caps; @@ -246,7 +247,7 @@ capture_get_if_capabilities(const gchar *ifname, gboolean monitor_mode, #endif /* HAVE_EXTCAP */ /* Try to get our interface list */ - err = sync_if_capabilities_open(ifname, monitor_mode, &data, + err = sync_if_capabilities_open(ifname, monitor_mode, auth_string, &data, &primary_msg, &secondary_msg, update_cb); if (err != 0) { g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_MESSAGE, "Capture Interface Capabilities failed, error %d, %s (%s)!", diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c index 29274d6647..0b92c57028 100644 --- a/capchild/capture_sync.c +++ b/capchild/capture_sync.c @@ -1324,7 +1324,7 @@ sync_interface_list_open(gchar **data, gchar **primary_msg, * must be freed with g_free(). */ int -sync_if_capabilities_open(const gchar *ifname, gboolean monitor_mode, +sync_if_capabilities_open(const gchar *ifname, gboolean monitor_mode, const gchar* auth, gchar **data, gchar **primary_msg, gchar **secondary_msg, void (*update_cb)(void)) { @@ -1348,6 +1348,10 @@ sync_if_capabilities_open(const gchar *ifname, gboolean monitor_mode, argv = sync_pipe_add_arg(argv, &argc, "-L"); if (monitor_mode) argv = sync_pipe_add_arg(argv, &argc, "-I"); + if (auth) { + argv = sync_pipe_add_arg(argv, &argc, "-A"); + argv = sync_pipe_add_arg(argv, &argc, auth); + } #ifndef DEBUG_CHILD /* Run dumpcap in capture child mode */ diff --git a/capchild/capture_sync.h b/capchild/capture_sync.h index 7449d96939..3cdac27956 100644 --- a/capchild/capture_sync.h +++ b/capchild/capture_sync.h @@ -73,7 +73,7 @@ sync_interface_list_open(gchar **data, gchar **primary_msg, /** Get interface capabilities using dumpcap */ extern int -sync_if_capabilities_open(const gchar *ifname, gboolean monitor_mode, +sync_if_capabilities_open(const gchar *ifname, gboolean monitor_mode, const gchar* auth, gchar **data, gchar **primary_msg, gchar **secondary_msg, void (*update_cb)(void)); |