forked from osmocom/wireshark
plugins: Be more descriptive in "about wireshark"->"folders"
Display separate entries for binary plugins and lua scripts. This is explained in the user guide, that the binary folder is a subfolder of the lua folder, but it's probably a good idea to be more explicit about it, at the risk of cluttering the interface a bit. Move GeoIP information down because it seems the least important. Add helper functions to provide plugin version subdir. Change some #ifdefs while at it for legibility. Change-Id: Ieb8665df029b3c14de19e2c973bd9b1cc4ec4621 Reviewed-on: https://code.wireshark.org/review/23609 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
This commit is contained in:
parent
f1501b82a7
commit
25ba538bc5
|
@ -74,7 +74,9 @@ libwsutil.so.0 libwsutil0 #MINVER#
|
|||
get_persconffile_path@Base 1.12.0~rc1
|
||||
get_persdatafile_dir@Base 1.12.0~rc1
|
||||
get_plugins_dir@Base 2.5.0
|
||||
get_plugins_dir_with_version@Base 2.5.0
|
||||
get_plugins_pers_dir@Base 1.12.0~rc1
|
||||
get_plugins_pers_dir_with_version@Base 2.5.0
|
||||
get_positive_int@Base 1.99.0
|
||||
get_profile_name@Base 1.12.0~rc1
|
||||
get_profiles_dir@Base 1.12.0~rc1
|
||||
|
|
36
tshark.c
36
tshark.c
|
@ -611,12 +611,31 @@ about_folders(void)
|
|||
constpath = get_progfile_dir();
|
||||
printf("%-21s\t%s\n", "Program:", constpath);
|
||||
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
#ifdef HAVE_PLUGINS
|
||||
/* pers plugins */
|
||||
printf("%-21s\t%s\n", "Personal Plugins:", get_plugins_pers_dir());
|
||||
printf("%-21s\t%s\n", "Personal Plugins:", get_plugins_pers_dir_with_version());
|
||||
|
||||
/* global plugins */
|
||||
printf("%-21s\t%s\n", "Global Plugins:", get_plugins_dir());
|
||||
printf("%-21s\t%s\n", "Global Plugins:", get_plugins_dir_with_version());
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LUA
|
||||
/* pers lua plugins */
|
||||
printf("%-21s\t%s\n", "Personal Lua Plugins:", get_plugins_pers_dir());
|
||||
|
||||
/* global lua plugins */
|
||||
printf("%-21s\t%s\n", "Global Lua Plugins:", get_plugins_dir());
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* Extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
for(i = 0; resultArray[i]; i++)
|
||||
printf("%-21s\t%s\n", "Extcap path:", g_strstrip(resultArray[i]));
|
||||
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GEOIP
|
||||
|
@ -644,17 +663,6 @@ about_folders(void)
|
|||
g_free(path);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* Extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
for(i = 0; resultArray[i]; i++)
|
||||
printf("%-21s\t%s\n", "Extcap path:", g_strstrip(resultArray[i]));
|
||||
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -458,14 +458,36 @@ about_folders_page_new(void)
|
|||
about_folders_row(table, "Program", constpath,
|
||||
"program files");
|
||||
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
#ifdef HAVE_PLUGINS
|
||||
/* pers plugins */
|
||||
about_folders_row(table, "Personal Plugins", get_plugins_pers_dir(),
|
||||
"dissector plugins");
|
||||
about_folders_row(table, "Personal Plugins", get_plugins_pers_dir_with_version(),
|
||||
"binary plugins");
|
||||
|
||||
/* global plugins */
|
||||
about_folders_row(table, "Global Plugins", get_plugins_dir(),
|
||||
"dissector plugins");
|
||||
about_folders_row(table, "Global Plugins", get_plugins_dir_with_version(),
|
||||
"binary plugins");
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LUA
|
||||
/* pers plugins */
|
||||
about_folders_row(table, "Personal Lua Plugins", get_plugins_pers_dir(),
|
||||
"lua scripts");
|
||||
|
||||
/* global plugins */
|
||||
about_folders_row(table, "Global Lua Plugins", get_plugins_dir(),
|
||||
"lua scripts");
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
|
||||
for(i = 0; resultArray[i]; i++)
|
||||
about_folders_row(table, "Extcap path", g_strstrip(resultArray[i]),
|
||||
"Extcap Plugins search path");
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GEOIP
|
||||
|
@ -494,18 +516,6 @@ about_folders_page_new(void)
|
|||
g_free(path);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
|
||||
for(i = 0; resultArray[i]; i++)
|
||||
about_folders_row(table, "Extcap path", g_strstrip(resultArray[i]),
|
||||
"Extcap Plugins search path");
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(scrolledwindow), table);
|
||||
|
||||
return scrolledwindow;
|
||||
|
|
|
@ -224,12 +224,33 @@ AboutDialog::AboutDialog(QWidget *parent) :
|
|||
/* program */
|
||||
message += about_folders_row("Program", get_progfile_dir(), "program files");
|
||||
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
#ifdef HAVE_PLUGINS
|
||||
/* pers plugins */
|
||||
message += about_folders_row("Personal Plugins", get_plugins_pers_dir(), "dissector plugins");
|
||||
message += about_folders_row("Personal Plugins", get_plugins_pers_dir_with_version(), "binary plugins");
|
||||
|
||||
/* global plugins */
|
||||
message += about_folders_row("Global Plugins", get_plugins_dir(), "dissector plugins");
|
||||
message += about_folders_row("Global Plugins", get_plugins_dir_with_version(), "binary plugins");
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LUA
|
||||
/* pers plugins */
|
||||
message += about_folders_row("Personal Lua Plugins", get_plugins_pers_dir(), "lua scripts");
|
||||
|
||||
/* global plugins */
|
||||
message += about_folders_row("Global Lua Plugins", get_plugins_dir(), "lua scripts");
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* Extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
|
||||
for(i = 0; resultArray[i]; i++) {
|
||||
message += about_folders_row("Extcap path", g_strstrip(resultArray[i]),
|
||||
"Extcap Plugins search path");
|
||||
}
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GEOIP
|
||||
|
@ -260,19 +281,6 @@ AboutDialog::AboutDialog(QWidget *parent) :
|
|||
g_free(path);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXTCAP
|
||||
/* Extcap */
|
||||
constpath = get_extcap_dir();
|
||||
|
||||
resultArray = g_strsplit(constpath, G_SEARCHPATH_SEPARATOR_S, 10);
|
||||
|
||||
for(i = 0; resultArray[i]; i++) {
|
||||
message += about_folders_row("Extcap path", g_strstrip(resultArray[i]),
|
||||
"Extcap Plugins search path");
|
||||
}
|
||||
g_strfreev(resultArray);
|
||||
#endif
|
||||
|
||||
message += "</table>";
|
||||
ui->label_folders->setText(message);
|
||||
|
||||
|
|
|
@ -935,7 +935,6 @@ get_datafile_dir(void)
|
|||
return datafile_dir;
|
||||
}
|
||||
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
/*
|
||||
* Find the directory where the plugins are stored.
|
||||
*
|
||||
|
@ -959,11 +958,14 @@ get_datafile_dir(void)
|
|||
* configure script.
|
||||
*/
|
||||
static char *plugin_dir = NULL;
|
||||
static char *plugin_dir_with_version = NULL;
|
||||
static char *plugin_pers_dir = NULL;
|
||||
static char *plugin_pers_dir_with_version = NULL;
|
||||
|
||||
static void
|
||||
init_plugin_dir(void)
|
||||
{
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* On Windows, the data file directory is the installation
|
||||
|
@ -1032,45 +1034,61 @@ init_plugin_dir(void)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
#endif /* defined(HAVE_PLUGINS) || defined(HAVE_LUA) */
|
||||
}
|
||||
|
||||
static void
|
||||
init_plugin_pers_dir(void)
|
||||
{
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
#ifdef _WIN32
|
||||
plugin_pers_dir = get_persconffile_path(PLUGINS_DIR_NAME, FALSE);
|
||||
#else
|
||||
plugin_pers_dir = g_build_filename(g_get_home_dir(), ".local/lib/wireshark/" PLUGINS_DIR_NAME, (gchar *)NULL);
|
||||
#endif
|
||||
#endif /* defined(HAVE_PLUGINS) || defined(HAVE_LUA) */
|
||||
}
|
||||
|
||||
#endif /* HAVE_PLUGINS || HAVE_LUA */
|
||||
|
||||
/*
|
||||
* Get the directory in which the plugins are stored.
|
||||
*/
|
||||
const char *
|
||||
get_plugins_dir(void)
|
||||
{
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
if (!plugin_dir) init_plugin_dir();
|
||||
if (!plugin_dir)
|
||||
init_plugin_dir();
|
||||
return plugin_dir;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *
|
||||
get_plugins_dir_with_version(void)
|
||||
{
|
||||
if (!plugin_dir)
|
||||
init_plugin_dir();
|
||||
if (plugin_dir && !plugin_dir_with_version)
|
||||
plugin_dir_with_version = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%d.%d",
|
||||
plugin_dir, VERSION_MAJOR, VERSION_MINOR);
|
||||
return plugin_dir_with_version;
|
||||
}
|
||||
|
||||
/* Get the personal plugin dir */
|
||||
const char *
|
||||
get_plugins_pers_dir(void)
|
||||
{
|
||||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
if (!plugin_pers_dir)
|
||||
init_plugin_pers_dir();
|
||||
return plugin_pers_dir;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *
|
||||
get_plugins_pers_dir_with_version(void)
|
||||
{
|
||||
if (!plugin_pers_dir)
|
||||
init_plugin_pers_dir();
|
||||
if (plugin_pers_dir && !plugin_pers_dir_with_version)
|
||||
plugin_pers_dir_with_version = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%d.%d",
|
||||
plugin_pers_dir, VERSION_MAJOR, VERSION_MINOR);
|
||||
return plugin_pers_dir_with_version;
|
||||
}
|
||||
|
||||
#if defined(HAVE_EXTCAP)
|
||||
|
@ -2244,8 +2262,12 @@ free_progdirs(void)
|
|||
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
|
||||
g_free(plugin_dir);
|
||||
plugin_dir = NULL;
|
||||
g_free(plugin_dir_with_version);
|
||||
plugin_dir_with_version = NULL;
|
||||
g_free(plugin_pers_dir);
|
||||
plugin_pers_dir = NULL;
|
||||
g_free(plugin_pers_dir_with_version);
|
||||
plugin_pers_dir_with_version = NULL;
|
||||
#endif
|
||||
#ifdef HAVE_EXTCAP
|
||||
g_free(extcap_dir);
|
||||
|
|
|
@ -55,11 +55,21 @@ WS_DLL_PUBLIC const char *get_progfile_dir(void);
|
|||
*/
|
||||
WS_DLL_PUBLIC const char *get_plugins_dir(void);
|
||||
|
||||
/*
|
||||
* Append VERSION_MAJOR.VERSION_MINOR to the plugin dir.
|
||||
*/
|
||||
WS_DLL_PUBLIC const char *get_plugins_dir_with_version(void);
|
||||
|
||||
/*
|
||||
* Get the personal plugin dir.
|
||||
*/
|
||||
WS_DLL_PUBLIC const char *get_plugins_pers_dir(void);
|
||||
|
||||
/*
|
||||
* Append VERSION_MAJOR.VERSION_MINOR to the plugin personal dir.
|
||||
*/
|
||||
WS_DLL_PUBLIC const char *get_plugins_pers_dir_with_version(void);
|
||||
|
||||
/*
|
||||
* Get the directory in which extcap hooks are stored; this must not be called
|
||||
* before init_progfile_dir() is called, as they might be stored in a
|
||||
|
|
|
@ -341,10 +341,7 @@ scan_plugins(plugin_load_failure_mode mode)
|
|||
}
|
||||
else
|
||||
{
|
||||
plugin_dir_path = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%d.%d",
|
||||
get_plugins_dir(), VERSION_MAJOR, VERSION_MINOR);
|
||||
plugins_scan_dir(plugin_dir_path, mode);
|
||||
g_free(plugin_dir_path);
|
||||
plugins_scan_dir(get_plugins_dir_with_version(), mode);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -357,10 +354,7 @@ scan_plugins(plugin_load_failure_mode mode)
|
|||
*/
|
||||
if (!started_with_special_privs())
|
||||
{
|
||||
plugin_dir_path = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%d.%d",
|
||||
get_plugins_pers_dir(), VERSION_MAJOR, VERSION_MINOR);
|
||||
plugins_scan_dir(plugin_dir_path, mode);
|
||||
g_free(plugin_dir_path);
|
||||
plugins_scan_dir(get_plugins_pers_dir_with_version(), mode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue