netapplet (1.0.8-3) src/netapplet.c

Summary

 src/netapplet.c |   22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

    
download this patch

Patch contents

--- netapplet-1.0.8.orig/src/netapplet.c
+++ netapplet-1.0.8/src/netapplet.c
@@ -5,7 +5,7 @@
  *
  * Licensed under the GNU GPL v2.  See COPYING
  */
-
+#define _GNU_SOURCE
 #include <config.h>
 
 #include <stdio.h>
@@ -46,13 +46,14 @@
 #define WIRELESS_ICON_2         "wireless-tower-2"
 #define WIRELESS_ICON_3         "wireless-tower-3"
 #define WIRELESS_ICON_4         "wireless-tower-4"
-#define DISCONNECT_ICON		"stock_calc-cancel"
+#define DISCONNECT_ICON		"stock_calc-cancel" // should be stock_calc-cancel
 #define BROKEN_ICON		"stock_calc-cancel"
-#define UNKNOWN_ICON            "stock_unknown"
+#define UNKNOWN_ICON            "stock_unknown" // shoulb be stock_unknown
 
 #define GLADE_APPLET		GLADEDIR "/netapplet.glade"
 
 #define YAST2_ARGV { "/opt/kde3/bin/kdesu", "-n", "/sbin/yast2", "lan", NULL }
+#define NET_ADMIN_ARGV { "network-admin", NULL }
 
 typedef struct {
 	char *interface;	/* interface name, e.g. eth0 */
@@ -977,10 +978,18 @@
 configure_activate_cb (GtkMenuItem *mi G_GNUC_UNUSED,
 		       gpointer user_data G_GNUC_UNUSED)
 {
-	char *argv[] = YAST2_ARGV;
 	GError *err = NULL;
+	char *argv_suse[] = YAST2_ARGV; 
+	char *argv_debian[] = NET_ADMIN_ARGV;
+	char **argv;
 
-	if (!g_spawn_async (NULL, argv, NULL, 0, NULL, NULL, NULL, &err)) {
+	if (strcmp (get_platform (), DEBIAN_PLATFORM_NAME) == 0) {
+	  argv=argv_debian;
+	} else {
+	  argv=argv_suse;
+	}
+	
+	if (!g_spawn_async (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &err)) {
 		GtkWidget *dialog;
 
 		dialog = gtk_message_dialog_new_with_markup (
@@ -1424,11 +1433,14 @@
 	for (iter = &args[2]; *iter != NULL; iter += 3) {
 		Accesspoint *ap;
 
+		printf("Got %s %s %s\n",*iter, *(iter+1), *(iter+2));
+
 		ap = g_new (Accesspoint, 1);
 		ap->essid = g_strdup (*iter);
 		ap->strength = g_ascii_strtod (*(iter + 1), NULL);
 		ap->is_encrypted = strtol (*(iter + 2), NULL, 10);
 
+
 		if (netapplet->active_ap != NULL &&
 		    strcmp (netapplet->active_ap->essid, ap->essid) == 0)
 			new_active = ap;