From: Vadim Cargatser Date: Tue, 6 Apr 2021 11:58:15 +0000 (+0300) Subject: fix radsec tests X-Git-Tag: release_3_0_24~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=570def66dad4bd62c8cb2c9f5ceb57b9a081a6e8;p=thirdparty%2Ffreeradius-server.git fix radsec tests --- diff --git a/src/tests/radsec/2.ipaddrtls-coa.reply b/src/tests/radsec/2.ipaddrudp-coa.reply similarity index 100% rename from src/tests/radsec/2.ipaddrtls-coa.reply rename to src/tests/radsec/2.ipaddrudp-coa.reply diff --git a/src/tests/radsec/2.ipaddrtls-coa.request b/src/tests/radsec/2.ipaddrudp-coa.request similarity index 100% rename from src/tests/radsec/2.ipaddrtls-coa.request rename to src/tests/radsec/2.ipaddrudp-coa.request diff --git a/src/tests/radsec/5.singletunnel_ipaddr-coa.request b/src/tests/radsec/5.singletunnel_ipaddr-coa.request deleted file mode 100644 index 0a61194b18a..00000000000 --- a/src/tests/radsec/5.singletunnel_ipaddr-coa.request +++ /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 index 00000000000..81a41736e9f --- /dev/null +++ b/src/tests/radsec/5.singletunnel_proxy-coa.reply @@ -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 index 00000000000..72ace4df812 --- /dev/null +++ b/src/tests/radsec/5.singletunnel_proxy-coa.request @@ -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 index 6a242b00e03..00000000000 --- a/src/tests/radsec/6.singletunnel_key-coa.reply +++ /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" - diff --git a/src/tests/radsec/5.singletunnel_ipaddr-coa.reply b/src/tests/radsec/6.singletunnel_originate-coa.reply similarity index 100% rename from src/tests/radsec/5.singletunnel_ipaddr-coa.reply rename to src/tests/radsec/6.singletunnel_originate-coa.reply diff --git a/src/tests/radsec/6.singletunnel_key-coa.request b/src/tests/radsec/6.singletunnel_originate-coa.request similarity index 100% rename from src/tests/radsec/6.singletunnel_key-coa.request rename to src/tests/radsec/6.singletunnel_originate-coa.request diff --git a/src/tests/radsec/7.coareply-auth.request b/src/tests/radsec/7.coareply-auth.request index 0e3d5af65e4..bd2e2b4b416 100644 --- a/src/tests/radsec/7.coareply-auth.request +++ b/src/tests/radsec/7.coareply-auth.request @@ -1 +1,2 @@ User-Name = "PostAuthCoA", +Called-Station-Id = "key0", diff --git a/src/tests/radsec/README.rst b/src/tests/radsec/README.rst index c21ee4a4caf..a016a028ecf 100644 --- a/src/tests/radsec/README.rst +++ b/src/tests/radsec/README.rst @@ -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. ============== diff --git a/src/tests/radsec/config-home/main.conf b/src/tests/radsec/config-home/main.conf index 9a52cf669e5..6fc52723fca 100644 --- a/src/tests/radsec/config-home/main.conf +++ b/src/tests/radsec/config-home/main.conf @@ -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 } } } diff --git a/src/tests/radsec/config-proxy/main.conf.template b/src/tests/radsec/config-proxy/main.conf.template index e4ee7dffec5..030d72a43ba 100644 --- a/src/tests/radsec/config-proxy/main.conf.template +++ b/src/tests/radsec/config-proxy/main.conf.template @@ -191,7 +191,7 @@ home_server tls { cipher_list = "DEFAULT" } - coa { + recv_coa { virtual_server = coa_tls } } diff --git a/src/tests/radsec/runtest.sh b/src/tests/radsec/runtest.sh index 3fef2fb7c58..811f6bb65b0 100755 --- a/src/tests/radsec/runtest.sh +++ b/src/tests/radsec/runtest.sh @@ -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