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/pjsua-lib/pjsua_core.c

    r742 r753  
    455455        status = pjsua_reconfigure_logging(log_cfg); 
    456456        PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     457    } 
     458 
     459    /* If nameserver is configured, create DNS resolver instance and 
     460     * set it to be used by SIP resolver. 
     461     */ 
     462    if (ua_cfg->nameserver_count) { 
     463#if PJSIP_HAS_RESOLVER 
     464        pj_dns_resolver *resv; 
     465        unsigned i; 
     466 
     467        /* Create DNS resolver */ 
     468        status = pjsip_endpt_create_resolver(pjsua_var.endpt, &resv); 
     469        PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
     470 
     471        /* Configure nameserver for the DNS resolver */ 
     472        status = pj_dns_resolver_set_ns(resv, ua_cfg->nameserver_count, 
     473                                        ua_cfg->nameserver, NULL); 
     474        if (status != PJ_SUCCESS) { 
     475            pjsua_perror(THIS_FILE, "Error setting nameserver", status); 
     476            return status; 
     477        } 
     478 
     479        /* Set this DNS resolver to be used by the SIP resolver */ 
     480        status = pjsip_endpt_set_resolver(pjsua_var.endpt, resv); 
     481        if (status != PJ_SUCCESS) { 
     482            pjsua_perror(THIS_FILE, "Error setting DNS resolver", status); 
     483            return status; 
     484        } 
     485 
     486        /* Print nameservers */ 
     487        for (i=0; i<ua_cfg->nameserver_count; ++i) { 
     488            PJ_LOG(4,(THIS_FILE, "Nameserver %.*s added", 
     489                      (int)ua_cfg->nameserver[i].slen, 
     490                      ua_cfg->nameserver[i].ptr)); 
     491        } 
     492#else 
     493        PJ_LOG(2,(THIS_FILE,  
     494                  "DNS resolver is disabled (PJSIP_HAS_RESOLVER==0)")); 
     495#endif 
    457496    } 
    458497 
Note: See TracChangeset for help on using the changeset viewer.