2、mer.h>#include#include#include#include#include#include#include#defineNS_MAIN1#include#endif#ifdefDLZ#include#endifstatictybs_
3、boolean_twant_stats=TYBS_FALSE;staticcharprogram_name[TYBS_DIR_NAMEMAX]="named";staticcharabsolute_conffile[TYBS_DIR_PATHMAX];staticcharsaved_command_line[512];staticcharversion[512];staticunsignedintmaxsocks=0;voidns_main_earlywarning(constchar*format,...){va_lista
4、rgs;va_start(args,format);if(ns_g_lctx!=NULL){tybs_log_vwrite(ns_g_lctx,NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN,TYBS_LOG_WARNING,format,args);}else{fprintf(stderr,"%s:",program_name);vfprintf(stderr,format,args);fprintf(stderr,"");fflush(stderr);}va_end(args);}Vo
5、idns_main_earlyfatal(constchar*format,...){va_listargs;.va_start(args,format);if(ns_g_lctx!=NULL){tybs_log_vwrite(ns_g_lctx,NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN,TYBS_LOG_CRITICAL,format,args);tybs_log_write(ns_g_lctx,NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN,TYBS
6、_LOG_CRITICAL,"exiting(duetoearlyfatalerror)");}else{fprintf(stderr,"%s:",program_name);vfprintf(stderr,format,args);fprintf(stderr,"");fflush(stderr);}va_end(args);exit(1);}staticvoidassertion_failed(constchar*file,intline,tybs_assertiontype_ttype,constchar*cond)
7、{if(ns_g_lctx!=NULL){tybs_assertion_setcallback(NULL);tybs_log_write(ns_g_lctx,NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN,TYBS_LOG_CRITICAL,"%s:%d:%s(%s)failed",file,line,tybs_assertion_typetotext(type),cond);tybs_log_write(ns_g_lctx,NS_LOGCATEGORY_GENERAL,NS_LOGMODUL
8、E_MAIN,TYBS_LOG_CRITICAL,"exiting(duetoassertionfailure)");}else{fprintf(stderr,"%s:%d:%s(%s)failed",file,line,tybs_assertion_typetotext