Re: CDR+Radius. Отсутсвует NAS IP Address
прошу прощения немного упостил
/*
* Function: rc_own_bind_ipaddress
*
* Purpose: get the IP address to be used as a source address
* for sending requests in host order
*
* Returns: IP address
*
*/
UINT4 rc_own_bind_ipaddress(rc_handle *rh)
{
char hostname[256];
UINT4 rval;
if (rh->this_host_bind_ipaddr != NULL)
return *rh->this_host_bind_ipaddr;
rh->this_host_bind_ipaddr = malloc(sizeof(*rh->this_host_bind_ipaddr));
if (rh->this_host_bind_ipaddr == NULL)
rc_log(LOG_CRIT, "rc_own_bind_ipaddress: out of memory");
if (rc_conf_str(rh, "bindaddr") == NULL ||
strcmp(rc_conf_str(rh, "bindaddr"), "*") == 0) {
rval = INADDR_ANY;
} else {
strncpy(hostname, rc_conf_str(rh, "bindaddr"), sizeof(hostname));
hostname[sizeof(hostname) - 1] = '\0';
if ((rval = rc_get_ipaddr (hostname)) == 0) {
rc_log(LOG_ERR, "rc_own_ipaddress: couldn't get IP address from bindaddr");
rval = INADDR_ANY;
}
}
if (rh->this_host_bind_ipaddr != NULL)
*rh->this_host_bind_ipaddr = rval;
return rval;
}
переменная bindaddr должна быть становлена в конфиге радиуса
она дальше и передаеться в пакете
если в переменной 0.0.0.0 то тогда используеться процедура rc_get_srcaddr для получения айпиадресса локального
ортодоксальный антиастерискер || антилинуксоид! (астериск || линукс) - иррациональное решение!. и здесь я тоже http://forum.asterisk.ru
|