diff --git a/.cvsignore b/.cvsignore index fa08f7c..bae267c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -5,3 +5,4 @@ wpa_supplicant-0.4.8.tar.gz madwifi-headers-r1475.tar.bz2 wpa_supplicant-0.4.9.tar.gz wpa_supplicant-0.5.7.tar.gz +wpa_supplicant-0.6.3.tar.gz diff --git a/fi.epitest.hostap.WPASupplicant.service b/fi.epitest.hostap.WPASupplicant.service deleted file mode 100644 index 0856d64..0000000 --- a/fi.epitest.hostap.WPASupplicant.service +++ /dev/null @@ -1,5 +0,0 @@ -[D-BUS Service] -Name=fi.epitest.hostap.WPASupplicant -Exec=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f -User=root - diff --git a/sources b/sources index e7b590b..55e8083 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ b82289b140cc1c66db11564bde248d8a madwifi-headers-r1475.tar.bz2 -bd2436392ad3c6d2513da701a12f2d27 wpa_supplicant-0.5.7.tar.gz +b51b2975f21006f85f7297f3fb1acde1 wpa_supplicant-0.6.3.tar.gz diff --git a/wpa_supplicant-0.5.10-dbus-service-file.patch b/wpa_supplicant-0.5.10-dbus-service-file.patch new file mode 100644 index 0000000..082a3ec --- /dev/null +++ b/wpa_supplicant-0.5.10-dbus-service-file.patch @@ -0,0 +1,9 @@ +diff -up wpa_supplicant-0.6.3/wpa_supplicant/dbus-wpa_supplicant.service.fedora wpa_supplicant-0.6.3/wpa_supplicant/dbus-wpa_supplicant.service +--- wpa_supplicant-0.6.3/wpa_supplicant/dbus-wpa_supplicant.service.fedora 2008-03-02 20:58:35.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/dbus-wpa_supplicant.service 2008-03-02 20:58:41.000000000 -0500 +@@ -1,4 +1,4 @@ + [D-BUS Service] + Name=fi.epitest.hostap.WPASupplicant +-Exec=/sbin/wpa_supplicant -u ++Exec=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f /var/log/wpa_supplicant.log + User=root diff --git a/wpa_supplicant-0.5.7-always-scan.patch b/wpa_supplicant-0.5.7-always-scan.patch deleted file mode 100644 index 25afd07..0000000 --- a/wpa_supplicant-0.5.7-always-scan.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up wpa_supplicant-0.5.7/wpa_supplicant.c.always-scan wpa_supplicant-0.5.7/wpa_supplicant.c ---- wpa_supplicant-0.5.7/wpa_supplicant.c.always-scan 2007-09-25 15:51:35.000000000 -0400 -+++ wpa_supplicant-0.5.7/wpa_supplicant.c 2007-09-25 16:31:27.000000000 -0400 -@@ -972,7 +972,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; diff --git a/wpa_supplicant-0.5.7-dbus-blobs.patch b/wpa_supplicant-0.5.7-dbus-blobs.patch deleted file mode 100644 index e52bd0c..0000000 --- a/wpa_supplicant-0.5.7-dbus-blobs.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff --git a/wpa_supplicant/ctrl_iface_dbus.c b/wpa_supplicant/ctrl_iface_dbus.c -index 1d66c96..8e236e8 100644 ---- a/wpa_supplicant/ctrl_iface_dbus.c -+++ b/wpa_supplicant/ctrl_iface_dbus.c -@@ -536,6 +536,10 @@ static DBusHandlerResult wpas_iface_message_handler(DBusConnection *connection, - 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 */ -diff --git a/wpa_supplicant/ctrl_iface_dbus_handlers.c b/wpa_supplicant/ctrl_iface_dbus_handlers.c -index 5e952ec..3ece2fe 100644 ---- a/wpa_supplicant/ctrl_iface_dbus_handlers.c -+++ b/wpa_supplicant/ctrl_iface_dbus_handlers.c -@@ -1203,3 +1203,129 @@ DBusMessage * wpas_dbus_iface_get_state(DBusMessage *message, - - 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); -+} -+ -diff --git a/wpa_supplicant/ctrl_iface_dbus_handlers.h b/wpa_supplicant/ctrl_iface_dbus_handlers.h -index 0fd1d31..0ae94c4 100644 ---- a/wpa_supplicant/ctrl_iface_dbus_handlers.h -+++ b/wpa_supplicant/ctrl_iface_dbus_handlers.h -@@ -71,6 +71,12 @@ DBusMessage * wpas_dbus_iface_set_ap_scan(DBusMessage *message, - 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 */ -diff -up wpa_supplicant-0.5.7/config.c.dbus-blobs wpa_supplicant-0.5.7/config.c ---- a/wpa_supplicant-0.5.7/config.c.dbus-blobs 2007-10-24 16:41:37.000000000 -0400 -+++ b/wpa_supplicant-0.5.7/config.c 2007-10-24 16:41:49.000000000 -0400 -@@ -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; - } - } - diff --git a/wpa_supplicant-0.5.7-dbus-iface-segfault-fix.patch b/wpa_supplicant-0.5.7-dbus-iface-segfault-fix.patch deleted file mode 100644 index a2675ed..0000000 --- a/wpa_supplicant-0.5.7-dbus-iface-segfault-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up wpa_supplicant-0.5.7/wpa_supplicant.c.global-iface-segfault-fix wpa_supplicant-0.5.7/wpa_supplicant.c ---- wpa_supplicant-0.5.7/wpa_supplicant.c.global-iface-segfault-fix 2007-10-09 17:34:25.000000000 -0400 -+++ wpa_supplicant-0.5.7/wpa_supplicant.c 2007-10-09 17:35:17.000000000 -0400 -@@ -2352,7 +2352,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); - diff --git a/wpa_supplicant-0.5.7-dbus-permissions-fix.patch b/wpa_supplicant-0.5.7-dbus-permissions-fix.patch deleted file mode 100644 index 2132185..0000000 --- a/wpa_supplicant-0.5.7-dbus-permissions-fix.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up wpa_supplicant-0.5.7/dbus-wpa_supplicant.conf.permfix wpa_supplicant-0.5.7/dbus-wpa_supplicant.conf ---- wpa_supplicant-0.5.7/dbus-wpa_supplicant.conf.permfix 2007-10-20 07:42:01.000000000 -0400 -+++ wpa_supplicant-0.5.7/dbus-wpa_supplicant.conf 2007-10-20 07:42:22.000000000 -0400 -@@ -8,10 +8,6 @@ - - - -- -- -- -- - - - diff --git a/wpa_supplicant-0.5.7-debug-file.patch b/wpa_supplicant-0.5.7-debug-file.patch deleted file mode 100644 index 32a1f30..0000000 --- a/wpa_supplicant-0.5.7-debug-file.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- wpa_supplicant-0.5.7/main.c.debugfile 2007-07-30 21:48:35.000000000 -0400 -+++ wpa_supplicant-0.5.7/main.c 2007-07-30 22:12:06.000000000 -0400 -@@ -45,7 +45,12 @@ static void usage(void) - "[-p] \\\n" - " [-b [-N -i -c [-C] " - "[-D] \\\n" -- " [-p] [-b] ...]\n" -+ " [-p] [-b] ...] " -+#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; ---- wpa_supplicant-0.5.7/common.c.debugfile 2007-07-30 21:39:40.000000000 -0400 -+++ wpa_supplicant-0.5.7/common.c 2007-07-30 22:11:11.000000000 -0400 -@@ -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; ---- wpa_supplicant-0.5.7/Makefile.debugfile 2007-07-30 21:44:14.000000000 -0400 -+++ wpa_supplicant-0.5.7/Makefile 2007-07-30 21:44:46.000000000 -0400 -@@ -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) diff --git a/wpa_supplicant-0.5.7-fix-dynamic-wep-with-mac80211.patch b/wpa_supplicant-0.5.7-fix-dynamic-wep-with-mac80211.patch deleted file mode 100644 index bf36e9f..0000000 --- a/wpa_supplicant-0.5.7-fix-dynamic-wep-with-mac80211.patch +++ /dev/null @@ -1,14 +0,0 @@ -Backport from 0.6.x branch; apparently this hasn't even landed on -the stable 0.5.x branch yet. - -diff -up wpa_supplicant-0.5.7/driver_wext.c.dynamic-wep-mac80211 wpa_supplicant-0.5.7/driver_wext.c ---- wpa_supplicant-0.5.7/driver_wext.c.dynamic-wep-mac80211 2007-10-28 00:57:11.000000000 -0400 -+++ wpa_supplicant-0.5.7/driver_wext.c 2007-10-28 00:57:38.000000000 -0400 -@@ -1724,6 +1724,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; diff --git a/wpa_supplicant-0.5.7-fix-signal-leaks.patch b/wpa_supplicant-0.5.7-fix-signal-leaks.patch deleted file mode 100644 index 107f8af..0000000 --- a/wpa_supplicant-0.5.7-fix-signal-leaks.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -up wpa_supplicant-0.5.7/ctrl_iface_dbus.c.signal-leak-fix wpa_supplicant-0.5.7/ctrl_iface_dbus.c ---- wpa_supplicant-0.5.7/ctrl_iface_dbus.c.signal-leak-fix 2007-12-06 18:10:22.000000000 -0500 -+++ wpa_supplicant-0.5.7/ctrl_iface_dbus.c 2007-12-06 18:11:38.000000000 -0500 -@@ -649,6 +649,7 @@ void wpa_supplicant_dbus_notify_scan_res - return; - } - dbus_connection_send(iface->con, signal, NULL); -+ dbus_message_unref (signal); - } - - -@@ -666,7 +667,7 @@ void wpa_supplicant_dbus_notify_state_ch - wpa_states old_state) - { - struct ctrl_iface_dbus_priv *iface; -- DBusMessage *signal; -+ DBusMessage *signal = NULL; - const char *path; - const char *new_state_str, *old_state_str; - -@@ -711,7 +712,7 @@ void wpa_supplicant_dbus_notify_state_ch - wpa_printf(MSG_ERROR, - "wpa_supplicant_dbus_notify_state_change[dbus]: " - "couldn't convert state strings."); -- return; -+ goto out; - } - - if (!dbus_message_append_args(signal, -@@ -724,8 +725,13 @@ void wpa_supplicant_dbus_notify_state_ch - "wpa_supplicant_dbus_notify_state_change[dbus]: " - "not enough memory to construct state change " - "signal."); -+ goto out; - } -+ - dbus_connection_send(iface->con, signal, NULL); -+ -+out: -+ dbus_message_unref (signal); - } - - diff --git a/wpa_supplicant-0.5.7-flush-debug-output.patch b/wpa_supplicant-0.5.7-flush-debug-output.patch index 486dbfe..a686851 100644 --- a/wpa_supplicant-0.5.7-flush-debug-output.patch +++ b/wpa_supplicant-0.5.7-flush-debug-output.patch @@ -1,5 +1,5 @@ ---- wpa_supplicant-0.5.7/common.c.flush-debug 2007-07-30 23:15:34.000000000 -0400 -+++ wpa_supplicant-0.5.7/common.c 2007-07-30 23:17:06.000000000 -0400 +--- wpa_supplicant-0.6.3/src/utils/wpa_debug.c.flush-debug 2007-07-30 23:15:34.000000000 -0400 ++++ wpa_supplicant-0.6.3/src/utils/wpa_debug.c 2007-07-30 23:17:06.000000000 -0400 @@ -157,6 +157,7 @@ void wpa_debug_print_timestamp(void) if (out_file) { fprintf(out_file, "%ld.%06u: ", (long) tv.sec, diff --git a/wpa_supplicant-0.5.7-ignore-dup-ca-cert-addition.patch b/wpa_supplicant-0.5.7-ignore-dup-ca-cert-addition.patch deleted file mode 100644 index 63ea82f..0000000 --- a/wpa_supplicant-0.5.7-ignore-dup-ca-cert-addition.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff -up wpa_supplicant-0.5.7/tls_openssl.c.ignore-dup-ca-cert-addition wpa_supplicant-0.5.7/tls_openssl.c ---- wpa_supplicant-0.5.7/tls_openssl.c.ignore-dup-ca-cert-addition 2006-11-29 23:50:28.000000000 -0500 -+++ wpa_supplicant-0.5.7/tls_openssl.c 2007-11-13 11:19:30.000000000 -0500 -@@ -1105,11 +1105,21 @@ static int tls_connection_ca_cert(void * - } - - if (!X509_STORE_add_cert(ssl_ctx->cert_store, cert)) { -+ unsigned long err = ERR_peek_error(); -+ - tls_show_errors(MSG_WARNING, __func__, - "Failed to add ca_cert_blob to " - "certificate store"); -- X509_free(cert); -- return -1; -+ -+ if (ERR_GET_LIB(err) == ERR_LIB_X509 && -+ ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: %s - ignoring " -+ "cert already in hash table error", -+ __func__); -+ } else { -+ X509_free(cert); -+ return -1; -+ } - } - X509_free(cert); - wpa_printf(MSG_DEBUG, "OpenSSL: %s - added ca_cert_blob " -@@ -1259,15 +1269,28 @@ static int tls_connection_client_cert(st - if (client_cert == NULL && client_cert_blob == NULL) - return 0; - -- if (client_cert_blob && -- SSL_use_certificate_ASN1(conn->ssl, (u8 *) client_cert_blob, -+ if (client_cert_blob) { -+ if (SSL_use_certificate_ASN1(conn->ssl, (u8 *) client_cert_blob, - client_cert_blob_len) == 1) { -- wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_certificate_ASN1 --> " -- "OK"); -- return 0; -- } else if (client_cert_blob) { -- tls_show_errors(MSG_DEBUG, __func__, -- "SSL_use_certificate_ASN1 failed"); -+ wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_certificate_ASN1" -+ " --> OK"); -+ return 0; -+ } else { -+ unsigned long err = ERR_peek_error(); -+ -+ if (ERR_GET_LIB(err) == ERR_LIB_X509 && -+ ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: %s - ignoring " -+ "cert already in hash table error", -+ __func__); -+ wpa_printf(MSG_DEBUG, "OpenSSL: " -+ "SSL_use_certificate_ASN1 --> OK"); -+ return 0; -+ } -+ -+ tls_show_errors(MSG_DEBUG, __func__, -+ "SSL_use_certificate_ASN1 failed"); -+ } - } - - if (client_cert == NULL) -@@ -1515,40 +1538,73 @@ static int tls_connection_private_key(vo - while (private_key_blob) { - if (SSL_use_PrivateKey_ASN1(EVP_PKEY_RSA, conn->ssl, - (u8 *) private_key_blob, -- private_key_blob_len) == 1) { -- wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_PrivateKey_" -- "ASN1(EVP_PKEY_RSA) --> OK"); -- ok = 1; -- break; -- } else { -+ private_key_blob_len) != 1) { -+ unsigned long err = ERR_peek_error(); -+ - tls_show_errors(MSG_DEBUG, __func__, - "SSL_use_PrivateKey_ASN1(EVP_PKEY_RSA)" - " failed"); -+ if (ERR_GET_LIB(err) == ERR_LIB_X509 && -+ ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: %s - ignoring " -+ "cert already in hash table error", -+ __func__); -+ ok = 1; -+ } -+ } else -+ ok = 1; -+ -+ if (ok == 1) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_PrivateKey_" -+ "ASN1(EVP_PKEY_RSA) --> OK"); -+ break; - } - - if (SSL_use_PrivateKey_ASN1(EVP_PKEY_DSA, conn->ssl, - (u8 *) private_key_blob, -- private_key_blob_len) == 1) { -- wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_PrivateKey_" -- "ASN1(EVP_PKEY_DSA) --> OK"); -- ok = 1; -- break; -- } else { -+ private_key_blob_len) != 1) { -+ unsigned long err = ERR_peek_error(); -+ - tls_show_errors(MSG_DEBUG, __func__, - "SSL_use_PrivateKey_ASN1(EVP_PKEY_DSA)" - " failed"); -+ if (ERR_GET_LIB(err) == ERR_LIB_X509 && -+ ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: %s - ignoring " -+ "cert already in hash table error", -+ __func__); -+ ok = 1; -+ } -+ } else -+ ok = 1; -+ -+ if (ok == 1) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: SSL_use_PrivateKey_" -+ "ASN1(EVP_PKEY_DSA) --> OK"); -+ break; - } - - if (SSL_use_RSAPrivateKey_ASN1(conn->ssl, - (u8 *) private_key_blob, -- private_key_blob_len) == 1) { -+ private_key_blob_len) != 1) { -+ unsigned long err = ERR_peek_error(); -+ -+ tls_show_errors(MSG_DEBUG, __func__, -+ "SSL_use_RSAPrivateKey_ASN1 failed"); -+ if (ERR_GET_LIB(err) == ERR_LIB_X509 && -+ ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE) { -+ wpa_printf(MSG_DEBUG, "OpenSSL: %s - ignoring " -+ "cert already in hash table error", -+ __func__); -+ ok = 1; -+ } -+ } else -+ ok = 1; -+ -+ if (ok == 1) { - wpa_printf(MSG_DEBUG, "OpenSSL: " - "SSL_use_RSAPrivateKey_ASN1 --> OK"); -- ok = 1; - break; -- } else { -- tls_show_errors(MSG_DEBUG, __func__, -- "SSL_use_RSAPrivateKey_ASN1 failed"); - } - - if (tls_read_pkcs12_blob(ssl_ctx, conn->ssl, private_key_blob, diff --git a/wpa_supplicant-0.5.7-include-stdlib.h b/wpa_supplicant-0.5.7-include-stdlib.h deleted file mode 100644 index 02f4509..0000000 --- a/wpa_supplicant-0.5.7-include-stdlib.h +++ /dev/null @@ -1,34 +0,0 @@ -diff -up wpa_supplicant-0.5.7/wpa_gui/networkconfig.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/networkconfig.ui.h ---- wpa_supplicant-0.5.7/wpa_gui/networkconfig.ui.h.atoi 2006-12-09 19:38:48.000000000 -0500 -+++ wpa_supplicant-0.5.7/wpa_gui/networkconfig.ui.h 2008-02-22 11:51:28.000000000 -0500 -@@ -10,6 +10,7 @@ - ** destructor. - *****************************************************************************/ - -+#include - - enum { - AUTH_NONE = 0, -diff -up wpa_supplicant-0.5.7/wpa_gui/wpagui.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/wpagui.ui.h ---- wpa_supplicant-0.5.7/wpa_gui/wpagui.ui.h.atoi 2008-02-22 14:39:19.000000000 -0500 -+++ wpa_supplicant-0.5.7/wpa_gui/wpagui.ui.h 2008-02-22 14:39:31.000000000 -0500 -@@ -16,6 +16,7 @@ - #include - #endif - -+#include - - void WpaGui::init() - { -diff -up wpa_supplicant-0.5.7/wpa_gui/userdatarequest.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/userdatarequest.ui.h ---- wpa_supplicant-0.5.7/wpa_gui/userdatarequest.ui.h.atoi 2008-02-22 14:38:32.000000000 -0500 -+++ wpa_supplicant-0.5.7/wpa_gui/userdatarequest.ui.h 2008-02-22 14:38:56.000000000 -0500 -@@ -10,6 +10,8 @@ - ** destructor. - *****************************************************************************/ - -+#include -+ - int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg) - { - char *tmp, *pos, *pos2; diff --git a/wpa_supplicant-0.5.7-qmake-location.patch b/wpa_supplicant-0.5.7-qmake-location.patch index fd40c58..e8fcf24 100644 --- a/wpa_supplicant-0.5.7-qmake-location.patch +++ b/wpa_supplicant-0.5.7-qmake-location.patch @@ -1,5 +1,5 @@ ---- wpa_supplicant-0.5.7/Makefile.qmake 2007-07-30 22:17:29.000000000 -0400 -+++ wpa_supplicant-0.5.7/Makefile 2007-07-30 22:17:46.000000000 -0400 +--- wpa_supplicant-0.6.3/wpa_supplicant/Makefile.qmake 2007-07-30 22:17:29.000000000 -0400 ++++ wpa_supplicant-0.6.3/wpa_supplicant/Makefile 2007-07-30 22:17:46.000000000 -0400 @@ -818,7 +818,7 @@ windows-bin: $(WINALL) $(STRIP) $(WINALL) diff --git a/wpa_supplicant-0.5.7-sigusr1-changes-debuglevel.patch b/wpa_supplicant-0.5.7-sigusr1-changes-debuglevel.patch deleted file mode 100644 index ceaa691..0000000 --- a/wpa_supplicant-0.5.7-sigusr1-changes-debuglevel.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- wpa_supplicant-0.5.7/wpa_supplicant.c.sigusr1 2007-08-24 11:24:51.000000000 -0400 -+++ wpa_supplicant-0.5.7/wpa_supplicant.c 2007-08-24 11:43:08.000000000 -0400 -@@ -930,6 +930,22 @@ 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) - { -@@ -2561,6 +2577,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; diff --git a/wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch b/wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch index 943f2f1..53d423b 100644 --- a/wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch +++ b/wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch @@ -1,7 +1,7 @@ -Index: wpa_supplicant-0.4.8/driver_wext.c +Index: wpa_supplicant-0.6.3/src/drivers/driver_wext.c =================================================================== ---- wpa_supplicant-0.4.8.orig/driver_wext.c 2006-07-13 11:23:05.000000000 +0200 -+++ wpa_supplicant-0.4.8/driver_wext.c 2006-07-13 11:23:57.000000000 +0200 +--- wpa_supplicant-0.6.3/src/drivers/driver_wext.c.orig 2006-07-13 11:23:05.000000000 +0200 ++++ wpa_supplicant-0.6.3/src/drivers/driver_wext.c 2006-07-13 11:23:57.000000000 +0200 @@ -1280,6 +1280,7 @@ static int wpa_driver_wext_set_key_ext(v memset(&iwr, 0, sizeof(iwr)); strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); diff --git a/wpa_supplicant-0.5.9-adhoc-frequency.patch b/wpa_supplicant-0.5.9-adhoc-frequency.patch deleted file mode 100644 index bf298f9..0000000 --- a/wpa_supplicant-0.5.9-adhoc-frequency.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c -index 6a21bbc..10c454f 100644 ---- a/wpa_supplicant/config.c -+++ b/wpa_supplicant/config.c -@@ -1157,7 +1157,8 @@ static const struct parse_data ssid_fiel - #ifdef CONFIG_IEEE80211W - { INT_RANGE(ieee80211w, 0, 2) }, - #endif /* CONFIG_IEEE80211W */ -- { INT_RANGE(peerkey, 0, 1) } -+ { INT_RANGE(peerkey, 0, 1) }, -+ { INT_RANGE(frequency, 0, 10000) } - }; - - #undef OFFSETdiff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h -index d4c3654..393f750 100644 ---- a/wpa_supplicant/config_ssid.h -+++ b/wpa_supplicant/config_ssid.h -@@ -851,6 +851,18 @@ struct wpa_ssid { - IEEE80211W_REQUIRED = 2 - } ieee80211w; - #endif /* CONFIG_IEEE80211W */ -+ -+ /** -+ * frequency - Channel frequency in megahertz (MHz) for IBSS -+ * -+ * This value is used to configure the initial channel for IBSS (adhoc) -+ * networks, e.g., 2412 = IEEE 802.11b/g channel 1. It is ignored in -+ * the infrastructure mode. In addition, this value is only used by the -+ * station that creates the IBSS. If an IBSS network with the -+ * configured SSID is already present, the frequency of the network -+ * will be used instead of this configured value. -+ */ -+ int frequency; - }; - - int wpa_config_allowed_eap_method(struct wpa_ssid *ssid, int vendor, -diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c -index d5342fe..35ddbcd 100644 ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c -@@ -1468,6 +1468,8 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s, - params.ssid = ssid->ssid; - params.ssid_len = ssid->ssid_len; - } -+ if (ssid->mode == 1 && ssid->frequency > 0 && params.freq == 0) -+ params.freq = ssid->frequency; /* Initial channel for IBSS */ - params.wpa_ie = wpa_ie; - params.wpa_ie_len = wpa_ie_len; - params.pairwise_suite = cipher_pairwise; -diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf -index dce9d87..ec8b0ee 100644 ---- a/wpa_supplicant/wpa_supplicant.conf -+++ b/wpa_supplicant/wpa_supplicant.conf -@@ -192,6 +192,13 @@ fast_reauth=1 - # proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not - # both), and psk must also be set. - # -+# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g., -+# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial -+# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode. -+# In addition, this value is only used by the station that creates the IBSS. If -+# an IBSS network with the configured SSID is already present, the frequency of -+# the network will be used instead of this configured value. -+# - # proto: list of accepted protocols - # WPA = WPA/IEEE 802.11i/D3.0 - # RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) -@@ -657,6 +664,7 @@ network={ - network={ - ssid="test adhoc" - mode=1 -+ frequency=2412 - proto=WPA - key_mgmt=WPA-NONE - pairwise=NONE diff --git a/wpa_supplicant-0.6.3-wpa-gui-fixes.patch b/wpa_supplicant-0.6.3-wpa-gui-fixes.patch new file mode 100644 index 0000000..ddd4d07 --- /dev/null +++ b/wpa_supplicant-0.6.3-wpa-gui-fixes.patch @@ -0,0 +1,45 @@ +diff -up wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/networkconfig.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/networkconfig.ui.h +--- wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/networkconfig.ui.h.atoi 2006-12-09 19:38:48.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/networkconfig.ui.h 2008-02-22 11:51:28.000000000 -0500 +@@ -10,6 +10,7 @@ + ** destructor. + *****************************************************************************/ + ++#include + + enum { + AUTH_NONE = 0, +diff -up wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpagui.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/wpagui.ui.h +--- wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpagui.ui.h.atoi 2008-02-22 14:39:19.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpagui.ui.h 2008-02-22 14:39:31.000000000 -0500 +@@ -16,6 +16,7 @@ + #include + #endif + ++#include + + void WpaGui::init() + { +diff -up wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/userdatarequest.ui.h.atoi wpa_supplicant-0.5.7/wpa_gui/userdatarequest.ui.h +--- wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/userdatarequest.ui.h.atoi 2008-02-22 14:38:32.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/userdatarequest.ui.h 2008-02-22 14:38:56.000000000 -0500 +@@ -10,6 +10,8 @@ + ** destructor. + *****************************************************************************/ + ++#include ++ + int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg) + { + char *tmp, *pos, *pos2; +diff -up wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpamsg.h.fix wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpamsg.h +--- wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpamsg.h.fix 2008-03-03 11:58:18.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_gui/wpamsg.h 2008-03-03 11:58:33.000000000 -0500 +@@ -14,6 +14,7 @@ typedef QValueList WpaMsgList; + + class WpaMsg { + public: ++ WpaMsg() {} + WpaMsg(const QString &_msg, int _priority = 2) + : msg(_msg), priority(_priority) + { diff --git a/wpa_supplicant-assoc-timeout.patch b/wpa_supplicant-assoc-timeout.patch index bcf9f09..9fb21f4 100644 --- a/wpa_supplicant-assoc-timeout.patch +++ b/wpa_supplicant-assoc-timeout.patch @@ -1,5 +1,5 @@ ---- wpa_supplicant-0.4.8/wpa_supplicant.c.timeout 2006-03-03 22:26:13.000000000 -0500 -+++ wpa_supplicant-0.4.8/wpa_supplicant.c 2006-03-03 22:26:45.000000000 -0500 +--- wpa_supplicant-0.6.3/wpa_supplicant/wpa_supplicant.c.timeout 2006-03-03 22:26:13.000000000 -0500 ++++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_supplicant.c 2006-03-03 22:26:45.000000000 -0500 @@ -1252,9 +1252,9 @@ /* Timeout for IEEE 802.11 authentication and association */ int timeout; diff --git a/wpa_supplicant-driver-wext-debug.patch b/wpa_supplicant-driver-wext-debug.patch deleted file mode 100644 index 8962ebf..0000000 --- a/wpa_supplicant-driver-wext-debug.patch +++ /dev/null @@ -1,113 +0,0 @@ ---- wpa_supplicant-0.4.9/driver_wext.c.driver-wext-debug 2006-04-29 20:21:38.000000000 -0400 -+++ wpa_supplicant-0.4.9/driver_wext.c 2006-10-02 13:43:18.000000000 -0400 -@@ -1633,20 +1633,32 @@ - */ - 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) -@@ -1655,26 +1667,41 @@ - 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 -@@ -1688,14 +1715,26 @@ - 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; - } -@@ -1720,6 +1759,8 @@ - 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; - } - diff --git a/wpa_supplicant-fix-deprecated-dbus-function.patch b/wpa_supplicant-fix-deprecated-dbus-function.patch deleted file mode 100644 index dbd5e4e..0000000 --- a/wpa_supplicant-fix-deprecated-dbus-function.patch +++ /dev/null @@ -1,187 +0,0 @@ ---- dbus_dict_helpers.c.array-fix 2006-12-18 12:31:11.000000000 -0500 -+++ dbus_dict_helpers.c 2006-12-20 03:17:08.000000000 -0500 -@@ -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; -@@ -943,9 +955,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; - } diff --git a/wpa_supplicant-wep-key-fix.patch b/wpa_supplicant-wep-key-fix.patch deleted file mode 100644 index 7d64814..0000000 --- a/wpa_supplicant-wep-key-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: wpa_supplicant-0.4.8/driver_wext.c -=================================================================== ---- wpa_supplicant-0.4.8.orig/driver_wext.c -+++ wpa_supplicant-0.4.8/driver_wext.c -@@ -1415,7 +1415,7 @@ int wpa_driver_wext_set_key(void *priv, - memset(&iwr, 0, sizeof(iwr)); - 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)"); diff --git a/wpa_supplicant.spec b/wpa_supplicant.spec index fee20b8..9a8c8e4 100644 --- a/wpa_supplicant.spec +++ b/wpa_supplicant.spec @@ -1,8 +1,8 @@ Summary: WPA/WPA2/IEEE 802.1X Supplicant Name: wpa_supplicant Epoch: 1 -Version: 0.5.7 -Release: 23%{?dist} +Version: 0.6.3 +Release: 1%{?dist} License: BSD Group: System Environment/Base Source0: http://hostap.epitest.fi/releases/%{name}-%{version}.tar.gz @@ -11,34 +11,15 @@ Source2: %{name}.conf Source3: %{name}.init.d Source4: %{name}.sysconfig Source5: madwifi-headers-r1475.tar.bz2 -Source6: fi.epitest.hostap.WPASupplicant.service -Source7: %{name}.logrotate +Source6: %{name}.logrotate + Patch0: wpa_supplicant-assoc-timeout.patch -Patch1: wpa_supplicant-driver-wext-debug.patch -Patch2: wpa_supplicant-wep-key-fix.patch -# http://hostap.epitest.fi/bugz/show_bug.cgi?id=192 -# Upstream -Patch3: wpa_supplicant-fix-deprecated-dbus-function.patch -# Upstream -Patch4: wpa_supplicant-0.5.7-debug-file.patch -Patch5: wpa_supplicant-0.5.7-qmake-location.patch -# Upstream -Patch6: wpa_supplicant-0.5.7-flush-debug-output.patch -# Rejected by upstream -Patch7: wpa_supplicant-0.5.7-sigusr1-changes-debuglevel.patch -Patch8: wpa_supplicant-0.5.7-always-scan.patch -# Upstream -Patch9: wpa_supplicant-0.5.7-dbus-iface-segfault-fix.patch -Patch10: wpa_supplicant-0.5.7-dbus-blobs.patch -Patch11: wpa_supplicant-0.5.7-dbus-permissions-fix.patch -Patch12: wpa_supplicant-0.5.7-ignore-dup-ca-cert-addition.patch -# Upstream -Patch13: wpa_supplicant-0.5.7-fix-dynamic-wep-with-mac80211.patch -Patch14: wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch -# Upstream -Patch15: wpa_supplicant-0.5.7-fix-signal-leaks.patch -Patch16: wpa_supplicant-0.5.9-adhoc-frequency.patch -Patch17: wpa_supplicant-0.5.7-include-stdlib.h +Patch1: wpa_supplicant-0.6.3-wpa-gui-fixes.patch +Patch2: wpa_supplicant-0.5.7-qmake-location.patch +Patch3: wpa_supplicant-0.5.7-flush-debug-output.patch +Patch4: wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch +Patch5: wpa_supplicant-0.5.10-dbus-service-file.patch + URL: http://w1.fi/wpa_supplicant/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -66,31 +47,24 @@ Graphical User Interface for wpa_supplicant written using QT3 %prep %setup -q %patch0 -p1 -b .assoc-timeout -%patch1 -p1 -b .driver-wext-debug -%patch2 -p1 -b .wep-key-fix -%patch3 -p0 -b .fix-deprecated-dbus-functions -%patch4 -p1 -b .debug-file -%patch5 -p1 -b .qmake-location -%patch6 -p1 -b .flush-debug-output -%patch7 -p1 -b .sigusr1-changes-debuglevel -%patch8 -p1 -b .always-scan -%patch9 -p1 -b .dbus-iface-segfault-fix -%patch10 -p2 -b .dbus-blobs -%patch11 -p1 -b .dbus-permissions-fix -%patch12 -p1 -b .ignore-dup-ca-cert-addition -%patch13 -p1 -b .fix-dynamic-wep-with-mac80211 -%patch14 -p1 -b .use-IW_ENCODE_TEMP -%patch15 -p1 -b .signal-leak-fixes -%patch16 -p2 -b .adhoc-freq -%patch17 -p1 -b .stdlib +%patch1 -p1 -b .wpa-gui-fixes +%patch2 -p1 -b .qmake-location +%patch3 -p1 -b .flush-debug-output +%patch4 -p1 -b .use-IW_ENCODE_TEMP +%patch5 -p1 -b .dbus-service-file %build -cp %{SOURCE1} ./.config -tar -xjf %{SOURCE5} -CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; -CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; -make %{_smp_mflags} -QTDIR=%{_libdir}/qt-3.3 make wpa_gui %{_smp_mflags} +pushd src + tar -xjf %{SOURCE5} +popd + +pushd wpa_supplicant + cp %{SOURCE1} ./.config + CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; + CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; + make %{_smp_mflags} + QTDIR=%{_libdir}/qt-3.3 make wpa_gui %{_smp_mflags} +popd %install rm -rf %{buildroot} @@ -101,7 +75,7 @@ install -d %{buildroot}/%{_sysconfdir}/sysconfig install -m 0755 %{SOURCE3} %{buildroot}/%{_sysconfdir}/rc.d/init.d/%{name} install -m 0644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/sysconfig/%{name} install -d %{buildroot}/%{_sysconfdir}/logrotate.d -install -m 0644 %{SOURCE7} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name} +install -m 0644 %{SOURCE6} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name} # config install -d %{buildroot}/%{_sysconfdir}/%{name} @@ -109,29 +83,29 @@ install -m 0600 %{SOURCE2} %{buildroot}/%{_sysconfdir}/%{name} # binary install -d %{buildroot}/%{_sbindir} -install -m 0755 wpa_passphrase %{buildroot}/%{_sbindir} -install -m 0755 wpa_cli %{buildroot}/%{_sbindir} -install -m 0755 wpa_supplicant %{buildroot}/%{_sbindir} +install -m 0755 %{name}/wpa_passphrase %{buildroot}/%{_sbindir} +install -m 0755 %{name}/wpa_cli %{buildroot}/%{_sbindir} +install -m 0755 %{name}/wpa_supplicant %{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 -m 0644 %{name}/dbus-wpa_supplicant.conf %{buildroot}/%{_sysconfdir}/dbus-1/system.d/wpa_supplicant.conf install -d %{buildroot}/%{_datadir}/dbus-1/system-services/ -install -m 0644 %{SOURCE6} %{buildroot}/%{_datadir}/dbus-1/system-services +install -m 0644 %{name}/dbus-wpa_supplicant.service %{buildroot}/%{_datadir}/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service # gui install -d %{buildroot}/%{_bindir} -install -m 0755 wpa_gui/wpa_gui %{buildroot}/%{_bindir} +install -m 0755 %{name}/wpa_gui/wpa_gui %{buildroot}/%{_bindir} # running mkdir -p %{buildroot}/%{_localstatedir}/run/%{name} # man pages 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 0644 %{name}/doc/docbook/*.8 %{buildroot}%{_mandir}/man8 +install -m 0644 %{name}/doc/docbook/*.5 %{buildroot}%{_mandir}/man5 # some cleanup in docs -rm -f doc/.cvsignore -rm -rf doc/docbook +rm -f %{name}/doc/.cvsignore +rm -rf %{name}/doc/docbook %clean @@ -151,7 +125,7 @@ fi %files %defattr(-, root, root) -%doc COPYING ChangeLog README eap_testing.txt todo.txt wpa_supplicant.conf examples +%doc COPYING %{name}/ChangeLog README %{name}/eap_testing.txt %{name}/todo.txt %{name}/wpa_supplicant.conf %{name}/examples %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} @@ -171,6 +145,9 @@ fi %{_bindir}/wpa_gui %changelog +* Mon Mar 3 2008 Dan Williams - 1:0.6.3-1 +- Update to latest development release; remove upstreamed patches + * Fri Feb 22 2008 Dan Williams 1:0.5.7-23 - Fix gcc 4.3 rebuild issues