From 42d050e807191cc9cd904a7ecae024baf2430fab Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 13 Jan 2006 14:47:30 +0000 Subject: [PATCH] 2006-01-13 Dan Williams * src/nm-device-802-11-wireless.c - (supplicant_cleanup): delete old device control sockets too - (supplicant_get_device_socket_path): new function to consolidate locations that need a path to a device's control socket git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1325 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 7 +++++++ src/nm-device-802-11-wireless.c | 22 +++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9647d420e5..a121dcc421 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-01-13 Dan Williams + + * src/nm-device-802-11-wireless.c + - (supplicant_cleanup): delete old device control sockets too + - (supplicant_get_device_socket_path): new function to consolidate + locations that need a path to a device's control socket + 2006-01-12 Robert Love * src/backends/NetworkManagerSuSE.c: Put the ppp device in the diff --git a/src/nm-device-802-11-wireless.c b/src/nm-device-802-11-wireless.c index 3c73c7ee4b..21d2833b7b 100644 --- a/src/nm-device-802-11-wireless.c +++ b/src/nm-device-802-11-wireless.c @@ -2213,10 +2213,22 @@ supplicant_remove_timeout (NMDevice80211Wireless *self) } } +static char * +supplicant_get_device_socket_path (NMDevice80211Wireless *self) +{ + const char *iface; + + g_return_val_if_fail (self != NULL, NULL); + + iface = nm_device_get_iface (NM_DEVICE (self)); + return g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "/%s", iface); +} static void supplicant_cleanup (NMDevice80211Wireless *self) { + char * sock_path; + g_return_if_fail (self != NULL); if (self->priv->sup_pid > 0) @@ -2243,8 +2255,13 @@ supplicant_cleanup (NMDevice80211Wireless *self) supplicant_remove_timeout (self); remove_link_timeout (self); - /* HACK: should be fixed in wpa_supplicant */ + /* HACK: should be fixed in wpa_supplicant. Will likely + * require accomodations for selinux. + */ unlink (WPA_SUPPLICANT_GLOBAL_SOCKET); + sock_path = supplicant_get_device_socket_path (self); + unlink (sock_path); + g_free (sock_path); } static void @@ -2432,8 +2449,7 @@ supplicant_interface_init (NMDevice80211Wireless *self) wpa_ctrl_close (ctrl); /* attach to interface socket */ - if (!(socket_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "/%s", iface))) - goto exit; + socket_path = supplicant_get_device_socket_path (self); self->priv->sup_ctrl = wpa_ctrl_open (socket_path); g_free (socket_path); success = TRUE;