summaryrefslogtreecommitdiff
path: root/res/res_pjsip_transport_websocket.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip_transport_websocket.c')
-rw-r--r--res/res_pjsip_transport_websocket.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c
index 3157a940f..cdf6c6733 100644
--- a/res/res_pjsip_transport_websocket.c
+++ b/res/res_pjsip_transport_websocket.c
@@ -303,14 +303,22 @@ static int get_write_timeout(void)
return write_timeout;
}
-/*!
- \brief WebSocket connection handler.
- */
+static struct ast_taskprocessor *create_websocket_serializer(void)
+{
+ char tps_name[AST_TASKPROCESSOR_MAX_NAME + 1];
+
+ /* Create name with seq number appended. */
+ ast_taskprocessor_build_name(tps_name, sizeof(tps_name), "pjsip/websocket");
+
+ return ast_sip_create_serializer(tps_name);
+}
+
+/*! \brief WebSocket connection handler. */
static void websocket_cb(struct ast_websocket *session, struct ast_variable *parameters, struct ast_variable *headers)
{
- struct ast_taskprocessor *serializer = NULL;
+ struct ast_taskprocessor *serializer;
struct transport_create_data create_data;
- struct ws_transport *transport = NULL;
+ struct ws_transport *transport;
struct transport_read_data read_data;
if (ast_websocket_set_nonblock(session)) {
@@ -323,7 +331,8 @@ static void websocket_cb(struct ast_websocket *session, struct ast_variable *par
return;
}
- if (!(serializer = ast_sip_create_serializer())) {
+ serializer = create_websocket_serializer();
+ if (!serializer) {
ast_websocket_unref(session);
return;
}