void DHCPv6SocketRelease(DHCPv6SocketRef * sock_p) { DHCPv6SocketRef sock = *sock_p; int i; if (sock == NULL) { return; } i = dynarray_index(&S_globals->sockets, sock); if (i != -1) { dynarray_remove(&S_globals->sockets, i, NULL); } else { my_log(LOG_ERR, "DHCPv6SocketRelease: %s not in list?", if_name(sock->if_p)); } DHCPv6SocketFreeElement(sock); *sock_p = NULL; if (dynarray_count(&S_globals->sockets) == 0) { DHCPv6SocketReleaseGlobals(&S_globals); } return; }
PRIVATE_EXTERN void RTADVSocketRelease(RTADVSocketRef * sock_p) { RTADVSocketRef sock = *sock_p; int i; if (sock == NULL) { return; } i = dynarray_index(&S_globals->sockets, sock); if (i != -1) { dynarray_remove(&S_globals->sockets, i, NULL); } else { my_log(LOG_NOTICE, "RTADVSocketRelease: %s not in list?", if_name(sock->if_p)); } RTADVSocketFreeElement(sock); *sock_p = NULL; if (dynarray_count(&S_globals->sockets) == 0) { RTADVSocketReleaseGlobals(&S_globals); } return; }