⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resolver.h

📁 基于sip协议的网络电话源码
💻 H
📖 第 1 页 / 共 2 页
字号:
 * @param pf	     Pool factory where the memory pool will be created from. * @param name	     Optional resolver name to identify the instance in  *		     the log. * @param options    Optional options, must be zero for now. * @param timer	     Optional timer heap instance to be used by the resolver. *		     If timer heap is not specified, an internal timer will be *		     created, and application would need to poll the resolver *		     periodically. * @param ioqueue    Optional I/O Queue instance to be used by the resolver. *		     If ioqueue is not specified, an internal one will be *		     created, and application would need to poll the resolver *		     periodically. * @param p_resolver Pointer to receive the resolver instance. * * @return	     PJ_SUCCESS on success, or the appropriate error code, */PJ_DECL(pj_status_t) pj_dns_resolver_create(pj_pool_factory *pf,					    const char *name,					    unsigned options,					    pj_timer_heap_t *timer,					    pj_ioqueue_t *ioqueue,					    pj_dns_resolver **p_resolver);/** * Update the name servers for the DNS resolver. The name servers MUST be * configured before any resolution can be done. The order of nameservers * specifies their priority; the first name server will be tried first * before the next in the list. * * @param resolver  The resolver instance. * @param count     Number of name servers in the array. * @param servers   Array of name server IP addresses or hostnames. If *		    hostname is specified, the hostname must be resolvable *		    with pj_gethostbyname(). * @param ports	    Optional array of ports. If this argument is NULL, *		    the nameserver will use default port. * * @return	    PJ_SUCCESS on success, or the appropriate error code, */PJ_DECL(pj_status_t) pj_dns_resolver_set_ns(pj_dns_resolver *resolver,					    unsigned count,					    const pj_str_t servers[],					    const pj_uint16_t ports[]);/** * Get the resolver current settings. * * @param resolver  The resolver instance. * @param st	    Buffer to be filled up with resolver settings. * * @return	    The query timeout setting, in seconds. */PJ_DECL(pj_status_t) pj_dns_resolver_get_settings(pj_dns_resolver *resolver,						  pj_dns_settings *st);/** * Modify the resolver settings. Application should initialize the settings * by retrieving current settings first before applying new settings, to * ensure that all fields are initialized properly. * * @param resolver  The resolver instance. * @param st	    The resolver settings. * * @return	    PJ_SUCCESS on success, or the appropriate error code, */PJ_DECL(pj_status_t) pj_dns_resolver_set_settings(pj_dns_resolver *resolver,						  const pj_dns_settings *st);/** * Poll for events from the resolver. This function MUST be called  * periodically when the resolver is using it's own timer or ioqueue * (in other words, when NULL is specified as either \a timer or * \a ioqueue argument in #pj_dns_resolver_create()). * * @param resolver  The resolver instance. * @param timeout   Maximum time to wait for event occurence. If this *		    argument is NULL, this function will wait forever *		    until events occur. */PJ_DECL(void) pj_dns_resolver_handle_events(pj_dns_resolver *resolver,					    const pj_time_val *timeout);/** * Destroy DNS resolver instance. * * @param resolver  The resolver object to be destryed * @param notify    If non-zero, all pending asynchronous queries will be *		    cancelled and its callback will be called. If FALSE, *		    then no callback will be called. * * @return	    PJ_SUCCESS on success, or the appropriate error code, */PJ_DECL(pj_status_t) pj_dns_resolver_destroy(pj_dns_resolver *resolver,					     pj_bool_t notify);/** * Create and start asynchronous DNS query for a single resource. Depending * on whether response cache is available, this function will either start * an asynchronous DNS query or call the callback immediately. * * If response is not available in the cache, an asynchronous query will be * started, and callback will be called at some time later when the query * completes. If \a p_query argument is not NULL, it will be filled with * the asynchronous query object. * * If response is available in the cache, the callback will be called  * immediately before this function returns. In this case, if \a p_query * argument is not NULL, the value will be set to NULL since no new query * is started. * * @param resolver  The resolver object. * @param name	    The name to be resolved. * @param type	    The type of resource (see #pj_dns_type constants). * @param options   Optional options, must be zero for now. * @param cb	    Callback to be called when the query completes, *		    either successfully or with failure. * @param user_data Arbitrary user data to be associated with the query, *		    and which will be given back in the callback. * @param p_query   Optional pointer to receive the query object, if one *		    was started. If this pointer is specified, a NULL may *		    be returned if response cache is available immediately. * * @return	    PJ_SUCCESS if either an asynchronous query has been  *		    started successfully or response cache is available and *		    the user callback has been called. */PJ_DECL(pj_status_t) pj_dns_resolver_start_query(pj_dns_resolver *resolver,						 const pj_str_t *name,						 int type,						 unsigned options,						 pj_dns_callback *cb,						 void *user_data,						 pj_dns_async_query **p_query);/** * Cancel a pending query. * * @param query	    The pending asynchronous query to be cancelled. * @param notify    If non-zero, the callback will be called with failure *		    status to notify that the query has been cancelled. * * @return	    PJ_SUCCESS on success, or the appropriate error code, */PJ_DECL(pj_status_t) pj_dns_resolver_cancel_query(pj_dns_async_query *query,						  pj_bool_t notify);/** * Put the specified DNS packet into DNS cache. This function is mainly used * for testing the resolver, however it can also be used to inject entries * into the resolver. * * The packet MUST contain either answer section or query section so that * it can be indexed. * * @param resolver  The resolver instance. * @param pkt	    DNS packet to be added to the DNS cache. If the packet *		    matches existing entry, it will update the entry. * @param set_ttl   If the value is PJ_FALSE, the entry will not expire  *		    (so use with care). Otherwise cache expiration will be *		    calculated based on the TTL of the answeres. * * @return	    PJ_SUCCESS on success, or the appropriate error code. */PJ_DECL(pj_status_t) pj_dns_resolver_add_entry(pj_dns_resolver *resolver,					       const pj_dns_parsed_packet *pkt,					       pj_bool_t set_ttl);/** * Get the total number of response in the response cache. * * @param resolver  The resolver instance. * * @return	    Current number of entries being stored in the response *		    cache. */PJ_DECL(unsigned) pj_dns_resolver_get_cached_count(pj_dns_resolver *resolver);/** * Dump resolver state to the log. * * @param resolver  The resolver instance. * @param detail    Will print detailed entries. */PJ_DECL(void) pj_dns_resolver_dump(pj_dns_resolver *resolver,				   pj_bool_t detail);/** * @} */PJ_END_DECL#endif	/* __PJLIB_UTIL_RESOLVER_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -