From dd6bad19d7fc47cb07a3d4609a3e9d1645b82e44 Mon Sep 17 00:00:00 2001 From: phil <me@filou.se> Date: Sat, 10 Apr 2021 11:17:54 +0200 Subject: [PATCH] faulty deinit fix --- src/utils/sapd/sapd.c | 11 +++++++---- src/utils/sapsrv.c | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/utils/sapd/sapd.c b/src/utils/sapd/sapd.c index 4e4fffe..a845283 100644 --- a/src/utils/sapd/sapd.c +++ b/src/utils/sapd/sapd.c @@ -465,7 +465,7 @@ static int sapsrv_setup() static void sapsrv_teardown() { - if (sapsrv == NULL){ + if (sapsrv){ aes67_sapsrv_stop(sapsrv); sapsrv = NULL; } @@ -663,7 +663,9 @@ static void rav_session_delete(struct rav_session_st * session) // if registered with sapsrv, remove if (session->state == rav_state_sdp_updated || session->state == rav_state_sdp_published){ + fprintf(stderr, "asdf\n"); aes67_sapsrv_session_t sapsrvSession = aes67_sapsrv_session_by_origin(sapsrv, &session->origin); + fprintf(stderr, "asdf2\n"); if (sapsrvSession != NULL){ aes67_sapsrv_session_delete(sapsrv, sapsrvSession, true); } else { @@ -1168,10 +1170,11 @@ static int local_setup(const char * fname) static void local_teardown() { - if (local.sockfd != -1){ - close(local.sockfd); - local.sockfd = -1; + if (local.sockfd == -1) { + return; } + close(local.sockfd); + local.sockfd = -1; if( access(AES67_SAPD_LOCAL_SOCK, F_OK ) == 0 ){ //TODO is this generally safe?? diff --git a/src/utils/sapsrv.c b/src/utils/sapsrv.c index 43b838d..1a9e155 100644 --- a/src/utils/sapsrv.c +++ b/src/utils/sapsrv.c @@ -269,6 +269,7 @@ static int join_mcast_groups(sapsrv_t * server, u32_t scopes) int aes67_sapsrv_leave_mcast_group(int sockfd, u32_t scope, unsigned int ipv6_if) { + assert(sockfd>0); // only assert( ((scope & AES67_SAPSRV_SCOPE_IPv4) == AES67_SAPSRV_SCOPE_IPv4) + ((scope & AES67_SAPSRV_SCOPE_IPv6) == AES67_SAPSRV_SCOPE_IPv6) == 1); @@ -320,6 +321,8 @@ int aes67_sapsrv_leave_mcast_group(int sockfd, u32_t scope, unsigned int ipv6_if static int leave_mcast_groups(sapsrv_t * server, u32_t scopes) { + assert(server); + if ( (scopes & AES67_SAPSRV_SCOPE_IPv4_GLOBAL) && aes67_sapsrv_leave_mcast_group(server->sockfd4, AES67_SAPSRV_SCOPE_IPv4_GLOBAL, server->ipv6_if)){ return EXIT_FAILURE; } -- GitLab