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

📄 opensockets.c

📁 适合于Unix/Linux下的一个持久数据库连接池
💻 C
字号:
// Copyright (c) 1999-2001  David Muse// See the file COPYING for more information#include <sqlrconnection.h>bool sqlrconnection_svr::openSockets() {	#ifdef SERVER_DEBUG	debugPrint("connection",0,"listening on sockets...");	#endif	// get the next available unix socket and open it	if (cfgfl->getListenOnUnix() && unixsocketptr && unixsocketptr[0]) {		if (!serversockun) {			serversockun=new unixserversocket();			if (serversockun->listen(unixsocket,0000,5)) {				#ifdef SERVER_DEBUG				size_t	stringlen=26+					charstring::length(unixsocket)+1;				char	*string=new char[stringlen];				snprintf(string,stringlen,					"listening on unix socket: %s",								unixsocket);				debugPrint("connection",1,string);				delete[] string;				#endif				addFileDescriptor(serversockun);			} else {				fprintf(stderr,"Could not listen on ");				fprintf(stderr,"unix socket: ");				fprintf(stderr,"%s\n",unixsocket);				fprintf(stderr,"Make sure that the file and ");				fprintf(stderr,"directory are readable ");				fprintf(stderr,"and writable.\n\n");				delete serversockun;				return false;			}		}	}	// open the next available inet socket	if (cfgfl->getListenOnInet()) {		if (!serversockin) {			const char * const *addresses=cfgfl->getAddresses();			serversockincount=cfgfl->getAddressCount();			serversockin=new inetserversocket *[serversockincount];			bool	failed=false;			for (uint64_t index=0;					index<serversockincount;					index++) {				serversockin[index]=NULL;				if (failed) {					continue;				}				serversockin[index]=new inetserversocket();				if (serversockin[index]->					listen(addresses[index],inetport,5)) {					if (!inetport) {						inetport=serversockin[index]->								getPort();					}					#ifdef SERVER_DEBUG					char	string[33];					snprintf(string,33,						"listening on inet socket: %d",						inetport);					debugPrint("connection",1,string);					#endif						addFileDescriptor(serversockin[index]);				} else {					fprintf(stderr,"Could not listen on ");					fprintf(stderr,"inet socket: ");					fprintf(stderr,"%d\n\n",inetport);					failed=true;				}			}			if (failed) {				for (uint64_t index=0;						index<serversockincount;						index++) {					delete serversockin[index];				}				delete[] serversockin;				serversockincount=0;				return false;			}		}	}	#ifdef SERVER_DEBUG	debugPrint("connection",0,"done listening on sockets");	#endif	return true;}

⌨️ 快捷键说明

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