This commit is contained in:
parent
aeef14dc92
commit
1566d8ae23
6
config
6
config
@ -4,8 +4,8 @@ CONFIG_DRIVER_PRISM54=y
|
|||||||
# CONFIG_DRIVER_MADWIFI gets dynamically added when needed
|
# CONFIG_DRIVER_MADWIFI gets dynamically added when needed
|
||||||
CONFIG_DRIVER_ATMEL=y
|
CONFIG_DRIVER_ATMEL=y
|
||||||
CONFIG_DRIVER_WEXT=y
|
CONFIG_DRIVER_WEXT=y
|
||||||
CONFIG_DRIVER_NDISWRAPPER=y
|
#CONFIG_DRIVER_NDISWRAPPER=y
|
||||||
CONFIG_DRIVER_IPW=y
|
#CONFIG_DRIVER_IPW=y
|
||||||
CONFIG_DRIVER_WIRED=y
|
CONFIG_DRIVER_WIRED=y
|
||||||
CONFIG_WIRELESS_EXTENSION=y
|
CONFIG_WIRELESS_EXTENSION=y
|
||||||
CONFIG_IEEE8021X_EAPOL=y
|
CONFIG_IEEE8021X_EAPOL=y
|
||||||
@ -22,7 +22,9 @@ CONFIG_EAP_LEAP=y
|
|||||||
CONFIG_PKCS12=y
|
CONFIG_PKCS12=y
|
||||||
CONFIG_SMARTCARD=y
|
CONFIG_SMARTCARD=y
|
||||||
CONFIG_CTRL_IFACE=y
|
CONFIG_CTRL_IFACE=y
|
||||||
|
CONFIG_CTRL_IFACE_DBUS=y
|
||||||
CONFIG_READLINE=y
|
CONFIG_READLINE=y
|
||||||
#CONFIG_PCSC
|
#CONFIG_PCSC
|
||||||
#CONFIG_EAP_SIM
|
#CONFIG_EAP_SIM
|
||||||
#CONFIG_EAP_AKA
|
#CONFIG_EAP_AKA
|
||||||
|
CONFIG_DEBUG_FILE=y
|
5
fi.epitest.hostap.WPASupplicant.service
Normal file
5
fi.epitest.hostap.WPASupplicant.service
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[D-BUS Service]
|
||||||
|
Name=fi.epitest.hostap.WPASupplicant
|
||||||
|
Exec=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f
|
||||||
|
User=root
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
diff -Naur wpa_supplicant-0.5.8.org/wpa_gui/networkconfig.ui.h wpa_supplicant-0.5.8/wpa_gui/networkconfig.ui.h
|
|
||||||
--- wpa_supplicant-0.5.8.org/wpa_gui/networkconfig.ui.h 2007-11-12 14:09:15.880153000 +0100
|
|
||||||
+++ wpa_supplicant-0.5.8/wpa_gui/networkconfig.ui.h 2007-11-12 14:16:58.865706000 +0100
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
** destructor.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
+#include <cstdlib>
|
|
||||||
|
|
||||||
enum {
|
|
||||||
AUTH_NONE = 0,
|
|
||||||
diff -Naur wpa_supplicant-0.5.8.org/wpa_gui/userdatarequest.ui.h wpa_supplicant-0.5.8/wpa_gui/userdatarequest.ui.h
|
|
||||||
--- wpa_supplicant-0.5.8.org/wpa_gui/userdatarequest.ui.h 2007-11-12 14:09:15.910119000 +0100
|
|
||||||
+++ wpa_supplicant-0.5.8/wpa_gui/userdatarequest.ui.h 2007-11-12 14:14:20.493231000 +0100
|
|
||||||
@@ -10,6 +10,8 @@
|
|
||||||
** destructor.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
+#include <cstdlib>
|
|
||||||
+
|
|
||||||
int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
|
|
||||||
{
|
|
||||||
char *tmp, *pos, *pos2;
|
|
||||||
diff -Naur wpa_supplicant-0.5.8.org/wpa_gui/wpagui.ui.h wpa_supplicant-0.5.8/wpa_gui/wpagui.ui.h
|
|
||||||
--- wpa_supplicant-0.5.8.org/wpa_gui/wpagui.ui.h 2007-11-12 14:09:15.923117000 +0100
|
|
||||||
+++ wpa_supplicant-0.5.8/wpa_gui/wpagui.ui.h 2007-11-12 14:17:46.359161000 +0100
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <cstdlib>
|
|
||||||
|
|
||||||
void WpaGui::init()
|
|
||||||
{
|
|
13
wpa_supplicant-always-scan.patch
Normal file
13
wpa_supplicant-always-scan.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/wpa_supplicant.c
|
||||||
|
+++ wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
@@ -974,7 +974,7 @@ static void wpa_supplicant_scan(void *el
|
||||||
|
struct wpa_ssid *ssid;
|
||||||
|
int enabled, scan_req = 0, ret;
|
||||||
|
|
||||||
|
- if (wpa_s->disconnected)
|
||||||
|
+ if (wpa_s->disconnected && !wpa_s->scan_req)
|
||||||
|
return;
|
||||||
|
|
||||||
|
enabled = 0;
|
16
wpa_supplicant-assoc-timeout.patch
Normal file
16
wpa_supplicant-assoc-timeout.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/wpa_supplicant.c
|
||||||
|
+++ wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
@@ -1513,9 +1513,9 @@ void wpa_supplicant_associate(struct wpa
|
||||||
|
/* Timeout for IEEE 802.11 authentication and association */
|
||||||
|
int timeout;
|
||||||
|
if (assoc_failed)
|
||||||
|
- timeout = 5;
|
||||||
|
+ timeout = 15;
|
||||||
|
else if (wpa_s->conf->ap_scan == 1)
|
||||||
|
- timeout = 10;
|
||||||
|
+ timeout = 15;
|
||||||
|
else
|
||||||
|
timeout = 60;
|
||||||
|
wpa_supplicant_req_auth_timeout(wpa_s, timeout, 0);
|
186
wpa_supplicant-dbus-blobs.patch
Normal file
186
wpa_supplicant-dbus-blobs.patch
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/config.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/config.c
|
||||||
|
+++ wpa_supplicant-0.5.8/config.c
|
||||||
|
@@ -70,13 +70,14 @@ static char * wpa_config_parse_string(co
|
||||||
|
if (hlen & 1)
|
||||||
|
return NULL;
|
||||||
|
*len = hlen / 2;
|
||||||
|
- str = os_malloc(*len);
|
||||||
|
+ str = os_malloc(*len + 1);
|
||||||
|
if (str == NULL)
|
||||||
|
return NULL;
|
||||||
|
if (hexstr2bin(value, str, *len)) {
|
||||||
|
os_free(str);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
+ str[*len] = '\0';
|
||||||
|
return (char *) str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Index: wpa_supplicant-0.5.8/ctrl_iface_dbus.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/ctrl_iface_dbus.c
|
||||||
|
+++ wpa_supplicant-0.5.8/ctrl_iface_dbus.c
|
||||||
|
@@ -536,6 +536,10 @@ static DBusHandlerResult wpas_iface_mess
|
||||||
|
reply = wpas_dbus_iface_set_ap_scan(message, wpa_s);
|
||||||
|
else if (!strcmp(method, "state"))
|
||||||
|
reply = wpas_dbus_iface_get_state(message, wpa_s);
|
||||||
|
+ else if (!strcmp(method, "setBlobs"))
|
||||||
|
+ reply = wpas_dbus_iface_set_blobs(message, wpa_s);
|
||||||
|
+ else if (!strcmp(method, "removeBlobs"))
|
||||||
|
+ reply = wpas_dbus_iface_remove_blobs(message, wpa_s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If the message was handled, send back the reply */
|
||||||
|
Index: wpa_supplicant-0.5.8/ctrl_iface_dbus_handlers.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/ctrl_iface_dbus_handlers.c
|
||||||
|
+++ wpa_supplicant-0.5.8/ctrl_iface_dbus_handlers.c
|
||||||
|
@@ -1203,3 +1203,129 @@ DBusMessage * wpas_dbus_iface_get_state(
|
||||||
|
|
||||||
|
return reply;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * wpas_dbus_iface_set_blobs - Store named binary blobs (ie, for certificates)
|
||||||
|
+ * @message: Pointer to incoming dbus message
|
||||||
|
+ * @global: %wpa_supplicant global data structure
|
||||||
|
+ * Returns: A dbus message containing a UINT32 indicating success (1) or
|
||||||
|
+ * failure (0)
|
||||||
|
+ *
|
||||||
|
+ * Asks wpa_supplicant to internally store a one or more binary blobs.
|
||||||
|
+ */
|
||||||
|
+DBusMessage * wpas_dbus_iface_set_blobs(DBusMessage *message,
|
||||||
|
+ struct wpa_supplicant *wpa_s)
|
||||||
|
+{
|
||||||
|
+ DBusMessage *reply = NULL;
|
||||||
|
+ struct wpa_dbus_dict_entry entry = { .type = DBUS_TYPE_STRING };
|
||||||
|
+ DBusMessageIter iter, iter_dict;
|
||||||
|
+
|
||||||
|
+ dbus_message_iter_init(message, &iter);
|
||||||
|
+
|
||||||
|
+ if (!wpa_dbus_dict_open_read(&iter, &iter_dict))
|
||||||
|
+ return wpas_dbus_new_invalid_opts_error(message, NULL);
|
||||||
|
+
|
||||||
|
+ while (wpa_dbus_dict_has_dict_entry(&iter_dict)) {
|
||||||
|
+ struct wpa_config_blob *blob;
|
||||||
|
+
|
||||||
|
+ if (!wpa_dbus_dict_get_entry(&iter_dict, &entry)) {
|
||||||
|
+ reply = wpas_dbus_new_invalid_opts_error(message, NULL);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (entry.type != DBUS_TYPE_ARRAY ||
|
||||||
|
+ entry.array_type != DBUS_TYPE_BYTE) {
|
||||||
|
+ reply = wpas_dbus_new_invalid_opts_error(message,
|
||||||
|
+ "Byte array expected.");
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if ( (entry.array_len <= 0)
|
||||||
|
+ || (entry.array_len > 65536)
|
||||||
|
+ || !strlen(entry.key)) {
|
||||||
|
+ reply = wpas_dbus_new_invalid_opts_error(message,
|
||||||
|
+ "Invalid array size.");
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ blob = os_zalloc(sizeof(*blob));
|
||||||
|
+ if (blob == NULL) {
|
||||||
|
+ reply = dbus_message_new_error(message,
|
||||||
|
+ WPAS_ERROR_ADD_ERROR,
|
||||||
|
+ "Not enough memory to add blob.");
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ blob->data = os_zalloc(entry.array_len);
|
||||||
|
+ if (blob->data == NULL) {
|
||||||
|
+ reply = dbus_message_new_error(message,
|
||||||
|
+ WPAS_ERROR_ADD_ERROR,
|
||||||
|
+ "Not enough memory to add blob data.");
|
||||||
|
+ os_free(blob);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ blob->name = os_strdup(entry.key);
|
||||||
|
+ blob->len = entry.array_len;
|
||||||
|
+ os_memcpy(blob->data, (u8 *) entry.bytearray_value,
|
||||||
|
+ entry.array_len);
|
||||||
|
+ if (blob->name == NULL || blob->data == NULL) {
|
||||||
|
+ wpa_config_free_blob(blob);
|
||||||
|
+ reply = dbus_message_new_error(message,
|
||||||
|
+ WPAS_ERROR_ADD_ERROR,
|
||||||
|
+ "Error adding blob.");
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Success */
|
||||||
|
+ wpa_config_remove_blob(wpa_s->conf, blob->name);
|
||||||
|
+ wpa_config_set_blob(wpa_s->conf, blob);
|
||||||
|
+ wpa_dbus_dict_entry_clear(&entry);
|
||||||
|
+ }
|
||||||
|
+ wpa_dbus_dict_entry_clear(&entry);
|
||||||
|
+
|
||||||
|
+ return reply ? reply : wpas_dbus_new_success_reply(message);;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * wpas_dbus_iface_remove_blob - Remove named binary blobs
|
||||||
|
+ * @message: Pointer to incoming dbus message
|
||||||
|
+ * @global: %wpa_supplicant global data structure
|
||||||
|
+ * Returns: A dbus message containing a UINT32 indicating success (1) or
|
||||||
|
+ * failure (0)
|
||||||
|
+ *
|
||||||
|
+ * Asks wpa_supplicant to remove one or more previously stored binary blobs.
|
||||||
|
+ */
|
||||||
|
+DBusMessage * wpas_dbus_iface_remove_blobs(DBusMessage *message,
|
||||||
|
+ struct wpa_supplicant *wpa_s)
|
||||||
|
+{
|
||||||
|
+ DBusMessageIter iter, array;
|
||||||
|
+ char *err_msg = NULL;
|
||||||
|
+
|
||||||
|
+ dbus_message_iter_init(message, &iter);
|
||||||
|
+
|
||||||
|
+ if ((dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_ARRAY)
|
||||||
|
+ || (dbus_message_iter_get_element_type (&iter) != DBUS_TYPE_STRING))
|
||||||
|
+ return wpas_dbus_new_invalid_opts_error(message, NULL);
|
||||||
|
+
|
||||||
|
+ dbus_message_iter_recurse(&iter, &array);
|
||||||
|
+ while (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_STRING) {
|
||||||
|
+ const char *name;
|
||||||
|
+
|
||||||
|
+ dbus_message_iter_get_basic(&array, &name);
|
||||||
|
+ if (!strlen(name))
|
||||||
|
+ err_msg = "Invalid blob name.";
|
||||||
|
+
|
||||||
|
+ if (wpa_config_remove_blob(wpa_s->conf, name) != 0)
|
||||||
|
+ err_msg = "Error removing blob.";
|
||||||
|
+ dbus_message_iter_next(&array);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (err_msg) {
|
||||||
|
+ return dbus_message_new_error(message, WPAS_ERROR_REMOVE_ERROR,
|
||||||
|
+ err_msg);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return wpas_dbus_new_success_reply(message);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
Index: wpa_supplicant-0.5.8/ctrl_iface_dbus_handlers.h
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/ctrl_iface_dbus_handlers.h
|
||||||
|
+++ wpa_supplicant-0.5.8/ctrl_iface_dbus_handlers.h
|
||||||
|
@@ -71,6 +71,12 @@ DBusMessage * wpas_dbus_iface_set_ap_sca
|
||||||
|
DBusMessage * wpas_dbus_iface_get_state(DBusMessage *message,
|
||||||
|
struct wpa_supplicant *wpa_s);
|
||||||
|
|
||||||
|
+DBusMessage * wpas_dbus_iface_set_blobs(DBusMessage *message,
|
||||||
|
+ struct wpa_supplicant *wpa_s);
|
||||||
|
+
|
||||||
|
+DBusMessage * wpas_dbus_iface_remove_blobs(DBusMessage *message,
|
||||||
|
+ struct wpa_supplicant *wpa_s);
|
||||||
|
+
|
||||||
|
#endif /* CONFIG_CTRL_IFACE_DBUS */
|
||||||
|
|
||||||
|
#endif /* CTRL_IFACE_DBUS_HANDLERS_H */
|
14
wpa_supplicant-dbus-iface-segfault-fix.patch
Normal file
14
wpa_supplicant-dbus-iface-segfault-fix.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/wpa_supplicant.c
|
||||||
|
+++ wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
@@ -2363,7 +2363,8 @@ static void wpa_supplicant_deinit_iface(
|
||||||
|
wpa_clear_keys(wpa_s, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
- wpas_dbus_unregister_iface(wpa_s);
|
||||||
|
+ if (wpa_s->global)
|
||||||
|
+ wpas_dbus_unregister_iface(wpa_s);
|
||||||
|
|
||||||
|
wpa_supplicant_cleanup(wpa_s);
|
||||||
|
|
15
wpa_supplicant-dbus-permissions-fix.patch
Normal file
15
wpa_supplicant-dbus-permissions-fix.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/dbus-wpa_supplicant.conf
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/dbus-wpa_supplicant.conf
|
||||||
|
+++ wpa_supplicant-0.5.8/dbus-wpa_supplicant.conf
|
||||||
|
@@ -8,10 +8,6 @@
|
||||||
|
<allow send_destination="fi.epitest.hostap.WPASupplicant"/>
|
||||||
|
<allow send_interface="fi.epitest.hostap.WPASupplicant"/>
|
||||||
|
</policy>
|
||||||
|
- <policy at_console="true">
|
||||||
|
- <allow send_destination="fi.epitest.hostap.WPASupplicant"/>
|
||||||
|
- <allow send_interface="fi.epitest.hostap.WPASupplicant"/>
|
||||||
|
- </policy>
|
||||||
|
<policy context="default">
|
||||||
|
<deny own="fi.epitest.hostap.WPASupplicant"/>
|
||||||
|
<deny send_destination="fi.epitest.hostap.WPASupplicant"/>
|
81
wpa_supplicant-debug-file.patch
Normal file
81
wpa_supplicant-debug-file.patch
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/Makefile
|
||||||
|
+++ wpa_supplicant-0.5.8/Makefile
|
||||||
|
@@ -744,6 +744,10 @@ ifndef LDO
|
||||||
|
LDO=$(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
+ifdef CONFIG_DEBUG_FILE
|
||||||
|
+CFLAGS += -DCONFIG_DEBUG_FILE
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
dynamic_eap_methods: $(EAPDYN)
|
||||||
|
|
||||||
|
wpa_supplicant: .config $(OBJS)
|
||||||
|
Index: wpa_supplicant-0.5.8/common.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/common.c
|
||||||
|
+++ wpa_supplicant-0.5.8/common.c
|
||||||
|
@@ -354,11 +354,8 @@ int wpa_debug_open_file(void)
|
||||||
|
#ifdef _WIN32
|
||||||
|
os_snprintf(fname, sizeof(fname), "\\Temp\\wpa_supplicant-log-%d.txt",
|
||||||
|
count++);
|
||||||
|
-#else /* _WIN32 */
|
||||||
|
- os_snprintf(fname, sizeof(fname), "/tmp/wpa_supplicant-log-%d.txt",
|
||||||
|
- count++);
|
||||||
|
#endif /* _WIN32 */
|
||||||
|
- out_file = fopen(fname, "w");
|
||||||
|
+ out_file = fopen("/var/log/wpa_supplicant.log", "a");
|
||||||
|
return out_file == NULL ? -1 : 0;
|
||||||
|
#else /* CONFIG_DEBUG_FILE */
|
||||||
|
return 0;
|
||||||
|
Index: wpa_supplicant-0.5.8/main.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/main.c
|
||||||
|
+++ wpa_supplicant-0.5.8/main.c
|
||||||
|
@@ -45,7 +45,12 @@ static void usage(void)
|
||||||
|
"[-p<driver_param>] \\\n"
|
||||||
|
" [-b<br_ifname> [-N -i<ifname> -c<conf> [-C<ctrl>] "
|
||||||
|
"[-D<driver>] \\\n"
|
||||||
|
- " [-p<driver_param>] [-b<br_ifname>] ...]\n"
|
||||||
|
+ " [-p<driver_param>] [-b<br_ifname>] ...] "
|
||||||
|
+#ifdef CONFIG_DEBUG_FILE
|
||||||
|
+ "[-f] \\\n"
|
||||||
|
+#else
|
||||||
|
+ "\n"
|
||||||
|
+#endif
|
||||||
|
"\n"
|
||||||
|
"drivers:\n",
|
||||||
|
wpa_supplicant_version, wpa_supplicant_license);
|
||||||
|
@@ -65,6 +70,9 @@ static void usage(void)
|
||||||
|
" -i = interface name\n"
|
||||||
|
" -d = increase debugging verbosity (-dd even more)\n"
|
||||||
|
" -D = driver name\n"
|
||||||
|
+#ifdef CONFIG_DEBUG_FILE
|
||||||
|
+ " -f = Log output to /var/log/wpa_supplicant.log\n"
|
||||||
|
+#endif
|
||||||
|
" -g = global ctrl_interface\n"
|
||||||
|
" -K = include keys (passwords, etc.) in debug output\n"
|
||||||
|
" -t = include timestamp in debug messages\n"
|
||||||
|
@@ -143,7 +151,7 @@ int main(int argc, char *argv[])
|
||||||
|
wpa_supplicant_fd_workaround();
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
- c = getopt(argc, argv, "b:Bc:C:D:dg:hi:KLNp:P:qtuvwW");
|
||||||
|
+ c = getopt(argc, argv, "b:Bc:C:D:dfg:hi:KLNp:P:qtuvwW");
|
||||||
|
if (c < 0)
|
||||||
|
break;
|
||||||
|
switch (c) {
|
||||||
|
@@ -172,6 +180,11 @@ int main(int argc, char *argv[])
|
||||||
|
params.wpa_debug_level--;
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_NO_STDOUT_DEBUG */
|
||||||
|
+#ifdef CONFIG_DEBUG_FILE
|
||||||
|
+ case 'f':
|
||||||
|
+ params.wpa_debug_use_file = 1;
|
||||||
|
+ break;
|
||||||
|
+#endif
|
||||||
|
case 'g':
|
||||||
|
params.ctrl_interface = optarg;
|
||||||
|
break;
|
115
wpa_supplicant-driver-wext-debug.patch
Normal file
115
wpa_supplicant-driver-wext-debug.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/driver_wext.c
|
||||||
|
+++ wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
@@ -1803,20 +1803,32 @@ wpa_driver_wext_associate(void *priv,
|
||||||
|
*/
|
||||||
|
if (drv->auth_alg_fallback &&
|
||||||
|
wpa_driver_wext_auth_alg_fallback(drv, params) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because auth_alg_fallback failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
|
||||||
|
if (!params->bssid &&
|
||||||
|
wpa_driver_wext_set_bssid(drv, NULL) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_bssid failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
|
||||||
|
if (wpa_driver_wext_set_mode(drv, params->mode) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_mode failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
/* TODO: should consider getting wpa version and cipher/key_mgmt suites
|
||||||
|
* from configuration, not from here, where only the selected suite is
|
||||||
|
* available */
|
||||||
|
if (wpa_driver_wext_set_gen_ie(drv, params->wpa_ie, params->wpa_ie_len)
|
||||||
|
< 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_gen_ie failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
if (params->wpa_ie == NULL || params->wpa_ie_len == 0)
|
||||||
|
value = IW_AUTH_WPA_VERSION_DISABLED;
|
||||||
|
else if (params->wpa_ie[0] == RSN_INFO_ELEM)
|
||||||
|
@@ -1825,26 +1837,41 @@ wpa_driver_wext_associate(void *priv,
|
||||||
|
value = IW_AUTH_WPA_VERSION_WPA;
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_WPA_VERSION, value) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(WPA_VERSION) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
value = wpa_driver_wext_cipher2wext(params->pairwise_suite);
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_CIPHER_PAIRWISE, value) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(CIPHER_PAIRWISE) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
value = wpa_driver_wext_cipher2wext(params->group_suite);
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_CIPHER_GROUP, value) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(CIPHER_GROUP) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
value = wpa_driver_wext_keymgmt2wext(params->key_mgmt_suite);
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_KEY_MGMT, value) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(KEY_MGMT) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
value = params->key_mgmt_suite != KEY_MGMT_NONE ||
|
||||||
|
params->pairwise_suite != CIPHER_NONE ||
|
||||||
|
params->group_suite != CIPHER_NONE ||
|
||||||
|
params->wpa_ie_len;
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_PRIVACY_INVOKED, value) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(PRIVACY_INVOKED) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
|
||||||
|
/* Allow unencrypted EAPOL messages even if pairwise keys are set when
|
||||||
|
* not using WPA. IEEE 802.1X specifies that these frames are not
|
||||||
|
@@ -1858,14 +1885,26 @@ wpa_driver_wext_associate(void *priv,
|
||||||
|
if (wpa_driver_wext_set_auth_param(drv,
|
||||||
|
IW_AUTH_RX_UNENCRYPTED_EAPOL,
|
||||||
|
allow_unencrypted_eapol) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(RX_UNENCRYPTED_EAPOL) failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
if (params->freq && wpa_driver_wext_set_freq(drv, params->freq) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_freq failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
if (wpa_driver_wext_set_ssid(drv, params->ssid, params->ssid_len) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_ssid failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
if (params->bssid &&
|
||||||
|
wpa_driver_wext_set_bssid(drv, params->bssid) < 0)
|
||||||
|
+{
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: assoc failed because set_bssid2 failed", __FUNCTION__);
|
||||||
|
ret = -1;
|
||||||
|
+}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@@ -1890,6 +1929,8 @@ static int wpa_driver_wext_set_auth_alg(
|
||||||
|
res = wpa_driver_wext_set_auth_param(drv, IW_AUTH_80211_AUTH_ALG,
|
||||||
|
algs);
|
||||||
|
drv->auth_alg_fallback = res == -2;
|
||||||
|
+if (res == -2)
|
||||||
|
+wpa_printf(MSG_DEBUG, "%s: falling back to ENCODE for AUTH", __FUNCTION__);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
189
wpa_supplicant-fix-deprecated-dbus-function.patch
Normal file
189
wpa_supplicant-fix-deprecated-dbus-function.patch
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/dbus_dict_helpers.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/dbus_dict_helpers.c
|
||||||
|
+++ wpa_supplicant-0.5.8/dbus_dict_helpers.c
|
||||||
|
@@ -629,36 +629,55 @@ dbus_bool_t wpa_dbus_dict_open_read(DBus
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+#define BYTE_ARRAY_CHUNK_SIZE 34
|
||||||
|
+#define BYTE_ARRAY_ITEM_SIZE (sizeof (char))
|
||||||
|
+
|
||||||
|
static dbus_bool_t _wpa_dbus_dict_entry_get_byte_array(
|
||||||
|
- DBusMessageIter *iter, int array_len, int array_type,
|
||||||
|
+ DBusMessageIter *iter, int array_type,
|
||||||
|
struct wpa_dbus_dict_entry *entry)
|
||||||
|
{
|
||||||
|
- dbus_uint32_t i = 0;
|
||||||
|
+ dbus_uint32_t count = 0;
|
||||||
|
dbus_bool_t success = FALSE;
|
||||||
|
- char byte;
|
||||||
|
+ char * buffer;
|
||||||
|
|
||||||
|
- /* Zero-length arrays are valid. */
|
||||||
|
- if (array_len == 0) {
|
||||||
|
- entry->bytearray_value = NULL;
|
||||||
|
- entry->array_type = DBUS_TYPE_BYTE;
|
||||||
|
- success = TRUE;
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
+ entry->bytearray_value = NULL;
|
||||||
|
+ entry->array_type = DBUS_TYPE_BYTE;
|
||||||
|
|
||||||
|
- entry->bytearray_value = wpa_zalloc(array_len * sizeof(char));
|
||||||
|
- if (!entry->bytearray_value) {
|
||||||
|
+ buffer = wpa_zalloc(BYTE_ARRAY_ITEM_SIZE * BYTE_ARRAY_CHUNK_SIZE);
|
||||||
|
+ if (!buffer) {
|
||||||
|
perror("_wpa_dbus_dict_entry_get_byte_array[dbus]: out of "
|
||||||
|
"memory");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
- entry->array_type = DBUS_TYPE_BYTE;
|
||||||
|
- entry->array_len = array_len;
|
||||||
|
+ entry->bytearray_value = buffer;
|
||||||
|
+ entry->array_len = 0;
|
||||||
|
while (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_BYTE) {
|
||||||
|
+ char byte;
|
||||||
|
+
|
||||||
|
+ if ((count % BYTE_ARRAY_CHUNK_SIZE) == 0 && count != 0) {
|
||||||
|
+ buffer = realloc(buffer, BYTE_ARRAY_ITEM_SIZE * (count + BYTE_ARRAY_CHUNK_SIZE));
|
||||||
|
+ if (buffer == NULL) {
|
||||||
|
+ perror("_wpa_dbus_dict_entry_get_byte_array["
|
||||||
|
+ "dbus] out of memory trying to "
|
||||||
|
+ "retrieve the string array");
|
||||||
|
+ goto done;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ entry->bytearray_value = buffer;
|
||||||
|
+
|
||||||
|
dbus_message_iter_get_basic(iter, &byte);
|
||||||
|
- entry->bytearray_value[i++] = byte;
|
||||||
|
+ entry->bytearray_value[count] = byte;
|
||||||
|
+ entry->array_len = ++count;
|
||||||
|
dbus_message_iter_next(iter);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* Zero-length arrays are valid. */
|
||||||
|
+ if (entry->array_len == 0) {
|
||||||
|
+ free(entry->bytearray_value);
|
||||||
|
+ entry->strarray_value = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
success = TRUE;
|
||||||
|
|
||||||
|
done:
|
||||||
|
@@ -666,8 +685,11 @@ done:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+#define STR_ARRAY_CHUNK_SIZE 8
|
||||||
|
+#define STR_ARRAY_ITEM_SIZE (sizeof (char *))
|
||||||
|
+
|
||||||
|
static dbus_bool_t _wpa_dbus_dict_entry_get_string_array(
|
||||||
|
- DBusMessageIter *iter, int array_len, int array_type,
|
||||||
|
+ DBusMessageIter *iter, int array_type,
|
||||||
|
struct wpa_dbus_dict_entry *entry)
|
||||||
|
{
|
||||||
|
dbus_uint32_t count = 0;
|
||||||
|
@@ -677,13 +699,7 @@ static dbus_bool_t _wpa_dbus_dict_entry_
|
||||||
|
entry->strarray_value = NULL;
|
||||||
|
entry->array_type = DBUS_TYPE_STRING;
|
||||||
|
|
||||||
|
- /* Zero-length arrays are valid. */
|
||||||
|
- if (array_len == 0) {
|
||||||
|
- success = TRUE;
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- buffer = wpa_zalloc(sizeof (char *) * 8);
|
||||||
|
+ buffer = wpa_zalloc(STR_ARRAY_ITEM_SIZE * STR_ARRAY_CHUNK_SIZE);
|
||||||
|
if (buffer == NULL) {
|
||||||
|
perror("_wpa_dbus_dict_entry_get_string_array[dbus] out of "
|
||||||
|
"memory trying to retrieve a string array");
|
||||||
|
@@ -696,18 +712,14 @@ static dbus_bool_t _wpa_dbus_dict_entry_
|
||||||
|
const char *value;
|
||||||
|
char *str;
|
||||||
|
|
||||||
|
- if ((count % 8) == 0 && count != 0) {
|
||||||
|
- char **tmp;
|
||||||
|
- tmp = realloc(buffer, sizeof(char *) * (count + 8));
|
||||||
|
- if (tmp == NULL) {
|
||||||
|
+ if ((count % STR_ARRAY_CHUNK_SIZE) == 0 && count != 0) {
|
||||||
|
+ buffer = realloc(buffer, STR_ARRAY_ITEM_SIZE * (count + STR_ARRAY_CHUNK_SIZE));
|
||||||
|
+ if (buffer == NULL) {
|
||||||
|
perror("_wpa_dbus_dict_entry_get_string_array["
|
||||||
|
"dbus] out of memory trying to "
|
||||||
|
"retrieve the string array");
|
||||||
|
- free(buffer);
|
||||||
|
- buffer = NULL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
- buffer = tmp;
|
||||||
|
}
|
||||||
|
entry->strarray_value = buffer;
|
||||||
|
|
||||||
|
@@ -723,6 +735,13 @@ static dbus_bool_t _wpa_dbus_dict_entry_
|
||||||
|
entry->array_len = ++count;
|
||||||
|
dbus_message_iter_next(iter);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* Zero-length arrays are valid. */
|
||||||
|
+ if (entry->array_len == 0) {
|
||||||
|
+ free(entry->strarray_value);
|
||||||
|
+ entry->strarray_value = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
success = TRUE;
|
||||||
|
|
||||||
|
done:
|
||||||
|
@@ -734,7 +753,6 @@ static dbus_bool_t _wpa_dbus_dict_entry_
|
||||||
|
DBusMessageIter *iter_dict_val, struct wpa_dbus_dict_entry *entry)
|
||||||
|
{
|
||||||
|
int array_type = dbus_message_iter_get_element_type(iter_dict_val);
|
||||||
|
- int array_len;
|
||||||
|
dbus_bool_t success = FALSE;
|
||||||
|
DBusMessageIter iter_array;
|
||||||
|
|
||||||
|
@@ -743,20 +761,14 @@ static dbus_bool_t _wpa_dbus_dict_entry_
|
||||||
|
|
||||||
|
dbus_message_iter_recurse(iter_dict_val, &iter_array);
|
||||||
|
|
||||||
|
- array_len = dbus_message_iter_get_array_len(&iter_array);
|
||||||
|
- if (array_len < 0)
|
||||||
|
- return FALSE;
|
||||||
|
-
|
||||||
|
switch (array_type) {
|
||||||
|
case DBUS_TYPE_BYTE:
|
||||||
|
success = _wpa_dbus_dict_entry_get_byte_array(&iter_array,
|
||||||
|
- array_len,
|
||||||
|
array_type,
|
||||||
|
entry);
|
||||||
|
break;
|
||||||
|
case DBUS_TYPE_STRING:
|
||||||
|
success = _wpa_dbus_dict_entry_get_string_array(&iter_array,
|
||||||
|
- array_len,
|
||||||
|
array_type,
|
||||||
|
entry);
|
||||||
|
break;
|
||||||
|
@@ -946,9 +958,17 @@ void wpa_dbus_dict_entry_clear(struct wp
|
||||||
|
break;
|
||||||
|
case DBUS_TYPE_ARRAY:
|
||||||
|
switch (entry->array_type) {
|
||||||
|
- case DBUS_TYPE_BYTE:
|
||||||
|
- free(entry->bytearray_value);
|
||||||
|
- break;
|
||||||
|
+ case DBUS_TYPE_BYTE: {
|
||||||
|
+ free(entry->bytearray_value);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ case DBUS_TYPE_STRING: {
|
||||||
|
+ int i;
|
||||||
|
+ for (i = 0; i < entry->array_len; i++)
|
||||||
|
+ free (entry->strarray_value[i]);
|
||||||
|
+ free (entry->strarray_value);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
12
wpa_supplicant-fix-dynamic-wep-with-mac80211.patch
Normal file
12
wpa_supplicant-fix-dynamic-wep-with-mac80211.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/driver_wext.c
|
||||||
|
+++ wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
@@ -1733,6 +1733,7 @@ static int wpa_driver_wext_keymgmt2wext(
|
||||||
|
{
|
||||||
|
switch (keymgmt) {
|
||||||
|
case KEY_MGMT_802_1X:
|
||||||
|
+ case KEY_MGMT_802_1X_NO_WPA:
|
||||||
|
return IW_AUTH_KEY_MGMT_802_1X;
|
||||||
|
case KEY_MGMT_PSK:
|
||||||
|
return IW_AUTH_KEY_MGMT_PSK;
|
51
wpa_supplicant-flush-debug-output.patch
Normal file
51
wpa_supplicant-flush-debug-output.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/common.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/common.c
|
||||||
|
+++ wpa_supplicant-0.5.8/common.c
|
||||||
|
@@ -157,6 +157,7 @@ void wpa_debug_print_timestamp(void)
|
||||||
|
if (out_file) {
|
||||||
|
fprintf(out_file, "%ld.%06u: ", (long) tv.sec,
|
||||||
|
(unsigned int) tv.usec);
|
||||||
|
+ fflush(out_file);
|
||||||
|
} else
|
||||||
|
#endif /* CONFIG_DEBUG_FILE */
|
||||||
|
printf("%ld.%06u: ", (long) tv.sec, (unsigned int) tv.usec);
|
||||||
|
@@ -185,6 +186,7 @@ void wpa_printf(int level, char *fmt, ..
|
||||||
|
if (out_file) {
|
||||||
|
vfprintf(out_file, fmt, ap);
|
||||||
|
fprintf(out_file, "\n");
|
||||||
|
+ fflush(out_file);
|
||||||
|
} else {
|
||||||
|
#endif /* CONFIG_DEBUG_FILE */
|
||||||
|
vprintf(fmt, ap);
|
||||||
|
@@ -217,6 +219,7 @@ static void _wpa_hexdump(int level, cons
|
||||||
|
fprintf(out_file, " [REMOVED]");
|
||||||
|
}
|
||||||
|
fprintf(out_file, "\n");
|
||||||
|
+ fflush(out_file);
|
||||||
|
} else {
|
||||||
|
#endif /* CONFIG_DEBUG_FILE */
|
||||||
|
printf("%s - hexdump(len=%lu):", title, (unsigned long) len);
|
||||||
|
@@ -262,12 +265,14 @@ static void _wpa_hexdump_ascii(int level
|
||||||
|
fprintf(out_file,
|
||||||
|
"%s - hexdump_ascii(len=%lu): [REMOVED]\n",
|
||||||
|
title, (unsigned long) len);
|
||||||
|
+ fflush(out_file);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (buf == NULL) {
|
||||||
|
fprintf(out_file,
|
||||||
|
"%s - hexdump_ascii(len=%lu): [NULL]\n",
|
||||||
|
title, (unsigned long) len);
|
||||||
|
+ fflush(out_file);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fprintf(out_file, "%s - hexdump_ascii(len=%lu):\n",
|
||||||
|
@@ -292,6 +297,7 @@ static void _wpa_hexdump_ascii(int level
|
||||||
|
pos += llen;
|
||||||
|
len -= llen;
|
||||||
|
}
|
||||||
|
+ fflush(out_file);
|
||||||
|
} else {
|
||||||
|
#endif /* CONFIG_DEBUG_FILE */
|
||||||
|
if (!show) {
|
38
wpa_supplicant-sigusr1-changes-debuglevel.patch
Normal file
38
wpa_supplicant-sigusr1-changes-debuglevel.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/wpa_supplicant.c
|
||||||
|
+++ wpa_supplicant-0.5.8/wpa_supplicant.c
|
||||||
|
@@ -931,6 +931,24 @@ static void wpa_supplicant_reconfig(int
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static void wpa_supplicant_handle_sigusr1(int sig, void *eloop_ctx,
|
||||||
|
+ void *signal_ctx)
|
||||||
|
+{
|
||||||
|
+ /* Increase verbosity (by decreasing the debug level) and wrap back
|
||||||
|
+ * to MSG_INFO when needed.
|
||||||
|
+ */
|
||||||
|
+ if (wpa_debug_level)
|
||||||
|
+ wpa_debug_level--;
|
||||||
|
+ else
|
||||||
|
+ wpa_debug_level = MSG_INFO;
|
||||||
|
+
|
||||||
|
+ wpa_printf(MSG_INFO, "Signal %d received - changing debug level to %s", sig,
|
||||||
|
+ (wpa_debug_level == MSG_INFO) ? "INFO" :
|
||||||
|
+ ((wpa_debug_level == MSG_DEBUG) ? "DEBUG" :
|
||||||
|
+ ((wpa_debug_level == MSG_MSGDUMP) ? "MSGDUMP" : "UNKNOWN")));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static void wpa_supplicant_gen_assoc_event(struct wpa_supplicant *wpa_s)
|
||||||
|
{
|
||||||
|
struct wpa_ssid *ssid;
|
||||||
|
@@ -2570,6 +2588,8 @@ int wpa_supplicant_run(struct wpa_global
|
||||||
|
eloop_register_signal_terminate(wpa_supplicant_terminate, NULL);
|
||||||
|
eloop_register_signal_reconfig(wpa_supplicant_reconfig, NULL);
|
||||||
|
|
||||||
|
+ eloop_register_signal(SIGUSR1, wpa_supplicant_handle_sigusr1, NULL);
|
||||||
|
+
|
||||||
|
eloop_run();
|
||||||
|
|
||||||
|
return 0;
|
13
wpa_supplicant-wep-key-fix.patch
Normal file
13
wpa_supplicant-wep-key-fix.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
===================================================================
|
||||||
|
--- wpa_supplicant-0.5.8.orig/driver_wext.c
|
||||||
|
+++ wpa_supplicant-0.5.8/driver_wext.c
|
||||||
|
@@ -1610,7 +1610,7 @@ int wpa_driver_wext_set_key(void *priv,
|
||||||
|
os_memset(&iwr, 0, sizeof(iwr));
|
||||||
|
os_strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
|
||||||
|
iwr.u.encoding.flags = key_idx + 1;
|
||||||
|
- iwr.u.encoding.pointer = (caddr_t) key;
|
||||||
|
+ iwr.u.encoding.pointer = (caddr_t) NULL;
|
||||||
|
iwr.u.encoding.length = 0;
|
||||||
|
if (ioctl(drv->ioctl_sock, SIOCSIWENCODE, &iwr) < 0) {
|
||||||
|
perror("ioctl[SIOCSIWENCODE] (set_tx)");
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 14 13:36:33 CET 2007 - jg@suse.de
|
||||||
|
|
||||||
|
- enable dbus interface
|
||||||
|
- apply fixes from Dan Williams
|
||||||
|
- build Qt4 version of wpa_gui
|
||||||
|
- dropped gcc 4.3 patch for Qt3 wpa_gui
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 12 14:24:33 CET 2007 - ssommer@suse.de
|
Mon Nov 12 14:24:33 CET 2007 - ssommer@suse.de
|
||||||
|
|
||||||
|
3
wpa_supplicant.conf
Normal file
3
wpa_supplicant.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
ctrl_interface=/var/run/wpa_supplicant
|
||||||
|
ctrl_interface_group=wheel
|
||||||
|
|
@ -11,19 +11,32 @@
|
|||||||
# norootforbuild
|
# norootforbuild
|
||||||
|
|
||||||
Name: wpa_supplicant
|
Name: wpa_supplicant
|
||||||
BuildRequires: libdrm-devel libjpeg-devel openssl-devel qt3-devel readline-devel update-desktop-files
|
BuildRequires: dbus-1-devel libqt4 libqt4-devel openssl-devel pkg-config readline-devel
|
||||||
%ifarch %ix86 x86_64
|
%ifarch %ix86 x86_64
|
||||||
BuildRequires: madwifi-devel
|
BuildRequires: madwifi-devel
|
||||||
%endif
|
%endif
|
||||||
Url: http://hostap.epitest.fi/wpa_supplicant/
|
Url: http://hostap.epitest.fi/wpa_supplicant/
|
||||||
Version: 0.5.8
|
Version: 0.5.8
|
||||||
Release: 51
|
Release: 53
|
||||||
License: BSD 3-Clause; GPL v2 or later
|
License: BSD 3-Clause; GPL v2 or later
|
||||||
Group: Productivity/Networking/Other
|
Group: Productivity/Networking/Other
|
||||||
Summary: WPA supplicant implementation
|
Summary: WPA supplicant implementation
|
||||||
Source: http://hostap.epitest.fi/releases/wpa_supplicant-%{version}.tar.bz2
|
Source: http://hostap.epitest.fi/releases/wpa_supplicant-%{version}.tar.bz2
|
||||||
Source1: config
|
Source1: config
|
||||||
Patch0: wpa_supplicant-0.5.8-gcc43.patch
|
Source2: %{name}.conf
|
||||||
|
Source3: fi.epitest.hostap.WPASupplicant.service
|
||||||
|
Patch0: wpa_supplicant-assoc-timeout.patch
|
||||||
|
Patch1: wpa_supplicant-driver-wext-debug.patch
|
||||||
|
Patch2: wpa_supplicant-wep-key-fix.patch
|
||||||
|
Patch3: wpa_supplicant-fix-deprecated-dbus-function.patch
|
||||||
|
Patch4: wpa_supplicant-debug-file.patch
|
||||||
|
Patch5: wpa_supplicant-flush-debug-output.patch
|
||||||
|
Patch6: wpa_supplicant-sigusr1-changes-debuglevel.patch
|
||||||
|
Patch7: wpa_supplicant-always-scan.patch
|
||||||
|
Patch8: wpa_supplicant-dbus-iface-segfault-fix.patch
|
||||||
|
Patch9: wpa_supplicant-dbus-blobs.patch
|
||||||
|
Patch10: wpa_supplicant-dbus-permissions-fix.patch
|
||||||
|
Patch11: wpa_supplicant-fix-dynamic-wep-with-mac80211.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -57,6 +70,17 @@ Authors:
|
|||||||
%setup -n wpa_supplicant-%{version}
|
%setup -n wpa_supplicant-%{version}
|
||||||
cp %{SOURCE1} .config
|
cp %{SOURCE1} .config
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
%patch9 -p1
|
||||||
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ifarch %ix86 x86_64
|
%ifarch %ix86 x86_64
|
||||||
@ -64,16 +88,26 @@ echo CONFIG_DRIVER_MADWIFI=y >>.config
|
|||||||
echo "CFLAGS += -I/usr/include/madwifi" >> .config
|
echo "CFLAGS += -I/usr/include/madwifi" >> .config
|
||||||
%endif
|
%endif
|
||||||
CFLAGS="$RPM_OPT_FLAGS" make %{?jobs:-j%jobs}
|
CFLAGS="$RPM_OPT_FLAGS" make %{?jobs:-j%jobs}
|
||||||
cd wpa_gui
|
cd wpa_gui-qt4
|
||||||
/usr/lib/qt3/bin/qmake
|
qmake QMAKE_CXXFLAGS="$RPM_OPT_FLAGS"
|
||||||
make %{?jobs:-j%jobs}
|
make %{?jobs:-j%jobs}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{_sbindir}
|
install -d %{buildroot}/%{_sbindir}
|
||||||
install -m 755 wpa_cli %{buildroot}%{_sbindir}
|
install -m 0755 wpa_cli %{buildroot}%{_sbindir}
|
||||||
install -m 755 wpa_passphrase %{buildroot}%{_sbindir}
|
install -m 0755 wpa_passphrase %{buildroot}%{_sbindir}
|
||||||
install -m 755 wpa_supplicant %{buildroot}%{_sbindir}
|
install -m 0755 wpa_supplicant %{buildroot}%{_sbindir}
|
||||||
install -m 755 wpa_gui/wpa_gui %{buildroot}%{_sbindir}
|
install -d %{buildroot}%{_sysconfdir}/dbus-1/system.d
|
||||||
|
install -m 0644 dbus-wpa_supplicant.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/wpa_supplicant.conf
|
||||||
|
install -d %{buildroot}/%{_sysconfdir}/%{name}
|
||||||
|
install -m 0600 %{SOURCE2} %{buildroot}/%{_sysconfdir}/%{name}
|
||||||
|
install -d %{buildroot}/%{_datadir}/dbus-1/system-services
|
||||||
|
install -m 0644 %{SOURCE3} %{buildroot}/%{_datadir}/dbus-1/system-services
|
||||||
|
install -d %{buildroot}/%{_localstatedir}/run/%{name}
|
||||||
|
install -d %{buildroot}%{_mandir}/man{5,8}
|
||||||
|
install -m 0644 doc/docbook/*.8 %{buildroot}%{_mandir}/man8
|
||||||
|
install -m 0644 doc/docbook/*.5 %{buildroot}%{_mandir}/man5
|
||||||
|
install -m 755 wpa_gui-qt4/wpa_gui %{buildroot}%{_sbindir}
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -81,11 +115,23 @@ install -m 755 wpa_gui/wpa_gui %{buildroot}%{_sbindir}
|
|||||||
%{_sbindir}/wpa_cli
|
%{_sbindir}/wpa_cli
|
||||||
%{_sbindir}/wpa_passphrase
|
%{_sbindir}/wpa_passphrase
|
||||||
%{_sbindir}/wpa_supplicant
|
%{_sbindir}/wpa_supplicant
|
||||||
|
%config %{_sysconfdir}/dbus-1/system.d/%{name}.conf
|
||||||
|
%{_datadir}/dbus-1/system-services
|
||||||
|
%config %{_sysconfdir}/%{name}/%{name}.conf
|
||||||
|
%dir %{_localstatedir}/run/%{name}
|
||||||
|
%dir %{_sysconfdir}/%{name}
|
||||||
|
%{_mandir}/man8/*
|
||||||
|
%{_mandir}/man5/*
|
||||||
|
|
||||||
%files gui
|
%files gui
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
/usr/sbin/wpa_gui
|
/usr/sbin/wpa_gui
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 14 2007 - jg@suse.de
|
||||||
|
- enable dbus interface
|
||||||
|
- apply fixes from Dan Williams
|
||||||
|
- build Qt4 version of wpa_gui
|
||||||
|
- dropped gcc 4.3 patch for Qt3 wpa_gui
|
||||||
* Mon Nov 12 2007 - ssommer@suse.de
|
* Mon Nov 12 2007 - ssommer@suse.de
|
||||||
- fix build with gcc 4.3
|
- fix build with gcc 4.3
|
||||||
* Tue Jul 24 2007 - jg@suse.de
|
* Tue Jul 24 2007 - jg@suse.de
|
||||||
|
Loading…
Reference in New Issue
Block a user