diff --git a/daemon/call.c b/daemon/call.c index ef4e89f35..4db0677b6 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1258,17 +1258,22 @@ static int get_port(struct udp_fd *r, u_int16_t p, const struct call *c) { assert(r->fd == -1); + __C_DBG("attempting to open port %u", p); + mutex_lock(&m->portlock); if (bit_array_isset(m->ports_used, p)) { mutex_unlock(&m->portlock); + __C_DBG("port in use"); return -1; } bit_array_set(m->ports_used, p); mutex_unlock(&m->portlock); + __C_DBG("port locked"); ret = get_port6(r, p, c); if (ret) { + __C_DBG("couldn't open port"); mutex_lock(&m->portlock); bit_array_clear(m->ports_used, p); mutex_unlock(&m->portlock); @@ -1283,6 +1288,7 @@ static int get_port(struct udp_fd *r, u_int16_t p, const struct call *c) { static void release_port(struct udp_fd *r, struct callmaster *m) { if (r->fd == -1 || !r->localport) return; + __C_DBG("releasing port %u", r->localport); mutex_lock(&m->portlock); bit_array_clear(m->ports_used, r->localport); mutex_unlock(&m->portlock);