accel-ppp и тип соединения в радиусе

Сервер accel-ppp поддерживает pppoe, pptp, l2tp соединения (скажем так — мне они интереснее).

Через консоль можно увидеть для примера:

 ifname |    username    |    calling-sid    |       ip       | type  | state  |   uptime   | ...       
--------+----------------+-------------------+----------------+-------+--------+------------+-
 ppp152 | user           | xx:xx:xx:xx:xx:xx | 1.1.1.1        | pppoe | active | 9.02:53:41 | ...

 

Но type нет радиусе :( Недолго думая дописал несколько строк:

--- accel-ppp/accel-pppd/radius/req.c.orig	2012-12-05 10:16:11.150988734 +0200
+++ accel-ppp/accel-pppd/radius/req.c	2012-12-05 10:18:10.110104045 +0200
@@ -83,6 +83,21 @@
 	} else {
 		if (rad_packet_add_val(req->pack, NULL, "NAS-Port-Type", "Virtual"))
 			goto out_err;
+		int ret;
+		switch(req->rpd->ses->ctrl->type){
+    		    case CTRL_TYPE_PPPOE:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "pppoe");
+			//log_emerg("Connect-Info=pppoe: %d\n",ret);
+			break;
+		    case CTRL_TYPE_PPTP:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "pptp");
+			//log_emerg("Connect-Info=pptp: %d\n",ret);
+			break;
+		    case CTRL_TYPE_L2TP:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "l2tp");
+			//log_emerg("Connect-Info=l2tp: %d\n",ret);
+			break;
+		}

 		if (rad_packet_add_val(req->pack, NULL, "Service-Type", "Framed-User"))
 			goto out_err;

 

В логе видим:

... <NAS-Port-Type Virtual> <Connect-Info "pppoe"> <Service-Type Framed-User> ....

 

Качаем патч  req-info  и accel-ppp-git-20130321-2.src.tar.gz.

PS. патч под git версию!

Теги: , ,

Ваш отзыв