Browse Source

Merge branch 'tcp_sockets_leak' of https://github.com/vitalikvoip/rtpengine

Change-Id: I2733a0fb8f48a7eacaff586889abbf812fa88bbf
changes/68/29568/1
Richard Fuchs 7 years ago
parent
commit
c262956b6d
1 changed files with 14 additions and 3 deletions
  1. +14
    -3
      daemon/tcp_listener.c

+ 14
- 3
daemon/tcp_listener.c View File

@ -172,19 +172,30 @@ static void streambuf_listener_newconn(struct obj *p, socket_t *newsock, char *a
i.timer = streambuf_stream_timer;
i.obj = &s->obj;
if (poller_add_item(listener->poller, &i))
goto fail;
if (cb->newconn_func)
cb->newconn_func(s);
obj_hold(s);
mutex_lock(&listener->lock);
g_hash_table_insert(listener->streams, s, s); // hand over ref
mutex_unlock(&listener->lock);
if (poller_add_item(listener->poller, &i))
goto fail;
obj_put(s);
return;
fail:
mutex_lock(&listener->lock);
int ret = g_hash_table_remove(listener->streams, s);
mutex_unlock(&listener->lock);
if (ret)
obj_put(s);
obj_put(s);
}


Loading…
Cancel
Save