///////////////////// // Initializes network bool InitNetworkSystem() { curl_global_init(CURL_GLOBAL_ALL); nlSystemUseChangeLock.startWriteAccess(); bNetworkInited = false; if(!nlInit()) { SystemError("nlInit failed"); nlSystemUseChangeLock.endWriteAccess(); return false; } if(!nlSelectNetwork(NL_IP)) { SystemError("could not select IP-based network"); nlSystemUseChangeLock.endWriteAccess(); return false; } bNetworkInited = true; dnsCache = new ThreadVar<dnsCacheT>(); #ifndef WIN32 //sigignore(SIGPIPE); signal(SIGPIPE, sigpipe_handler); #endif nlSystemUseChangeLock.endWriteAccess(); return true; }
////////////////// // Shutdowns the network system bool QuitNetworkSystem() { nlSystemUseChangeLock.startWriteAccess(); nlShutdown(); bNetworkInited = false; delete dnsCache; dnsCache = NULL; nlSystemUseChangeLock.endWriteAccess(); curl_global_cleanup(); return true; }