aboutsummaryrefslogtreecommitdiffstats
path: root/plugins.c
diff options
context:
space:
mode:
authoroabad <oabad@f5534014-38df-0310-8fa8-9805f1628bb7>2000-01-04 21:29:43 +0000
committeroabad <oabad@f5534014-38df-0310-8fa8-9805f1628bb7>2000-01-04 21:29:43 +0000
commit28535eadfa9fd359a4dba6b95fcb6dd88b52a0ab (patch)
tree31b2da9fef7665dda11eab83d21bee1371460f8a /plugins.c
parent461f717cfd527ab94b3d7ec60d47852fb9130605 (diff)
Small corrections :
- create ~/.ethereal if it doesn't exist - use PF_DIR instead of .ethereal - remove two memory leaks git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@1418 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'plugins.c')
-rw-r--r--plugins.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/plugins.c b/plugins.c
index c4313027a9..48bac0fe51 100644
--- a/plugins.c
+++ b/plugins.c
@@ -1,7 +1,7 @@
/* plugins.c
* plugin routines
*
- * $Id: plugins.c,v 1.3 2000/01/04 20:37:07 oabad Exp $
+ * $Id: plugins.c,v 1.4 2000/01/04 21:29:43 oabad Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -32,6 +32,10 @@
#include <time.h>
#include <dirent.h>
#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <unistd.h>
#include "globals.h"
@@ -224,14 +228,23 @@ plugin_replace_filter(const gchar *name, const gchar *version,
int
save_plugin_status()
{
- gchar *plugin_status_file;
+ gchar *pf_path;
FILE *statusfile;
plugin *pt_plug;
- plugin_status_file = (gchar *)g_malloc(strlen(getenv("HOME")) + 26);
- sprintf(plugin_status_file, "%s/.ethereal/plugins.status", getenv("HOME"));
+ if (!plugin_status_file) {
+ plugin_status_file = (gchar *)g_malloc(strlen(getenv("HOME")) + 26);
+ sprintf(plugin_status_file, "%s/%s/plugins.status", getenv("HOME"), PF_DIR);
+ }
statusfile=fopen(plugin_status_file, "w");
- if (!statusfile) return -1;
+ if (!statusfile) {
+ pf_path = g_malloc(strlen(getenv("HOME")) + strlen(PF_DIR) + 2);
+ sprintf(pf_path, "%s/%s", getenv("HOME"), PF_DIR);
+ mkdir(pf_path, 0755);
+ g_free(pf_path);
+ statusfile=fopen(plugin_status_file, "w");
+ if (!statusfile) return -1;
+ }
pt_plug = plugin_list;
while (pt_plug)
@@ -285,6 +298,7 @@ check_plugin_status(gchar *name, gchar *version, lt_dlhandle handle,
return;
}
}
+ g_free(ref_string);
}
static void
@@ -309,7 +323,7 @@ plugins_scan_dir(const char *dirname)
if (!plugin_status_file)
{
plugin_status_file = (gchar *)g_malloc(strlen(getenv("HOME")) + 26);
- sprintf(plugin_status_file, "%s/.ethereal/plugins.status", getenv("HOME"));
+ sprintf(plugin_status_file, "%s/%s/plugins.status", getenv("HOME"), PF_DIR);
}
statusfile = fopen(plugin_status_file, "r");
@@ -402,7 +416,7 @@ init_plugins()
if (!user_plug_dir)
{
user_plug_dir = (gchar *)g_malloc(strlen(getenv("HOME")) + 19);
- sprintf(user_plug_dir, "%s/.ethereal/plugins", getenv("HOME"));
+ sprintf(user_plug_dir, "%s/%s/plugins", getenv("HOME"), PF_DIR);
}
plugins_scan_dir(user_plug_dir);
}