[PATCH] Define and make use of the Service-Type RADIUS attribute with a value of Framed.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Define and make use of the Service-Type RADIUS attribute with a value of Framed.

Signed-off-by: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
---
 src/ap/ieee802_1x.c         | 7 +++++++
 src/radius/radius.h         | 4 ++++
 wpa_supplicant/eapol_test.c | 7 +++++++
 3 files changed, 18 insertions(+)

diff --git a/src/ap/ieee802_1x.c b/src/ap/ieee802_1x.c
index d399b1e..7e99684 100644
--- a/src/ap/ieee802_1x.c
+++ b/src/ap/ieee802_1x.c
@@ -405,6 +405,13 @@ static int add_common_radius_sta_attr(struct
hostapd_data *hapd,
     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,
                         RADIUS_ATTR_NAS_PORT) &&
         !radius_msg_add_attr_int32(msg, RADIUS_ATTR_NAS_PORT, sta->aid)) {
         wpa_printf(MSG_ERROR, "Could not add NAS-Port");
diff --git a/src/radius/radius.h b/src/radius/radius.h
index 313fc65..e641cfc 100644
--- a/src/radius/radius.h
+++ b/src/radius/radius.h
@@ -52,6 +52,7 @@ enum { RADIUS_ATTR_USER_NAME = 1,
        RADIUS_ATTR_USER_PASSWORD = 2,
        RADIUS_ATTR_NAS_IP_ADDRESS = 4,
        RADIUS_ATTR_NAS_PORT = 5,
+       RADIUS_ATTR_SERVICE_TYPE = 6,
        RADIUS_ATTR_FRAMED_IP_ADDRESS = 8,
        RADIUS_ATTR_FRAMED_MTU = 12,
        RADIUS_ATTR_REPLY_MESSAGE = 18,
@@ -109,6 +110,9 @@ enum { RADIUS_ATTR_USER_NAME = 1,
 };


+/* Service-Type */
+#define RADIUS_SERVICE_TYPE_FRAMED 2
+
 /* Termination-Action */
 #define RADIUS_TERMINATION_ACTION_DEFAULT 0
 #define RADIUS_TERMINATION_ACTION_RADIUS_REQUEST 1
diff --git a/wpa_supplicant/eapol_test.c b/wpa_supplicant/eapol_test.c
index 1aede79..6548bd1 100644
--- a/wpa_supplicant/eapol_test.c
+++ b/wpa_supplicant/eapol_test.c
@@ -258,6 +258,13 @@ static void ieee802_1x_encapsulate_radius(struct
eapol_test_data *e,
         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);
     if (!find_extra_attr(e->extra_attrs, RADIUS_ATTR_CONNECT_INFO) &&
         !radius_msg_add_attr(msg, RADIUS_ATTR_CONNECT_INFO,
-- 
2.5.0
From db38d26fb771a2d68a2992ad9ee2e9fd3ed32b5f Mon Sep 17 00:00:00 2001
From: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
Date: Sat, 13 Feb 2016 12:20:12 +0000
Subject: [PATCH] Define and make use of the Service-Type RADIUS attribute with
 a value of Framed.

Signed-off-by: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
---
 src/ap/ieee802_1x.c         | 7 +++++++
 src/radius/radius.h         | 4 ++++
 wpa_supplicant/eapol_test.c | 7 +++++++
 3 files changed, 18 insertions(+)

diff --git a/src/ap/ieee802_1x.c b/src/ap/ieee802_1x.c
index d399b1e..7e99684 100644
--- a/src/ap/ieee802_1x.c
+++ b/src/ap/ieee802_1x.c
@@ -405,6 +405,13 @@ static int add_common_radius_sta_attr(struct hostapd_data *hapd,
 	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,
 					    RADIUS_ATTR_NAS_PORT) &&
 	    !radius_msg_add_attr_int32(msg, RADIUS_ATTR_NAS_PORT, sta->aid)) {
 		wpa_printf(MSG_ERROR, "Could not add NAS-Port");
diff --git a/src/radius/radius.h b/src/radius/radius.h
index 313fc65..e641cfc 100644
--- a/src/radius/radius.h
+++ b/src/radius/radius.h
@@ -52,6 +52,7 @@ enum { RADIUS_ATTR_USER_NAME = 1,
        RADIUS_ATTR_USER_PASSWORD = 2,
        RADIUS_ATTR_NAS_IP_ADDRESS = 4,
        RADIUS_ATTR_NAS_PORT = 5,
+       RADIUS_ATTR_SERVICE_TYPE = 6,
        RADIUS_ATTR_FRAMED_IP_ADDRESS = 8,
        RADIUS_ATTR_FRAMED_MTU = 12,
        RADIUS_ATTR_REPLY_MESSAGE = 18,
@@ -109,6 +110,9 @@ enum { RADIUS_ATTR_USER_NAME = 1,
 };
 
 
+/* Service-Type */
+#define RADIUS_SERVICE_TYPE_FRAMED 2
+
 /* Termination-Action */
 #define RADIUS_TERMINATION_ACTION_DEFAULT 0
 #define RADIUS_TERMINATION_ACTION_RADIUS_REQUEST 1
diff --git a/wpa_supplicant/eapol_test.c b/wpa_supplicant/eapol_test.c
index 1aede79..6548bd1 100644
--- a/wpa_supplicant/eapol_test.c
+++ b/wpa_supplicant/eapol_test.c
@@ -258,6 +258,13 @@ static void ieee802_1x_encapsulate_radius(struct eapol_test_data *e,
 		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);
 	if (!find_extra_attr(e->extra_attrs, RADIUS_ATTR_CONNECT_INFO) &&
 	    !radius_msg_add_attr(msg, RADIUS_ATTR_CONNECT_INFO,
-- 
2.5.0

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap

[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux