/* If not set, set default conf file path */
if(isNull(confFile)){
- strncpy(confFile, RADIUSCONF, ADDRMAXLN);
+ confFile=RADIUSCONF;
}
if( !(radh=rad_auth_open()) ){
- err_msg("ERR at %s#%d: cannot start radius",__FILE__,__LINE__);
+ err_msg("ERR at %s#%d: rad_auth_open",__FILE__,__LINE__);
return DENY;
}
if(gethostname(hostname,ADDRMAXLN) < 0){
- err_msg("ERR at %s#%d: cannot get hostname",__FILE__,__LINE__);
+ err_msg("ERR at %s#%d: gethostname",__FILE__,__LINE__);
+ rad_close(radh);
return DENY;
}
if(rad_config(radh,confFile) < 0){
- err_msg("ERR at %s#%d: cannot open conffile",__FILE__,__LINE__);
+ err_msg("ERR at %s#%d: rad_config: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
return DENY;
}
if(rad_create_request(radh, RAD_ACCESS_REQUEST) < 0){
- err_msg("ERR at %s#%d: cannot create radius request",__FILE__,__LINE__);
+ err_msg("ERR at %s#%d: rad_ceate_request: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
return DENY;
}
- rad_put_string(radh,RAD_USER_NAME,userid);
- rad_put_string(radh,RAD_USER_PASSWORD,passwd);
- rad_put_string(radh,RAD_NAS_IDENTIFIER,hostname);
- rad_put_int(radh,RAD_SERVICE_TYPE,RAD_LOGIN);
+ if(rad_put_string(radh,RAD_USER_NAME,userid)<0){
+ err_msg("ERR at %s#%d: rad_put_string: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
+ return DENY;
+ }
+ if(rad_put_string(radh,RAD_USER_PASSWORD,passwd)<0){
+ err_msg("ERR at %s#%d: rad_put_string: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
+ return DENY;
+ }
+ if(rad_put_string(radh,RAD_NAS_IDENTIFIER,hostname)<0){
+ err_msg("ERR at %s#%d: rad_put_string: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
+ return DENY;
+ }
+ if(rad_put_int(radh,RAD_SERVICE_TYPE,RAD_LOGIN)<0){
+ err_msg("ERR at %s#%d: rad_put_int: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ rad_close(radh);
+ return DENY;
+ }
switch(rad_send_request(radh)){
case RAD_ACCESS_ACCEPT:
authResult=ACCEPT;
break;
+ case -1:
+ err_msg("ERR at %s#%d: rad_send_request: %s",__FILE__,__LINE__,
+ rad_strerror(radh));
+ authResult=DENY;
+ break;
case RAD_ACCESS_REJECT:
case RAD_ACCESS_CHALLENGE:
case RAD_ACCOUNTING_RESPONSE:
authResult=DENY;
break;
}
-
+ rad_close(radh);
return authResult;
}