]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
TEST-75-RESOLVED: add test cases for resolving service with record type filter 36398/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 16 Feb 2025 12:22:22 +0000 (21:22 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 16 Feb 2025 14:22:50 +0000 (23:22 +0900)
test/units/TEST-75-RESOLVED.sh

index 8df5caea4ea9dfb99a36e4c301a9e33f39b70a01..1b2f317532f65d5aa5ab4211b83711e272c7739a 100755 (executable)
@@ -1136,6 +1136,10 @@ testcase_14_refuse_record_types() {
     run resolvectl query localhost5 --type=A
     grep -qF "127.128.0.5" "$RUN_OUT"
 
+    (! run resolvectl service _mysvc._tcp signed.test)
+    (! run varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveService '{"name":"","type":"_mysvc._tcp","domain":"signed.test"}')
+
+    # Filter only AAAA
     {
         echo "[Resolve]"
         echo "RefuseRecordTypes=AAAA"
@@ -1159,6 +1163,74 @@ testcase_14_refuse_record_types() {
 
     (! run resolvectl query localhost5 --type=AAAA)
     grep -qF "DNS query type refused." "$RUN_OUT"
+
+    run resolvectl service _mysvc._tcp signed.test
+    grep -qF "myservice.signed.test:1234" "$RUN_OUT"
+    grep -qF "This is TXT for myservice" "$RUN_OUT"
+    grep -qF "10.0.0.20" "$RUN_OUT"
+    (! grep -qF "fd00:dead:beef:cafe::17" "$RUN_OUT")
+    grep -qF "authenticated: yes" "$RUN_OUT"
+
+    run varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveService '{"name":"","type":"_mysvc._tcp","domain":"signed.test"}'
+    grep -qF '"services":[{"priority":10,"weight":5,"port":1234,"hostname":"myservice.signed.test","canonicalName":"myservice.signed.test"' "$RUN_OUT"
+    grep -qF '"addresses":[{"ifindex":' "$RUN_OUT"
+    grep -qF '"family":2,"address":[10,0,0,20]' "$RUN_OUT"
+    (! grep -qF '"family":10,"address":[253,0,222,173,190,239,202,254,0,0,0,0,0,0,0,23]' "$RUN_OUT")
+    grep -qF '"txt":["This is TXT for myservice"]' "$RUN_OUT"
+    grep -qF '"canonical":{"name":null,"type":"_mysvc._tcp","domain":"signed.test"}' "$RUN_OUT"
+
+    # Filter both A and AAAA
+    {
+        echo "[Resolve]"
+        echo "RefuseRecordTypes=A AAAA"
+    } >/run/systemd/resolved.conf.d/refuserecords.conf
+    systemctl reload systemd-resolved.service
+
+    run resolvectl service _mysvc._tcp signed.test
+    grep -qF "myservice.signed.test:1234" "$RUN_OUT"
+    grep -qF "This is TXT for myservice" "$RUN_OUT"
+    (! grep -qF "10.0.0.20" "$RUN_OUT")
+    (! grep -qF "fd00:dead:beef:cafe::17" "$RUN_OUT")
+    grep -qF "authenticated: yes" "$RUN_OUT"
+
+    run varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveService '{"name":"","type":"_mysvc._tcp","domain":"signed.test"}'
+    grep -qF '"services":[{"priority":10,"weight":5,"port":1234,"hostname":"myservice.signed.test"}]' "$RUN_OUT"
+    (! grep -qF '"addresses":[{"ifindex":' "$RUN_OUT")
+    (! grep -qF '"family":2,"address":[10,0,0,20]' "$RUN_OUT")
+    (! grep -qF '"family":10,"address":[253,0,222,173,190,239,202,254,0,0,0,0,0,0,0,23]' "$RUN_OUT")
+    grep -qF '"txt":["This is TXT for myservice"]' "$RUN_OUT"
+    grep -qF '"canonical":{"name":null,"type":"_mysvc._tcp","domain":"signed.test"}' "$RUN_OUT"
+
+    # Filter AAAA and TXT
+    {
+        echo "[Resolve]"
+        echo "RefuseRecordTypes=AAAA TXT"
+    } >/run/systemd/resolved.conf.d/refuserecords.conf
+    systemctl reload systemd-resolved.service
+
+    run resolvectl service _mysvc._tcp signed.test
+    grep -qF "myservice.signed.test:1234" "$RUN_OUT"
+    grep -qF "10.0.0.20" "$RUN_OUT"
+    (! grep -qF "fd00:dead:beef:cafe::17" "$RUN_OUT")
+    grep -qF "authenticated: yes" "$RUN_OUT"
+
+    run varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveService '{"name":"","type":"_mysvc._tcp","domain":"signed.test"}'
+    grep -qF '"services":[{"priority":10,"weight":5,"port":1234,"hostname":"myservice.signed.test","canonicalName":"myservice.signed.test"' "$RUN_OUT"
+    grep -qF '"addresses":[{"ifindex":' "$RUN_OUT"
+    grep -qF '"family":2,"address":[10,0,0,20]' "$RUN_OUT"
+    (! grep -qF '"family":10,"address":[253,0,222,173,190,239,202,254,0,0,0,0,0,0,0,23]' "$RUN_OUT")
+    (! grep -qF '"txt":["This is TXT for myservice"]' "$RUN_OUT")
+    grep -qF '"canonical":{"name":null,"type":"_mysvc._tcp","domain":"signed.test"}' "$RUN_OUT"
+
+    # Filter SRV
+    {
+        echo "[Resolve]"
+        echo "RefuseRecordTypes=SRV"
+    } >/run/systemd/resolved.conf.d/refuserecords.conf
+    systemctl reload systemd-resolved.service
+
+    (! run resolvectl service _mysvc._tcp signed.test)
+    (! run varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveService '{"name":"","type":"_mysvc._tcp","domain":"signed.test"}')
 }
 
 # PRE-SETUP