static int wss_conn_init(struct tcp_connection* c) { struct ws_data *d; int ret; /* allocate the tcp_data and the array of chunks as a single mem chunk */ d = (struct ws_data *)shm_malloc(sizeof(*d)); if (d==NULL) { LM_ERR("failed to create ws states in shm mem\n"); return -1; } d->state = WS_CON_INIT; d->type = WS_NONE; d->code = WS_ERR_NONE; c->proto_data = (void*)d; ret = tls_conn_init(c, &tls_mgm_api); if (ret < 0) { LM_ERR("Cannot initiate the conn\n"); shm_free(d); } return ret; }
static int proto_tls_conn_init(struct tcp_connection* c) { struct tls_data* data; if ( t_dst && tprot.create_trace_message ) { /* this message shall be used in first send function */ data = shm_malloc( sizeof(struct tls_data) ); if ( !data ) { LM_ERR("no more pkg mem!\n"); goto out; } memset( data, 0, sizeof(struct tls_data) ); if ( t_dst && tprot.create_trace_message) { data->tprot = &tprot; data->dest = t_dst; data->net_trace_proto_id = net_trace_proto_id; data->trace_is_on = trace_is_on; data->trace_route_id = trace_filter_route_id; } c->proto_data = data; } else { c->proto_data = 0; } out: return tls_conn_init(c, &tls_mgm_api); }
static int wss_conn_init(struct tcp_connection* c) { struct ws_data *d; int ret; /* allocate the tcp_data and the array of chunks as a single mem chunk */ d = (struct ws_data *)shm_malloc(sizeof(*d)); if (d==NULL) { LM_ERR("failed to create ws states in shm mem\n"); return -1; } memset( d, 0, sizeof( struct ws_data ) ); if ( t_dst && tprot.create_trace_message ) { d->tprot = &tprot; d->dest = t_dst; d->net_trace_proto_id = net_trace_proto_id; d->trace_is_on = trace_is_on; d->trace_route_id = trace_filter_route_id; } d->state = WS_CON_INIT; d->type = WS_NONE; d->code = WS_ERR_NONE; c->proto_data = (void*)d; ret = tls_conn_init(c, &tls_mgm_api); if (ret < 0) { LM_ERR("Cannot initiate the conn\n"); shm_free(d); } return ret; }