Hello,

is this a question because you got some issue testing your function?

I am not that familiar with the internals of websocket connection management, but there is a function for closing a connection, have you looked at it?

Cheers,
Daniel

On 20.11.18 13:25, Andrey Deykunov wrote:
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









_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference -- www.kamailioworld.com
Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- www.asipto.com