Add Framed-IP-Address to Accounting-Request if STA address is known
The recently added ProxyARP support (proxy_arp=1) in hostapd allows a STA IPv4 address to be learned from DHCP or ARP messages. If that information is available, add it to Account-Request messages in Framed-IP-Address attribute. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
dd0d294d2f
commit
1166b20c95
3 changed files with 14 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* hostapd / RADIUS Accounting
|
* hostapd / RADIUS Accounting
|
||||||
* Copyright (c) 2002-2009, 2012, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2002-2009, 2012-2015, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
|
@ -147,6 +147,15 @@ static struct radius_msg * accounting_msg(struct hostapd_data *hapd,
|
||||||
wpa_printf(MSG_ERROR, "Could not add CUI from ACL");
|
wpa_printf(MSG_ERROR, "Could not add CUI from ACL");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sta->ipaddr &&
|
||||||
|
!radius_msg_add_attr_int32(msg,
|
||||||
|
RADIUS_ATTR_FRAMED_IP_ADDRESS,
|
||||||
|
be_to_host32(sta->ipaddr))) {
|
||||||
|
wpa_printf(MSG_ERROR,
|
||||||
|
"Could not add Framed-IP-Address");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return msg;
|
return msg;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* RADIUS message processing
|
* RADIUS message processing
|
||||||
* Copyright (c) 2002-2009, 2011-2014, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2002-2009, 2011-2015, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
|
@ -173,6 +173,7 @@ static const struct radius_attr_type radius_attrs[] =
|
||||||
{ RADIUS_ATTR_USER_PASSWORD, "User-Password", RADIUS_ATTR_UNDIST },
|
{ RADIUS_ATTR_USER_PASSWORD, "User-Password", RADIUS_ATTR_UNDIST },
|
||||||
{ RADIUS_ATTR_NAS_IP_ADDRESS, "NAS-IP-Address", RADIUS_ATTR_IP },
|
{ RADIUS_ATTR_NAS_IP_ADDRESS, "NAS-IP-Address", RADIUS_ATTR_IP },
|
||||||
{ RADIUS_ATTR_NAS_PORT, "NAS-Port", RADIUS_ATTR_INT32 },
|
{ RADIUS_ATTR_NAS_PORT, "NAS-Port", RADIUS_ATTR_INT32 },
|
||||||
|
{ RADIUS_ATTR_FRAMED_IP_ADDRESS, "Framed-IP-Address", RADIUS_ATTR_IP },
|
||||||
{ RADIUS_ATTR_FRAMED_MTU, "Framed-MTU", RADIUS_ATTR_INT32 },
|
{ RADIUS_ATTR_FRAMED_MTU, "Framed-MTU", RADIUS_ATTR_INT32 },
|
||||||
{ RADIUS_ATTR_REPLY_MESSAGE, "Reply-Message", RADIUS_ATTR_TEXT },
|
{ RADIUS_ATTR_REPLY_MESSAGE, "Reply-Message", RADIUS_ATTR_TEXT },
|
||||||
{ RADIUS_ATTR_STATE, "State", RADIUS_ATTR_UNDIST },
|
{ RADIUS_ATTR_STATE, "State", RADIUS_ATTR_UNDIST },
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* RADIUS message processing
|
* RADIUS message processing
|
||||||
* Copyright (c) 2002-2009, 2012, 2014, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2002-2009, 2012, 2014-2015, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
|
@ -52,6 +52,7 @@ enum { RADIUS_ATTR_USER_NAME = 1,
|
||||||
RADIUS_ATTR_USER_PASSWORD = 2,
|
RADIUS_ATTR_USER_PASSWORD = 2,
|
||||||
RADIUS_ATTR_NAS_IP_ADDRESS = 4,
|
RADIUS_ATTR_NAS_IP_ADDRESS = 4,
|
||||||
RADIUS_ATTR_NAS_PORT = 5,
|
RADIUS_ATTR_NAS_PORT = 5,
|
||||||
|
RADIUS_ATTR_FRAMED_IP_ADDRESS = 8,
|
||||||
RADIUS_ATTR_FRAMED_MTU = 12,
|
RADIUS_ATTR_FRAMED_MTU = 12,
|
||||||
RADIUS_ATTR_REPLY_MESSAGE = 18,
|
RADIUS_ATTR_REPLY_MESSAGE = 18,
|
||||||
RADIUS_ATTR_STATE = 24,
|
RADIUS_ATTR_STATE = 24,
|
||||||
|
|
Loading…
Reference in a new issue