Add RADIUS Service-Type attribute with a value of Framed
This seems to be the common value used by APs and also mentioned in RFC 3580. Signed-off-by: Nick Lowe <nick.lowe@lugatech.com>
This commit is contained in:
parent
78dd5c11ac
commit
8c676b5056
4 changed files with 20 additions and 0 deletions
|
@ -404,6 +404,14 @@ static int add_common_radius_sta_attr(struct hostapd_data *hapd,
|
||||||
{
|
{
|
||||||
char buf[128];
|
char buf[128];
|
||||||
|
|
||||||
|
if (!hostapd_config_get_radius_attr(req_attr,
|
||||||
|
RADIUS_ATTR_SERVICE_TYPE) &&
|
||||||
|
!radius_msg_add_attr_int32(msg, RADIUS_ATTR_SERVICE_TYPE,
|
||||||
|
RADIUS_SERVICE_TYPE_FRAMED)) {
|
||||||
|
wpa_printf(MSG_ERROR, "Could not add Service-Type");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!hostapd_config_get_radius_attr(req_attr,
|
if (!hostapd_config_get_radius_attr(req_attr,
|
||||||
RADIUS_ATTR_NAS_PORT) &&
|
RADIUS_ATTR_NAS_PORT) &&
|
||||||
!radius_msg_add_attr_int32(msg, RADIUS_ATTR_NAS_PORT, sta->aid)) {
|
!radius_msg_add_attr_int32(msg, RADIUS_ATTR_NAS_PORT, sta->aid)) {
|
||||||
|
|
|
@ -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_SERVICE_TYPE, "Service-Type", RADIUS_ATTR_INT32 },
|
||||||
{ RADIUS_ATTR_FRAMED_IP_ADDRESS, "Framed-IP-Address", RADIUS_ATTR_IP },
|
{ 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 },
|
||||||
|
|
|
@ -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_SERVICE_TYPE = 6,
|
||||||
RADIUS_ATTR_FRAMED_IP_ADDRESS = 8,
|
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,
|
||||||
|
@ -110,6 +111,9 @@ enum { RADIUS_ATTR_USER_NAME = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Service-Type values (RFC 2865, 5.6) */
|
||||||
|
#define RADIUS_SERVICE_TYPE_FRAMED 2
|
||||||
|
|
||||||
/* Termination-Action */
|
/* Termination-Action */
|
||||||
#define RADIUS_TERMINATION_ACTION_DEFAULT 0
|
#define RADIUS_TERMINATION_ACTION_DEFAULT 0
|
||||||
#define RADIUS_TERMINATION_ACTION_RADIUS_REQUEST 1
|
#define RADIUS_TERMINATION_ACTION_RADIUS_REQUEST 1
|
||||||
|
|
|
@ -258,6 +258,13 @@ static void ieee802_1x_encapsulate_radius(struct eapol_test_data *e,
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!find_extra_attr(e->extra_attrs, RADIUS_ATTR_SERVICE_TYPE) &&
|
||||||
|
!radius_msg_add_attr_int32(msg, RADIUS_ATTR_SERVICE_TYPE,
|
||||||
|
RADIUS_SERVICE_TYPE_FRAMED)) {
|
||||||
|
printf("Could not add Service-Type\n");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
os_snprintf(buf, sizeof(buf), "%s", e->connect_info);
|
os_snprintf(buf, sizeof(buf), "%s", e->connect_info);
|
||||||
if (!find_extra_attr(e->extra_attrs, RADIUS_ATTR_CONNECT_INFO) &&
|
if (!find_extra_attr(e->extra_attrs, RADIUS_ATTR_CONNECT_INFO) &&
|
||||||
!radius_msg_add_attr(msg, RADIUS_ATTR_CONNECT_INFO,
|
!radius_msg_add_attr(msg, RADIUS_ATTR_CONNECT_INFO,
|
||||||
|
|
Loading…
Reference in a new issue