From 0be3d106b8a81a5868e34c555c46137bdc042d5a Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 9 Oct 2025 12:30:42 -0400 Subject: [PATCH] MT#55283 close sockets on unsubscribe closes #2010 Change-Id: I988f495e99e6eca39029958be5e504999085f1b2 --- daemon/call.c | 2 ++ t/auto-daemon-tests-pubsub.pl | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index fb2db022e..16f09d643 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -4589,6 +4589,8 @@ int monologue_unsubscribe(struct call_monologue *dst_ml, sdp_ng_flags *flags) { update_init_subscribers(media, NULL, NULL, flags->opmode); } + monologue_destroy(dst_ml); + return 0; } diff --git a/t/auto-daemon-tests-pubsub.pl b/t/auto-daemon-tests-pubsub.pl index c11e12a79..2d8ff9488 100755 --- a/t/auto-daemon-tests-pubsub.pl +++ b/t/auto-daemon-tests-pubsub.pl @@ -632,10 +632,10 @@ snd($sock_a, $port_b, rtp(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv_no($sock_c); rcv_no($sock_a); -snd($sock_c, $port_c, rtp(0, 5001, 8160, 0x9876, "\x00" x 160)); -rcv_no($sock_a); -rcv_no($sock_b); -rcv_no($sock_c); +#snd($sock_c, $port_c, rtp(0, 5001, 8160, 0x9876, "\x00" x 160)); +#rcv_no($sock_a); +#rcv_no($sock_b); +#rcv_no($sock_c); snd($sock_bx, $port_ax, "\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00"); rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00$/); @@ -647,10 +647,10 @@ rcv($sock_bx, $port_ax, qr/^\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22 rcv_no($sock_cx); rcv_no($sock_ax); -snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); -rcv_no($sock_ax); -rcv_no($sock_bx); -rcv_no($sock_cx); +#snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); +#rcv_no($sock_ax); +#rcv_no($sock_bx); +#rcv_no($sock_cx); @@ -785,10 +785,10 @@ snd($sock_a, $port_b, rtp(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv_no($sock_c); rcv_no($sock_a); -snd($sock_c, $port_c, rtp(0, 5001, 8320, 0x9876, "\x00" x 160)); -rcv_no($sock_a); -rcv_no($sock_b); -rcv_no($sock_c); +#snd($sock_c, $port_c, rtp(0, 5001, 8320, 0x9876, "\x00" x 160)); +#rcv_no($sock_a); +#rcv_no($sock_b); +#rcv_no($sock_c); snd($sock_bx, $port_ax, "\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00"); rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00$/); @@ -800,10 +800,10 @@ rcv($sock_bx, $port_ax, qr/^\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22 rcv_no($sock_cx); rcv_no($sock_ax); -snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); -rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00$/); -rcv_no($sock_bx); -rcv_no($sock_cx); +#snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); +#rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00$/); +#rcv_no($sock_bx); +#rcv_no($sock_cx);