Bjarni Hardarson wrote:
> Hi list!
>
> Recently upgraded from 1.1.3 to 1.1.4 to support EAP-PEAP for Windows
> Vista clients. That works fine but now I got problems with missing reply
> attributes for Mac OSX clients using EAP-TTLS.
>
> FreeRADIUS sends an Access-Challenge with the correct attributes but
> they are missing from the final Access-Accept.
Please try the attached patch. If it works, I'll add it to 1.1.5.
Alan DeKok.
--
http://deployingradius.com - The web site of the book
http://deployingradius.com/blog/ - The blog
? src/modules/rlm_eap/radeapclient
Index: src/modules/rlm_eap/types/rlm_eap_ttls/eap_ttls.h
===================================================================
RCS file: /source/radiusd/src/modules/rlm_eap/types/rlm_eap_ttls/eap_ttls.h,v
retrieving revision 1.5.4.1
diff -u -r1.5.4.1 eap_ttls.h
--- src/modules/rlm_eap/types/rlm_eap_ttls/eap_ttls.h 6 Feb 2006 16:23:57
-0000 1.5.4.1
+++ src/modules/rlm_eap/types/rlm_eap_ttls/eap_ttls.h 16 Feb 2007 08:33:25
-0000
@@ -27,6 +27,7 @@
typedef struct ttls_tunnel_t {
VALUE_PAIR *username;
VALUE_PAIR *state;
+ VALUE_PAIR *reply;
int authenticated;
int default_eap_type;
int copy_request_to_tunnel;
Index: src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c
===================================================================
RCS file: /source/radiusd/src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c,v
retrieving revision 1.17.2.2.2.3
diff -u -r1.17.2.2.2.3 ttls.c
--- src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c 18 Oct 2006 21:49:47
-0000 1.17.2.2.2.3
+++ src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c 16 Feb 2007 08:33:25
-0000
@@ -611,6 +611,9 @@
DEBUG2(" TTLS: Got MS-CHAP2-Success, tunneling it to
the client in a challenge.");
rcode = RLM_MODULE_HANDLED;
t->authenticated = TRUE;
+
+ t->reply = reply->vps;
+ reply->vps = NULL;
} else { /* no MS-CHAP2-Success */
/*
* Can only have EAP-Message if there's
@@ -643,8 +646,13 @@
*/
if (t->use_tunneled_reply) {
pairdelete(&reply->vps, PW_PROXY_STATE);
- pairadd(&request->reply->vps, reply->vps);
- reply->vps = NULL;
+
+ if (!t->reply) {
+ pairadd(&request->reply->vps, reply->vps);
+ reply->vps = NULL;
+ } else {
+ pairadd(&request->reply->vps, reply->vps);
+ }
}
break;
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html