diff options
Diffstat (limited to 'pjlib-util/src/pjlib-util/resolver.c')
-rw-r--r-- | pjlib-util/src/pjlib-util/resolver.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c index 0a9819f1..debf8cd2 100644 --- a/pjlib-util/src/pjlib-util/resolver.c +++ b/pjlib-util/src/pjlib-util/resolver.c @@ -856,7 +856,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, pj_time_val now; struct res_key key; struct cached_res *cache; - pj_dns_async_query *q; + pj_dns_async_query *q, *p_q = NULL; pj_uint32_t hval; pj_status_t status = PJ_SUCCESS; @@ -870,9 +870,6 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, /* Check type */ PJ_ASSERT_RETURN(type > 0 && type < 0xFFFF, PJ_EINVAL); - if (p_query) - *p_query = NULL; - /* Build resource key for looking up hash tables */ init_res_key(&key, type, name); @@ -991,10 +988,12 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, pj_hash_set_np(resolver->hquerybyres, &q->key, sizeof(q->key), 0, q->hbufkey, q); - if (p_query) - *p_query = q; + p_q = q; on_return: + if (p_query) + *p_query = p_q; + pj_mutex_unlock(resolver->mutex); return status; } |