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