void ChannelServer::connectWorld() { m_worldConnection = new WorldServerConnection; ConnectionManager::Instance()->connect(m_worldIp, m_worldPort, getWorldConnection()); string interPassword = getInterPassword(); IpMatrix externalIp = getExternalIp(); getWorldConnection()->sendAuth(interPassword, externalIp); }
void ChannelServer::loadData() { Initializing::checkSchemaVersion(); Initializing::checkMcdbVersion(); Initializing::loadData(); WorldServerConnection *loginPlayer = new WorldServerConnection; ConnectionManager::Instance()->connect(m_loginIp, m_loginPort, loginPlayer); string interPassword = getInterPassword(); IpMatrix externalIp = getExternalIp(); loginPlayer->sendAuth(interPassword, externalIp); }
int main(int argc, char **argv) { int listenfd, connfd, n; EL *el; CF *conf; char *opName[] = { "Listen", "ServerPath", "ClusterManagerName", "ClusterManagerPort"}; char *ptr; socklen_t addrlen; char BUFF[MAXLINE]; struct sockaddr_storage cliaddr; if (argc > 2) err_quit("usage: node [path to config file] <--help>\n"); if (argc == 2 && strcmp(argv[1],"--help") != 0) conf = cfileInit(argv[1],opName); else if (argc == 1) conf = cfileInit(DB_CONF,opName); connfd = tcpConnect( getOption(conf,"ClusterManagerName"), getOption(conf,"ClusterManagerPort")); if (connfd < 0) err_quit("error for connecting cluster manager.\n"); strcpy(BUFF,"REG "); getExternalIp(BUFF + 4); strcat(BUFF,"\r\n"); write(connfd,BUFF,strlen(BUFF)); if ((n = read(connfd,BUFF,MAXLINE)) > 0) { BUFF[n] = '\0'; if (strcmp(BUFF,"REG ERR\r\n") == 0) err_quit("error for registering node in cluster"); } else err_quit("error for registering node in cluster"); close(connfd); if ((ptr = getOption(conf,"Listen")) != NULL) listenfd = tcpListen(getOption(conf,"ServerName"),ptr,&addrlen); else err_quit("error for opening listen port.\n"); if ((el = el_open()) == NULL) err_quit("node error for creating epoll.\n"); el_addFileEvent(el,listenfd,AE_READABLE,sendRequesData,(void *)conf); el_start(el,AE_BLOCK); el_close(el); }