[pkg-wpa-devel] r1232 - in /wpasupplicant/trunk: debian/ src/common/ src/drivers/ src/eap_peer/ src/eap_server/ src/rsn_supp/ wpa_supplicant/
kelmo-guest at users.alioth.debian.org
kelmo-guest at users.alioth.debian.org
Tue Aug 12 15:05:18 UTC 2008
Author: kelmo-guest
Date: Tue Aug 12 15:05:18 2008
New Revision: 1232
URL: http://svn.debian.org/wsvn/pkg-wpa/?sc=1&rev=1232
Log:
New upstream release
Modified:
wpasupplicant/trunk/debian/changelog
wpasupplicant/trunk/src/common/version.h
wpasupplicant/trunk/src/drivers/driver_ndis.c
wpasupplicant/trunk/src/drivers/driver_wext.c
wpasupplicant/trunk/src/drivers/driver_wext.h
wpasupplicant/trunk/src/eap_peer/eap_ikev2.c
wpasupplicant/trunk/src/eap_peer/eap_tnc.c
wpasupplicant/trunk/src/eap_server/eap_tnc.c
wpasupplicant/trunk/src/rsn_supp/wpa.c
wpasupplicant/trunk/wpa_supplicant/ChangeLog
wpasupplicant/trunk/wpa_supplicant/Makefile
Modified: wpasupplicant/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/debian/changelog?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/debian/changelog (original)
+++ wpasupplicant/trunk/debian/changelog Tue Aug 12 15:05:18 2008
@@ -1,5 +1,6 @@
-wpasupplicant (0.6.4~git20080716.93ef879-2) unstable; urgency=low
-
+wpasupplicant (0.6.4-1) unstable; urgency=low
+
+ * New upstream release
* Retroactively cleanse past changelog entries of information indicating
that they were not released, as they were.
* Use short option for grep (-q) and sed (-n) instead of the busybox
@@ -9,7 +10,7 @@
the ifup take a long time (eg. dhcp request takes a long time and
eventually fails).
- -- Kel Modderman <kel at otaku42.de> Mon, 28 Jul 2008 17:53:15 +1000
+ -- Kel Modderman <kel at otaku42.de> Wed, 13 Aug 2008 00:57:11 +1000
wpasupplicant (0.6.4~git20080716.93ef879-1) unstable; urgency=low
Modified: wpasupplicant/trunk/src/common/version.h
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/common/version.h?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/common/version.h (original)
+++ wpasupplicant/trunk/src/common/version.h Tue Aug 12 15:05:18 2008
@@ -1,6 +1,6 @@
#ifndef VERSION_H
#define VERSION_H
-#define VERSION_STR "0.6.3"
+#define VERSION_STR "0.6.4"
#endif /* VERSION_H */
Modified: wpasupplicant/trunk/src/drivers/driver_ndis.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/drivers/driver_ndis.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/drivers/driver_ndis.c (original)
+++ wpasupplicant/trunk/src/drivers/driver_ndis.c Tue Aug 12 15:05:18 2008
@@ -40,7 +40,9 @@
#include "driver_ndis.h"
int wpa_driver_register_event_cb(struct wpa_driver_ndis_data *drv);
+#ifdef CONFIG_NDIS_EVENTS_INTEGRATED
void wpa_driver_ndis_event_pipe_cb(void *eloop_data, void *user_data);
+#endif /* CONFIG_NDIS_EVENTS_INTEGRATED */
static void wpa_driver_ndis_deinit(void *priv);
static void wpa_driver_ndis_poll(void *drv);
Modified: wpasupplicant/trunk/src/drivers/driver_wext.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/drivers/driver_wext.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/drivers/driver_wext.c (original)
+++ wpasupplicant/trunk/src/drivers/driver_wext.c Tue Aug 12 15:05:18 2008
@@ -154,6 +154,8 @@
static int wpa_driver_wext_flush_pmkid(void *priv);
static int wpa_driver_wext_get_range(void *priv);
+static void wpa_driver_wext_finish_drv_init(struct wpa_driver_wext_data *drv);
+
static int wpa_driver_wext_send_oper_ifla(struct wpa_driver_wext_data *drv,
int linkmode, int operstate)
@@ -689,7 +691,8 @@
}
-static void wpa_driver_wext_event_link(void *ctx, char *buf, size_t len,
+static void wpa_driver_wext_event_link(struct wpa_driver_wext_data *drv,
+ void *ctx, char *buf, size_t len,
int del)
{
union wpa_event_data event;
@@ -706,7 +709,65 @@
event.interface_status.ifname,
del ? "removed" : "added");
+ if (os_strcmp(drv->ifname, event.interface_status.ifname) == 0) {
+ if (del)
+ drv->if_removed = 1;
+ else
+ drv->if_removed = 0;
+ }
+
wpa_supplicant_event(ctx, EVENT_INTERFACE_STATUS, &event);
+}
+
+
+static int wpa_driver_wext_own_ifname(struct wpa_driver_wext_data *drv,
+ struct nlmsghdr *h)
+{
+ struct ifinfomsg *ifi;
+ int attrlen, nlmsg_len, rta_len;
+ struct rtattr *attr;
+
+ ifi = NLMSG_DATA(h);
+
+ nlmsg_len = NLMSG_ALIGN(sizeof(struct ifinfomsg));
+
+ attrlen = h->nlmsg_len - nlmsg_len;
+ if (attrlen < 0)
+ return 0;
+
+ attr = (struct rtattr *) (((char *) ifi) + nlmsg_len);
+
+ rta_len = RTA_ALIGN(sizeof(struct rtattr));
+ while (RTA_OK(attr, attrlen)) {
+ if (attr->rta_type == IFLA_IFNAME) {
+ if (os_strcmp(((char *) attr) + rta_len, drv->ifname)
+ == 0)
+ return 1;
+ else
+ break;
+ }
+ attr = RTA_NEXT(attr, attrlen);
+ }
+
+ return 0;
+}
+
+
+static int wpa_driver_wext_own_ifindex(struct wpa_driver_wext_data *drv,
+ int ifindex, struct nlmsghdr *h)
+{
+ if (drv->ifindex == ifindex || drv->ifindex2 == ifindex)
+ return 1;
+
+ if (drv->if_removed && wpa_driver_wext_own_ifname(drv, h)) {
+ drv->ifindex = if_nametoindex(drv->ifname);
+ wpa_printf(MSG_DEBUG, "WEXT: Update ifindex for a removed "
+ "interface");
+ wpa_driver_wext_finish_drv_init(drv);
+ return 1;
+ }
+
+ return 0;
}
@@ -723,8 +784,7 @@
ifi = NLMSG_DATA(h);
- if (drv->ifindex != ifi->ifi_index && drv->ifindex2 != ifi->ifi_index)
- {
+ if (!wpa_driver_wext_own_ifindex(drv, ifi->ifi_index, h)) {
wpa_printf(MSG_DEBUG, "Ignore event for foreign ifindex %d",
ifi->ifi_index);
return;
@@ -763,7 +823,7 @@
drv, ctx, ((char *) attr) + rta_len,
attr->rta_len - rta_len);
} else if (attr->rta_type == IFLA_IFNAME) {
- wpa_driver_wext_event_link(ctx,
+ wpa_driver_wext_event_link(drv, ctx,
((char *) attr) + rta_len,
attr->rta_len - rta_len, 0);
}
@@ -796,7 +856,7 @@
rta_len = RTA_ALIGN(sizeof(struct rtattr));
while (RTA_OK(attr, attrlen)) {
if (attr->rta_type == IFLA_IFNAME) {
- wpa_driver_wext_event_link(ctx,
+ wpa_driver_wext_event_link(drv, ctx,
((char *) attr) + rta_len,
attr->rta_len - rta_len, 1);
}
@@ -977,7 +1037,7 @@
*/
void * wpa_driver_wext_init(void *ctx, const char *ifname)
{
- int s, flags;
+ int s;
struct sockaddr_nl local;
struct wpa_driver_wext_data *drv;
@@ -1017,6 +1077,16 @@
drv->event_sock = s;
drv->mlme_sock = -1;
+
+ wpa_driver_wext_finish_drv_init(drv);
+
+ return drv;
+}
+
+
+static void wpa_driver_wext_finish_drv_init(struct wpa_driver_wext_data *drv)
+{
+ int flags;
if (wpa_driver_wext_get_ifflags(drv, &flags) != 0)
printf("Could not get interface '%s' flags\n", drv->ifname);
@@ -1051,7 +1121,7 @@
drv->ifindex = if_nametoindex(drv->ifname);
- if (os_strncmp(ifname, "wlan", 4) == 0) {
+ if (os_strncmp(drv->ifname, "wlan", 4) == 0) {
/*
* Host AP driver may use both wlan# and wifi# interface in
* wireless events. Since some of the versions included WE-18
@@ -1061,14 +1131,12 @@
* driver are not in use anymore.
*/
char ifname2[IFNAMSIZ + 1];
- os_strlcpy(ifname2, ifname, sizeof(ifname2));
+ os_strlcpy(ifname2, drv->ifname, sizeof(ifname2));
os_memcpy(ifname2, "wifi", 4);
wpa_driver_wext_alternative_ifindex(drv, ifname2);
}
wpa_driver_wext_send_oper_ifla(drv, 1, IF_OPER_DORMANT);
-
- return drv;
}
Modified: wpasupplicant/trunk/src/drivers/driver_wext.h
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/drivers/driver_wext.h?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/drivers/driver_wext.h (original)
+++ wpasupplicant/trunk/src/drivers/driver_wext.h Tue Aug 12 15:05:18 2008
@@ -25,6 +25,7 @@
char ifname[IFNAMSIZ + 1];
int ifindex;
int ifindex2;
+ int if_removed;
u8 *assoc_req_ies;
size_t assoc_req_ies_len;
u8 *assoc_resp_ies;
Modified: wpasupplicant/trunk/src/eap_peer/eap_ikev2.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/eap_peer/eap_ikev2.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/eap_peer/eap_ikev2.c (original)
+++ wpasupplicant/trunk/src/eap_peer/eap_ikev2.c Tue Aug 12 15:05:18 2008
@@ -22,7 +22,7 @@
struct eap_ikev2_data {
struct ikev2_responder_data ikev2;
- enum { WAIT_START, MSG, WAIT_FRAG_ACK, DONE, FAIL } state;
+ enum { WAIT_START, PROC_MSG, WAIT_FRAG_ACK, DONE, FAIL } state;
struct wpabuf *in_buf;
struct wpabuf *out_buf;
size_t out_used;
@@ -38,8 +38,8 @@
switch (state) {
case WAIT_START:
return "WAIT_START";
- case MSG:
- return "MSG";
+ case PROC_MSG:
+ return "PROC_MSG";
case WAIT_FRAG_ACK:
return "WAIT_FRAG_ACK";
case DONE:
@@ -391,7 +391,7 @@
return NULL;
}
wpa_printf(MSG_DEBUG, "EAP-IKEV2: Fragment acknowledged");
- eap_ikev2_state(data, MSG);
+ eap_ikev2_state(data, PROC_MSG);
return eap_ikev2_build_msg(data, ret, id);
}
@@ -433,7 +433,7 @@
data->out_used = 0;
}
- eap_ikev2_state(data, MSG);
+ eap_ikev2_state(data, PROC_MSG);
return eap_ikev2_build_msg(data, ret, id);
}
Modified: wpasupplicant/trunk/src/eap_peer/eap_tnc.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/eap_peer/eap_tnc.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/eap_peer/eap_tnc.c (original)
+++ wpasupplicant/trunk/src/eap_peer/eap_tnc.c Tue Aug 12 15:05:18 2008
@@ -21,7 +21,7 @@
struct eap_tnc_data {
- enum { WAIT_START, MSG, WAIT_FRAG_ACK, DONE, FAIL } state;
+ enum { WAIT_START, PROC_MSG, WAIT_FRAG_ACK, DONE, FAIL } state;
struct tncc_data *tncc;
struct wpabuf *in_buf;
struct wpabuf *out_buf;
@@ -206,7 +206,7 @@
struct eap_tnc_data *data = priv;
struct wpabuf *resp;
const u8 *pos, *end;
- u8 *rpos, *rpos1, *start;
+ u8 *rpos, *rpos1;
size_t len, rlen;
size_t imc_len;
char *start_buf, *end_buf;
@@ -269,7 +269,7 @@
return NULL;
}
wpa_printf(MSG_DEBUG, "EAP-TNC: Fragment acknowledged");
- data->state = MSG;
+ data->state = PROC_MSG;
return eap_tnc_build_msg(data, ret, id);
}
@@ -300,7 +300,7 @@
tncc_init_connection(data->tncc);
- data->state = MSG;
+ data->state = PROC_MSG;
} else {
enum tncc_process_res res;
@@ -351,7 +351,7 @@
ret->allowNotifications = TRUE;
if (data->out_buf) {
- data->state = MSG;
+ data->state = PROC_MSG;
return eap_tnc_build_msg(data, ret, id);
}
@@ -380,17 +380,14 @@
}
end_len = os_strlen(end_buf);
- rlen = 1 + start_len + imc_len + end_len;
- resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, rlen,
- EAP_CODE_RESPONSE, eap_get_id(reqData));
+ rlen = start_len + imc_len + end_len;
+ resp = wpabuf_alloc(rlen);
if (resp == NULL) {
os_free(start_buf);
os_free(end_buf);
return NULL;
}
- start = wpabuf_put(resp, 0);
- wpabuf_put_u8(resp, EAP_TNC_VERSION);
wpabuf_put_data(resp, start_buf, start_len);
os_free(start_buf);
@@ -401,10 +398,11 @@
wpabuf_put_data(resp, end_buf, end_len);
os_free(end_buf);
- wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Response", start, rlen);
+ wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Response",
+ wpabuf_head(resp), wpabuf_len(resp));
data->out_buf = resp;
- data->state = MSG;
+ data->state = PROC_MSG;
return eap_tnc_build_msg(data, ret, id);
}
Modified: wpasupplicant/trunk/src/eap_server/eap_tnc.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/eap_server/eap_tnc.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/eap_server/eap_tnc.c (original)
+++ wpasupplicant/trunk/src/eap_server/eap_tnc.c Tue Aug 12 15:05:18 2008
@@ -94,10 +94,10 @@
static struct wpabuf * eap_tnc_build(struct eap_sm *sm,
- struct eap_tnc_data *data, u8 id)
+ struct eap_tnc_data *data)
{
struct wpabuf *req;
- u8 *rpos, *rpos1, *start;
+ u8 *rpos, *rpos1;
size_t rlen;
char *start_buf, *end_buf;
size_t start_len, end_len;
@@ -116,17 +116,14 @@
}
end_len = os_strlen(end_buf);
- rlen = 1 + start_len + imv_len + end_len;
- req = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, rlen,
- EAP_CODE_REQUEST, id);
+ rlen = start_len + imv_len + end_len;
+ req = wpabuf_alloc(rlen);
if (req == NULL) {
os_free(start_buf);
os_free(end_buf);
return NULL;
}
- start = wpabuf_put(req, 0);
- wpabuf_put_u8(req, EAP_TNC_VERSION);
wpabuf_put_data(req, start_buf, start_len);
os_free(start_buf);
@@ -137,15 +134,15 @@
wpabuf_put_data(req, end_buf, end_len);
os_free(end_buf);
- wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Request", start, rlen);
+ wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Request",
+ wpabuf_head(req), wpabuf_len(req));
return req;
}
static struct wpabuf * eap_tnc_build_recommendation(struct eap_sm *sm,
- struct eap_tnc_data *data,
- u8 id)
+ struct eap_tnc_data *data)
{
switch (data->recommendation) {
case ALLOW:
@@ -166,7 +163,7 @@
return NULL;
}
- return eap_tnc_build(sm, data, id);
+ return eap_tnc_build(sm, data);
}
@@ -251,7 +248,7 @@
return eap_tnc_build_start(sm, data, id);
case CONTINUE:
if (data->out_buf == NULL) {
- data->out_buf = eap_tnc_build(sm, data, id);
+ data->out_buf = eap_tnc_build(sm, data);
if (data->out_buf == NULL) {
wpa_printf(MSG_DEBUG, "EAP-TNC: Failed to "
"generate message");
@@ -262,8 +259,7 @@
return eap_tnc_build_msg(data, id);
case RECOMMENDATION:
if (data->out_buf == NULL) {
- data->out_buf = eap_tnc_build_recommendation(sm, data,
- id);
+ data->out_buf = eap_tnc_build_recommendation(sm, data);
if (data->out_buf == NULL) {
wpa_printf(MSG_DEBUG, "EAP-TNC: Failed to "
"generate recommendation message");
Modified: wpasupplicant/trunk/src/rsn_supp/wpa.c
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/src/rsn_supp/wpa.c?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/src/rsn_supp/wpa.c (original)
+++ wpasupplicant/trunk/src/rsn_supp/wpa.c Tue Aug 12 15:05:18 2008
@@ -2014,7 +2014,8 @@
sm->eap_conf_ctx = NULL;
sm->ssid_len = 0;
}
- pmksa_cache_notify_reconfig(sm->pmksa);
+ if (config == NULL || config->network_ctx != sm->network_ctx)
+ pmksa_cache_notify_reconfig(sm->pmksa);
}
Modified: wpasupplicant/trunk/wpa_supplicant/ChangeLog
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/wpa_supplicant/ChangeLog?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/wpa_supplicant/ChangeLog (original)
+++ wpasupplicant/trunk/wpa_supplicant/ChangeLog Tue Aug 12 15:05:18 2008
@@ -1,6 +1,6 @@
ChangeLog for wpa_supplicant
-????-??-?? - v0.6.4
+2008-08-10 - v0.6.4
* added support for EAP Sequences in EAP-FAST Phase 2
* added support for using TNC with EAP-FAST
* added driver_ps3 for the PS3 Linux wireless driver
@@ -16,6 +16,7 @@
calculations (CONFIG_INTERNAL_LIBTOMMATH_FAST=y)
* fixed race condition between disassociation event and group key
handshake to avoid getting stuck in incorrect state [Bug 261]
+ * fixed opportunistic key caching (proactive_key_caching)
2008-02-22 - v0.6.3
* removed 'nai' and 'eappsk' network configuration variables that were
Modified: wpasupplicant/trunk/wpa_supplicant/Makefile
URL: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/wpa_supplicant/Makefile?rev=1232&op=diff
==============================================================================
--- wpasupplicant/trunk/wpa_supplicant/Makefile (original)
+++ wpasupplicant/trunk/wpa_supplicant/Makefile Tue Aug 12 15:05:18 2008
@@ -189,7 +189,10 @@
ifdef CONFIG_DRIVER_NDIS
CFLAGS += -DCONFIG_DRIVER_NDIS
-OBJS_d += ../src/drivers/driver_ndis.o ../src/drivers/driver_ndis_.o
+OBJS_d += ../src/drivers/driver_ndis.o
+ifdef CONFIG_NDIS_EVENTS_INTEGRATED
+OBJS_d += ../src/drivers/driver_ndis_.o
+endif
ifndef CONFIG_L2_PACKET
CONFIG_L2_PACKET=pcap
endif
More information about the Pkg-wpa-devel
mailing list