Jason Traeden wrote:
..
> Ok I patched my box with this ldap.c.diff and I still have the same results.

  Hmm... the same error messages?

  Try this.  I think this one should work...

  Alan DeKok.
Index: src/modules/rlm_ldap/rlm_ldap.c
===================================================================
RCS file: /source/radiusd/src/modules/rlm_ldap/rlm_ldap.c,v
retrieving revision 1.194
diff -u -r1.194 rlm_ldap.c
--- src/modules/rlm_ldap/rlm_ldap.c	17 Apr 2008 07:59:21 -0000	1.194
+++ src/modules/rlm_ldap/rlm_ldap.c	2 May 2008 17:49:49 -0000
@@ -160,6 +160,7 @@
 #endif
 	int             ldap_debug; /* Debug flag for LDAP SDK */
 	char		*xlat_name; /* name used to xlat */
+	char		*auth_type;
 	char		*tls_cacertfile;
 	char		*tls_cacertdir;
 	char		*tls_certfile;
@@ -456,9 +457,17 @@
 	 */
 	if (inst->set_auth_type) {
 		DICT_VALUE *dv = dict_valbyname(PW_AUTH_TYPE, xlat_name);
+
+		/*
+		 *	No section of *my* name, but maybe there's an
+		 *	LDAP section...
+		 */
+		if (!dv) dv = dict_valbyname(PW_AUTH_TYPE, "LDAP");
 		if (!dv) {
 			DEBUG2("rlm_ldap: Over-riding set_auth_type, as there is no module %s listed in the \"authenticate\" section.", xlat_name);
 			inst->set_auth_type = 0;
+		} else {
+			inst->auth_type = dv->name; /* doesn't change on HUP */
 		}
 	} /* else no need to look up the value */
 
@@ -1696,8 +1705,8 @@
 	    request->password &&
 	    (request->password->attribute == PW_USER_PASSWORD) &&
 	    !added_known_password) {
-		pairadd(check_pairs, pairmake("Auth-Type", inst->xlat_name, T_OP_EQ));
-		DEBUG("rlm_ldap: Setting Auth-Type = %s", inst->xlat_name);
+		pairadd(check_pairs, pairmake("Auth-Type", inst->auth_type, T_OP_EQ));
+		DEBUG("rlm_ldap: Setting Auth-Type = %s", inst->auth_type);
 	}
 
 	DEBUG("rlm_ldap: user %s authorized to use remote access",
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to