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

📄 server_info.c

📁 一个C程序
💻 C
字号:
#include "emv_global.h"#include "emv_dbfunc.h"#include "server_info.h"int giIsMajor = 1;#define PORT_TYPE_UDP	2#define PORT_TYPE_TCP	1char g_platform_ip[MAX_IP_LEN] = "127.0.0.1";int g_platform_id = 1;char g_ip_css[MAX_IP_LEN]	= "127.0.0.1";char g_ip_sm[MAX_IP_LEN]		= "127.0.0.1";char g_ip_ems[MAX_IP_LEN]	= "127.0.0.1";char g_ip_tms[MAX_IP_LEN]	= "127.0.0.1";char g_ip_sps[MAX_IP_LEN]	= "127.0.0.1";char g_ip_dcs[MAX_IP_LEN]	= "127.0.0.1";char g_ip_ms[MAX_IP_LEN]		= "127.0.0.1";char g_ip_arppoll[MAX_IP_LEN]	= "127.0.0.1";int g_port_css_udp		= 3001;int g_port_sm_udp		= 3002;int g_port_ems_udp		= 3005;int g_port_tms_udp		= 3006;int g_port_sps_udp		= 3007;int g_port_dcs_udp		= 3008;int g_port_ms_udp		= 3011;int g_port_arppoll_udp	= 3090;static int save_server_record(int iServerId, const char *pServerIp, int iServerPort);int set_major_flag(int flag){	int old_flag;		old_flag = giIsMajor;	giIsMajor = flag;		return old_flag;}int get_major_flag(void){	return giIsMajor;}int init_server_info(const char *platform_ip){	char sql[256];	int retcode;	emv_db_record *pDbResult;	emv_db_record *pDbRecord;	emv_db_field *pDbField;	int iRecNum;	char sTableName[32];	int iServerId;	char *pServerIp;	int iServerPort;	if (!platform_ip) {		emv_debug("platform_ip is null");		return -1;	}	/* 平台IP */	memset(g_platform_ip, 0, sizeof(g_platform_ip));	strncpy(g_platform_ip, platform_ip, sizeof(g_platform_ip)-1);	emv_debug("g_platform_ip[%s]", g_platform_ip);		/* 平台ID */	snprintf(sql, sizeof(sql), 		"select PlatformID from PlatformInfo where PlatformIP='%s'",		g_platform_ip);	retcode = select_int_result(&g_platform_id, giDbHandle1, sql);	if (retcode < 0) {		emv_debug("select_int_result failed(%s)", sql);		return -1;	}	emv_debug("g_platform_id[%d]", g_platform_id);	/* 获取服务信息 */	memset(sTableName, 0, sizeof(sTableName));	if (giIsMajor) {		strncpy(sTableName, "ServerInfo", sizeof(sTableName)-1);	}	else {		strncpy(sTableName, "ServerNatInfo", sizeof(sTableName)-1);	}	snprintf(sql, sizeof(sql),		"select ServerID,ServerIP,ServerPort from %s "		"where ServerPortType=%d",		sTableName, PORT_TYPE_UDP);	pDbResult = emv_db_select(giDbHandle1, sql, &iRecNum);	if (iRecNum < 0) {		emv_debug("emv_db_select failed(%s)", sql);		return -1;	}	pDbRecord = pDbResult;	while (pDbRecord) {		pDbField = pDbRecord->field;		if (!pDbField) break;		iServerId = atoi(pDbField->value);		pDbField = pDbField->next;		if (!pDbField) break;		pServerIp = pDbField->value;		pDbField = pDbField->next;		if (!pDbField) break;		iServerPort = atoi(pDbField->value);				save_server_record(iServerId, pServerIp, iServerPort);		pDbRecord = pDbRecord->next;	}	free_record_link(pDbResult);		return 0;}int dump_server_info(void){	emv_debug("g_ip_css[%s], g_port_css_udp[%d]", g_ip_css, g_port_css_udp);	emv_debug("g_ip_sm[%s], g_port_sm_udp[%d]", g_ip_sm, g_port_sm_udp);	emv_debug("g_ip_ems[%s], g_port_ems_udp[%d]", g_ip_ems, g_port_ems_udp);	emv_debug("g_ip_tms[%s], g_port_tms_udp[%d]", g_ip_tms, g_port_tms_udp);	emv_debug("g_ip_sps[%s], g_port_sps_udp[%d]", g_ip_sps, g_port_sps_udp);	emv_debug("g_ip_dcs[%s], g_port_dcs_udp[%d]", g_ip_dcs, g_port_dcs_udp);	emv_debug("g_ip_ms[%s], g_port_ms_udp[%d]", g_ip_ms, g_port_ms_udp);	emv_debug("g_ip_arppoll[%s], g_port_arppoll_udp[%d]", g_ip_arppoll, g_port_arppoll_udp);	return 0;}static int save_server_record(int iServerId, const char *pServerIp, int iServerPort){	if (!pServerIp) {		emv_debug("pServerIp is null");		return -1;	}	switch (iServerId) {		case SERVER_ID_CSS:			memset(g_ip_css, 0, sizeof(g_ip_css));			strncpy(g_ip_css, pServerIp, sizeof(g_ip_css)-1);			g_port_css_udp = iServerPort;			break;		case SERVER_ID_SM:			memset(g_ip_sm, 0, sizeof(g_ip_sm));			strncpy(g_ip_sm, pServerIp, sizeof(g_ip_sm)-1);			g_port_sm_udp = iServerPort;			break;		case SERVER_ID_EMS:			memset(g_ip_ems, 0, sizeof(g_ip_ems));			strncpy(g_ip_ems, pServerIp, sizeof(g_ip_ems)-1);			g_port_ems_udp = iServerPort;			break;		case SERVER_ID_TMS:			memset(g_ip_tms, 0, sizeof(g_ip_tms));			strncpy(g_ip_tms, pServerIp, sizeof(g_ip_tms)-1);			g_port_tms_udp = iServerPort;			break;		case SERVER_ID_SPS:			memset(g_ip_sps, 0, sizeof(g_ip_sps));			strncpy(g_ip_sps, pServerIp, sizeof(g_ip_sps)-1);			g_port_sps_udp = iServerPort;			break;		case SERVER_ID_DCS:			memset(g_ip_dcs, 0, sizeof(g_ip_dcs));			strncpy(g_ip_dcs, pServerIp, sizeof(g_ip_dcs)-1);			g_port_dcs_udp = iServerPort;			break;		case SERVER_ID_MS:			memset(g_ip_ms, 0, sizeof(g_ip_ms));			strncpy(g_ip_ms, pServerIp, sizeof(g_ip_ms)-1);			g_port_ms_udp = iServerPort;			break;		case SERVER_ID_ARPPOLL:			memset(g_ip_arppoll, 0, sizeof(g_ip_arppoll));			strncpy(g_ip_arppoll, pServerIp, sizeof(g_ip_arppoll)-1);			g_port_arppoll_udp = iServerPort;			break;	}	return 0;}

⌨️ 快捷键说明

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