- Update to latest development release; remove upstreamed patches
This commit is contained in:
parent
8c8f86cedd
commit
a3815518cd
@ -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
|
||||
|
@ -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
|
||||
|
2
sources
2
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
|
||||
|
9
wpa_supplicant-0.5.10-dbus-service-file.patch
Normal file
9
wpa_supplicant-0.5.10-dbus-service-file.patch
Normal file
@ -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
|
@ -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;
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 @@
|
||||
<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"/>
|
@ -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<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;
|
||||
--- 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)
|
@ -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;
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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,
|
@ -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 <stdlib.h>
|
||||
|
||||
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 <unistd.h>
|
||||
#endif
|
||||
|
||||
+#include <stdlib.h>
|
||||
|
||||
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 <stdlib.h>
|
||||
+
|
||||
int UserDataRequest::setParams(WpaGui *_wpagui, const char *reqMsg)
|
||||
{
|
||||
char *tmp, *pos, *pos2;
|
@ -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)
|
||||
|
||||
|
@ -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;
|
@ -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);
|
||||
|
@ -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
|
45
wpa_supplicant-0.6.3-wpa-gui-fixes.patch
Normal file
45
wpa_supplicant-0.6.3-wpa-gui-fixes.patch
Normal file
@ -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 <stdlib.h>
|
||||
|
||||
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 <unistd.h>
|
||||
#endif
|
||||
|
||||
+#include <stdlib.h>
|
||||
|
||||
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 <stdlib.h>
|
||||
+
|
||||
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<WpaMsg> WpaMsgList;
|
||||
|
||||
class WpaMsg {
|
||||
public:
|
||||
+ WpaMsg() {}
|
||||
WpaMsg(const QString &_msg, int _priority = 2)
|
||||
: msg(_msg), priority(_priority)
|
||||
{
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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)");
|
@ -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 <dcbw@redhat.com> - 1:0.6.3-1
|
||||
- Update to latest development release; remove upstreamed patches
|
||||
|
||||
* Fri Feb 22 2008 Dan Williams <dcbw@redhat.com> 1:0.5.7-23
|
||||
- Fix gcc 4.3 rebuild issues
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user