]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
fix radsec tests
authorVadim Cargatser <vcargats@cisco.com>
Tue, 6 Apr 2021 11:58:15 +0000 (14:58 +0300)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 22 Jul 2021 13:55:24 +0000 (09:55 -0400)
13 files changed:
src/tests/radsec/2.ipaddrudp-coa.reply [moved from src/tests/radsec/2.ipaddrtls-coa.reply with 100% similarity]
src/tests/radsec/2.ipaddrudp-coa.request [moved from src/tests/radsec/2.ipaddrtls-coa.request with 100% similarity]
src/tests/radsec/5.singletunnel_ipaddr-coa.request [deleted file]
src/tests/radsec/5.singletunnel_proxy-coa.reply [new file with mode: 0644]
src/tests/radsec/5.singletunnel_proxy-coa.request [new file with mode: 0644]
src/tests/radsec/6.singletunnel_key-coa.reply [deleted file]
src/tests/radsec/6.singletunnel_originate-coa.reply [moved from src/tests/radsec/5.singletunnel_ipaddr-coa.reply with 100% similarity]
src/tests/radsec/6.singletunnel_originate-coa.request [moved from src/tests/radsec/6.singletunnel_key-coa.request with 100% similarity]
src/tests/radsec/7.coareply-auth.request
src/tests/radsec/README.rst
src/tests/radsec/config-home/main.conf
src/tests/radsec/config-proxy/main.conf.template
src/tests/radsec/runtest.sh

diff --git a/src/tests/radsec/5.singletunnel_ipaddr-coa.request b/src/tests/radsec/5.singletunnel_ipaddr-coa.request
deleted file mode 100644 (file)
index 0a61194..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-User-Name = "IpAddressSingleTunnel",
-NAS-IP-Address = "127.0.0.1",
diff --git a/src/tests/radsec/5.singletunnel_proxy-coa.reply b/src/tests/radsec/5.singletunnel_proxy-coa.reply
new file mode 100644 (file)
index 0000000..81a4173
--- /dev/null
@@ -0,0 +1,6 @@
+# We don't need delay since proxy flow will be finished
+# just after final CoA home server will return response.
+#delay 2.5
+Received CoA-ACK
+Acct-Session-Id = "default:pre-proxy"  "coa_tls:recv-coa"  "proxy-originate-coa-relay:pre-proxy"  "coa:recv-coa"  "coa:send-coa"  "proxy-originate-coa-relay:post-proxy-coa-ack"  "coa_tls:send-coa"  "default:post-proxy-coa-ack"$
+
diff --git a/src/tests/radsec/5.singletunnel_proxy-coa.request b/src/tests/radsec/5.singletunnel_proxy-coa.request
new file mode 100644 (file)
index 0000000..72ace4d
--- /dev/null
@@ -0,0 +1,2 @@
+User-Name = "TcpSessionKey-Proxy",
+Called-Station-Id = "key0"
diff --git a/src/tests/radsec/6.singletunnel_key-coa.reply b/src/tests/radsec/6.singletunnel_key-coa.reply
deleted file mode 100644 (file)
index 6a242b0..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-delay 2.5
-Received CoA-ACK
-Acct-Session-Id = "coa-buffered-reader:accounting:coa-request"  "default:pre-proxy"  "coa_tls:recv-coa"  "proxy-originate-coa-relay:pre-proxy"  "coa:recv-coa"  "coa:send-coa"  "proxy-originate-coa-relay:post-proxy-coa-ack"  "coa_tls:send-coa"  "default:post-proxy-coa-ack"
-
index 0e3d5af65e403783f2ee3dc372a2de8aab92d631..bd2e2b4b416a7ea89c400ee37a7aba7953cd2cda 100644 (file)
@@ -1 +1,2 @@
 User-Name = "PostAuthCoA",
+Called-Station-Id = "key0",
index c21ee4a4caf51f6d998b59f971608be8f5d33c01..a016a028ecf73a193d7f7181654f2d178b1ba5c3 100644 (file)
@@ -27,6 +27,9 @@ config-proxy, config-home.
 
 Each test is a pair of two files ending with \*.request and \*.reply.
 
+To run these tests separately, make sure you run 'make test' from the root
+directory beforehand.
+
 Request files.
 ==============
 
index 9a52cf669e57a78ee12d400bd0222d62a4001528..6fc52723fcaac7f38c314e0b21558bb408d0341c 100644 (file)
@@ -78,6 +78,7 @@ server default {
                if(User-Name && User-Name == "PostAuthCoA") {
                        update coa {
                                &Acct-Session-Id += "default:post-auth"
+                           &Proxy-To-Originating-Realm := &Called-Station-Id
                        }
                }
        }
@@ -144,10 +145,20 @@ listen {
 
 server coa {
        recv-coa {
+
                update request {
                        COA-Packet-Type := "%{Packet-Type}"
                }
-               detail_coa.accounting
+
+               if(&User-Name == "TcpSessionKey-Proxy") {
+                       # Proxying CoA
+                       update control {
+                               &Proxy-To-Originating-Realm := &Called-Station-Id
+                       }
+               } else {
+                       # Originating CoA
+                       detail_coa.accounting
+               }
        }
 }
 
@@ -179,7 +190,7 @@ server coa-buffered-reader {
                        }
                        case "TcpSessionKey"{
                                update {
-                                       coa:Originating-Realm-Key := &Called-Station-Id
+                                       coa:Proxy-To-Originating-Realm := &Called-Station-Id
                                }
                        }
                }
index e4ee7dffec514bc3bd0a9ed92bec625f2c331503..030d72a43baa2802492df3c261ea0c8a29d0e72c 100644 (file)
@@ -191,7 +191,7 @@ home_server tls {
                cipher_list = "DEFAULT"
        }
 
-       coa {
+       recv_coa {
                virtual_server = coa_tls
        }
 }
index 3fef2fb7c58785e101ab700a192934054ed3187b..811f6bb65b096b2a039ed2a3265033762ab9509d 100755 (executable)
@@ -54,10 +54,12 @@ tailproxy=$(echo $!)
 
 $BIN_PATH/radclient -f $TEST_NAME.request -xF -D ./ 127.0.0.1:$PORT $TYPE $SECRET 1> $OUTPUT
 
-delay=$(grep delay $TEST_NAME.reply | awk '{print $2}')
-
-sed '/delay/d' $TEST_NAME.reply > $TEST_NAME.reply.tmp
+# skip comments
+sed '/^\s*#/d' $TEST_NAME.reply > $TEST_NAME.reply.tmp
 
+# wait if needed
+delay=$(grep delay $TEST_NAME.reply.tmp | awk '{print $2}')
+sed '/delay/d' $TEST_NAME.reply.tmp > $TEST_NAME.reply.tmp
 sleep $delay 2>&1 > /dev/null
 
 cat radclient.log > $RES