Hi guys,
I've implemented an rpc call that closes all WS connections:
void ws_rpc_close_all(rpc_t *rpc, void *ctx)
{
ws_connection_t **list = NULL, **list_head = NULL;
ws_connection_t *wsc = NULL;
int ret;
list_head = wsconn_get_list();
if(!list_head)
return;
list = list_head;
wsc = *list_head;
while(wsc) {
LM_WARN("Closing connection\n");
ret = close_connection(&wsc, LOCAL_CLOSE, 1000,
str_status_normal_closure);
wsc = *(++list);
}
wsconn_put_list(list_head);
}
Please take a look. Can I call close_connection() and perform list
iterations in this function not using WSCONN_LOCK?
Thanks,
Andrey