![Guy Harris](/assets/img/avatar_default.png)
The GTK+ version, at least, crashes if there are more "doing XXX..." items put up than the calculated count, so, now that we're putting up items for extcap binaries, we need to count the extcap binaries. Clean up some stuff we found doing this (indentation, a _U_ on something that's used). Change-Id: I1f88042b64ce4b9ae352de37689677c694e3770b Reviewed-on: https://code.wireshark.org/review/19549 Reviewed-by: Guy Harris <guy@alum.mit.edu>
149 lines
4.1 KiB
C
149 lines
4.1 KiB
C
/* extcap.h
|
|
* Definitions for extcap external capture
|
|
* Copyright 2013, Mike Ryan <mikeryan@lacklustre.net>
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#ifndef __EXTCAP_H__
|
|
#define __EXTCAP_H__
|
|
|
|
#include <config.h>
|
|
|
|
#include <glib.h>
|
|
|
|
#ifdef _WIN32
|
|
#include <windows.h>
|
|
#include <wsutil/unicode-utils.h>
|
|
#endif
|
|
|
|
#include <ui/capture_ui_utils.h>
|
|
|
|
/* As boolean flags will be allowed any form of yes, true or any number != 0 (or starting with 0)
|
|
* The regex will be matched case-insensitive, so only the lower-case is defined here. */
|
|
#define EXTCAP_BOOLEAN_REGEX "^.*([yt1-9])"
|
|
|
|
/* Prefix for the pipe interfaces */
|
|
#define EXTCAP_PIPE_PREFIX "wireshark_extcap"
|
|
|
|
#define EXTCAP_ARGUMENT_CONFIG "--extcap-config"
|
|
#define EXTCAP_ARGUMENT_LIST_INTERFACES "--extcap-interfaces"
|
|
#define EXTCAP_ARGUMENT_INTERFACE "--extcap-interface"
|
|
#define EXTCAP_ARGUMENT_LIST_DLTS "--extcap-dlts"
|
|
|
|
#define EXTCAP_ARGUMENT_RUN_CAPTURE "--capture"
|
|
#define EXTCAP_ARGUMENT_CAPTURE_FILTER "--extcap-capture-filter"
|
|
#define EXTCAP_ARGUMENT_RUN_PIPE "--fifo"
|
|
|
|
typedef struct _extcap_info {
|
|
gchar * basename;
|
|
gchar * full_path;
|
|
gchar * version;
|
|
} extcap_info;
|
|
|
|
struct _extcap_arg;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/* Count the number of extcap binaries */
|
|
guint
|
|
extcap_count(void);
|
|
|
|
/* Registers preferences for all interfaces */
|
|
void
|
|
extcap_register_preferences(void);
|
|
|
|
/* try to get if capabilities from extcap */
|
|
if_capabilities_t *
|
|
extcap_get_if_dlts(const gchar * ifname, char ** err_str);
|
|
|
|
/* append a list of all extcap capture interfaces to the specified list */
|
|
GList *
|
|
append_extcap_interface_list(GList *list, char **err_str);
|
|
|
|
/* return the help page or NULL for the given ifname */
|
|
gchar *
|
|
extcap_get_help_for_ifname(const char *ifname);
|
|
|
|
/* get a list of all available extcap tools */
|
|
GHashTable *
|
|
extcap_tools_list(void);
|
|
|
|
/* returns the configuration for the given interface name, or an
|
|
* empty list, if no configuration has been found */
|
|
GList *
|
|
extcap_get_if_configuration(const char * ifname);
|
|
|
|
/**
|
|
* Frees the memory from extcap_get_if_configuration.
|
|
* @param list The list returned by extcap_get_if_configuration.
|
|
* @param free_args TRUE if all arguments in the list must be freed too or FALSE
|
|
* if the ownership of the arguments is taken by the caller.
|
|
*/
|
|
void
|
|
extcap_free_if_configuration(GList *list, gboolean free_args);
|
|
|
|
gboolean
|
|
extcap_has_configuration(const char * ifname, gboolean is_required);
|
|
|
|
#ifdef WIN32
|
|
HANDLE
|
|
extcap_get_win32_handle();
|
|
#endif
|
|
|
|
gboolean
|
|
extcap_init_interfaces(capture_options * capture_opts);
|
|
|
|
gboolean
|
|
extcap_create_pipe(char ** fifo);
|
|
|
|
/* Clean up all if related stuff */
|
|
void
|
|
extcap_if_cleanup(capture_options * capture_opts _U_, gchar ** errormsg);
|
|
|
|
struct preference *
|
|
extcap_pref_for_argument(const gchar *ifname, struct _extcap_arg * arg);
|
|
|
|
void
|
|
extcap_pref_store(struct _extcap_arg * arg, const char * newval);
|
|
|
|
/* Clean up global extcap stuff on program exit */
|
|
void extcap_cleanup(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|
|
|
|
/*
|
|
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
|
*
|
|
* Local variables:
|
|
* c-basic-offset: 4
|
|
* tab-width: 8
|
|
* indent-tabs-mode: nil
|
|
* End:
|
|
*
|
|
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
|
* :indentSize=4:tabSize=8:noTabs=true:
|
|
*/
|