summary refs log tree commit diff stats
path: root/src/common
diff options
context:
space:
mode:
authorTingPing <tingping@fedoraproject.org>2014-06-04 11:15:35 -0400
committerTingPing <tingping@fedoraproject.org>2014-06-04 11:15:35 -0400
commit11e3ecc739ab4ae4359ee12176b893d9b5e314cd (patch)
treeafea836fcceb16c105f2b4c4278f9b0be2e830e1 /src/common
parent5849a0588e7b12003f8b9afcfcdc31f46c6b2329 (diff)
Stop hardcoding plugin extensions everywhere
Diffstat (limited to 'src/common')
-rw-r--r--src/common/outbound.c38
-rw-r--r--src/common/plugin.c12
2 files changed, 8 insertions, 42 deletions
diff --git a/src/common/outbound.c b/src/common/outbound.c
index 53dd742d..d23d941d 100644
--- a/src/common/outbound.c
+++ b/src/common/outbound.c
@@ -2541,7 +2541,6 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 	char *file, *buf;
 #ifdef USE_PLUGIN
 	char *error, *arg;
-	int len;
 #endif
 
 	if (!word[2][0])
@@ -2562,16 +2561,7 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 	}
 
 #ifdef USE_PLUGIN
-	len = strlen (word[2]);
-#ifdef WIN32
-	if (len > 4 && g_ascii_strcasecmp (".dll", word[2] + len - 4) == 0)
-#else
-#if defined(__hpux)
-	if (len > 3 && g_ascii_strcasecmp (".sl", word[2] + len - 3) == 0)
-#else
-	if (len > 3 && g_ascii_strcasecmp (".so", word[2] + len - 3) == 0)
-#endif
-#endif
+	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
 	{
 		arg = NULL;
 		if (word_eol[3][0])
@@ -3567,18 +3557,9 @@ static int
 cmd_unload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 {
 #ifdef USE_PLUGIN
-	int len, by_file = FALSE;
+	gboolean by_file = FALSE;
 
-	len = strlen (word[2]);
-#ifdef WIN32
-	if (len > 4 && g_ascii_strcasecmp (word[2] + len - 4, ".dll") == 0)
-#else
-#if defined(__hpux)
-	if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".sl") == 0)
-#else
-	if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".so") == 0)
-#endif
-#endif
+	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
 		by_file = TRUE;
 
 	switch (plugin_kill (word[2], by_file))
@@ -3601,18 +3582,9 @@ static int
 cmd_reload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 {
 #ifdef USE_PLUGIN
-	int len, by_file = FALSE;
+	gboolean by_file = FALSE;
 
-	len = strlen (word[2]);
-#ifdef WIN32
-	if (len > 4 && g_ascii_strcasecmp (word[2] + len - 4, ".dll") == 0)
-#else
-#if defined(__hpux)
-	if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".sl") == 0)
-#else
-	if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".so") == 0)
-#endif
-#endif
+	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
 		by_file = TRUE;
 
 	switch (plugin_reload (sess, word[2], by_file))
diff --git a/src/common/plugin.c b/src/common/plugin.c
index 3b9e7e51..e356b26a 100644
--- a/src/common/plugin.c
+++ b/src/common/plugin.c
@@ -460,18 +460,12 @@ plugin_auto_load (session *sess)
 	for_files (lib_dir, "hcupd.dll", plugin_auto_load_cb);
 	for_files (lib_dir, "hcwinamp.dll", plugin_auto_load_cb);
 	for_files (lib_dir, "hcsysinfo.dll", plugin_auto_load_cb);
-
-	for_files (sub_dir, "*.dll", plugin_auto_load_cb);
-#else
-#if defined(__hpux)
-	for_files (lib_dir, "*.sl", plugin_auto_load_cb);
-	for_files (sub_dir, "*.sl", plugin_auto_load_cb);
 #else
-	for_files (lib_dir, "*.so", plugin_auto_load_cb);
-	for_files (sub_dir, "*.so", plugin_auto_load_cb);
-#endif
+	for_files (lib_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
 #endif
 
+	for_files (sub_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
+
 	g_free (sub_dir);
 }