Ignore:
Timestamp:
Oct 8, 2006 12:39:34 PM (18 years ago)
Author:
bennylp
Message:

Major addition to support DNS SRV resolution in PJSIP:

  • added DNS asynchronous/caching resolver engine in PJLIB-UTIL (resolver.[hc])
  • modified SIP resolver (sip_resolve.c) to properly perform DNS SRV/A resolution when DNS resolution is enabled.
  • added dns_test.c in PJSIP-TEST for testing the SIP resolver.
  • added nameserver configuration in PJSUA-LIB
  • added "--nameserver" option in PJSUA.
  • updated project/Makefiles and doxygen documentation.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_endpoint.c

    r685 r753  
    485485 
    486486    /* Create asynchronous DNS resolver. */ 
    487     endpt->resolver = pjsip_resolver_create(endpt->pool); 
    488     if (!endpt->resolver) { 
     487    status = pjsip_resolver_create(endpt->pool, &endpt->resolver); 
     488    if (status != PJ_SUCCESS) { 
    489489        PJ_LOG(4, (THIS_FILE, "Error creating resolver instance")); 
    490490        goto on_error; 
     
    927927 
    928928/* 
     929 * Create the DNS resolver instance.  
     930 */ 
     931PJ_DEF(pj_status_t) pjsip_endpt_create_resolver(pjsip_endpoint *endpt, 
     932                                                pj_dns_resolver **p_resv) 
     933{ 
     934#if PJSIP_HAS_RESOLVER 
     935    PJ_ASSERT_RETURN(endpt && p_resv, PJ_EINVAL); 
     936    return pj_dns_resolver_create( endpt->pf, NULL, 0, endpt->timer_heap, 
     937                                   endpt->ioqueue, p_resv); 
     938#else 
     939    PJ_UNUSED_ARG(endpt); 
     940    PJ_UNUSED_ARG(p_resv); 
     941    pj_assert(!"Resolver is disabled (PJSIP_HAS_RESOLVER==0)"); 
     942    return PJ_EINVALIDOP; 
     943#endif 
     944} 
     945 
     946/* 
     947 * Set DNS resolver to be used by the SIP resolver. 
     948 */ 
     949PJ_DEF(pj_status_t) pjsip_endpt_set_resolver( pjsip_endpoint *endpt, 
     950                                              pj_dns_resolver *resv) 
     951{ 
     952    return pjsip_resolver_set_resolver(endpt->resolver, resv); 
     953} 
     954 
     955/* 
     956 * Get the DNS resolver being used by the SIP resolver. 
     957 */ 
     958PJ_DEF(pj_dns_resolver*) pjsip_endpt_get_resolver(pjsip_endpoint *endpt) 
     959{ 
     960    PJ_ASSERT_RETURN(endpt, NULL); 
     961    return pjsip_resolver_get_resolver(endpt->resolver); 
     962} 
     963 
     964/* 
    929965 * Resolve 
    930966 */ 
     
    10371073               pj_pool_get_used_size(endpt->pool))); 
    10381074 
     1075    /* Resolver */ 
     1076#if PJSIP_HAS_RESOLVER 
     1077    if (pjsip_endpt_get_resolver(endpt)) { 
     1078        pj_dns_resolver_dump(pjsip_endpt_get_resolver(endpt), detail); 
     1079    } 
     1080#endif 
     1081 
    10391082    /* Transports.  
    10401083     */ 
Note: See TracChangeset for help on using the changeset viewer.