I ran into some problems with exim-4.52 while doing radius authentication with radiusclient 0.4.9:

- Error returned from rc_read_config was caught wrongly
- Username/password not passed on to radius server due to wrong length.

I guess some radiusclient API changes were not taken care of correctly.

My humble patch attached.

Regards,

.lzs
--
http://thinkingfarm.com/~lzs/
--- exim-4.52/src/auths/call_radius.c   Fri Jul  1 19:09:15 2005
+++ exim-4.52-lzs/src/auths/call_radius.c       Sun Aug 14 12:27:42 2005
@@ -113,16 +113,16 @@

 #else  /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */

-if ((h = rc_read_config(RADIUS_CONFIG_FILE)) != 0)
+if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == 0)
   *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);

 else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
   *errptr = string_sprintf("RADIUS: can't read dictionary");

-else if (rc_avpair_add(h, &send, PW_USER_NAME, user, 0, 0) == NULL)
+else if (rc_avpair_add(h, &send, PW_USER_NAME, user, strlen(user), 0) == NULL)
   *errptr = string_sprintf("RADIUS: add user name failed\n");

-else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args, 0, 0) == 
NULL)
+else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args, 
strlen(radius_args), 0) == NULL)
   *errptr = string_sprintf("RADIUS: add password failed\n");

 else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL)
-- 
## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details 
at http://www.exim.org/ ##

Reply via email to