bool Daemon_Singleton::start() { // initialize log if (isLogging) { if (isDaemon) { std::string logfile_path = IsService () ? "/var/log" : i2p::util::filesystem::GetDataDir().string(); #ifndef _WIN32 logfile_path.append("/i2pd.log"); #else logfile_path.append("\\i2pd.log"); #endif StartLog (logfile_path); } else StartLog (""); // write to stdout } d.httpServer = new i2p::util::HTTPServer(i2p::util::config::GetArg("-httpport", 7070)); d.httpServer->Start(); LogPrint("HTTP Server started"); i2p::data::netdb.Start(); LogPrint("NetDB started"); i2p::transport::transports.Start(); LogPrint("Transports started"); i2p::tunnel::tunnels.Start(); LogPrint("Tunnels started"); i2p::client::context.Start (); LogPrint("Client started"); return true; }
void StartI2P (std::ostream * logStream) { if (logStream) StartLog (logStream); else StartLog (i2p::util::filesystem::GetFullPath (i2p::util::filesystem::GetAppName () + ".log")); LogPrint(eLogInfo, "API: starting NetDB"); i2p::data::netdb.Start(); LogPrint(eLogInfo, "API: starting Transports"); i2p::transport::transports.Start(); LogPrint(eLogInfo, "API: starting Tunnels"); i2p::tunnel::tunnels.Start(); }
void StartI2P (std::ostream * logStream) { if (logStream) StartLog (logStream); else StartLog (i2p::util::filesystem::GetAppName () + ".log"); i2p::data::netdb.Start(); LogPrint("NetDB started"); i2p::transport::transports.Start(); LogPrint("Transports started"); i2p::tunnel::tunnels.Start(); LogPrint("Tunnels started"); }
bool Daemon_Singleton::start() { // initialize log if (isLogging) { if (isDaemon) { std::string logfile_path = i2p::util::filesystem::GetDataDir().string(); #ifndef _WIN32 logfile_path.append("/debug.log"); #else logfile_path.append("\\debug.log"); #endif StartLog (logfile_path); } else StartLog (""); // write to stdout } d.httpServer = new i2p::util::HTTPServer(i2p::util::config::GetArg("-httpport", 7070)); d.httpServer->Start(); LogPrint("HTTP Server started"); i2p::data::netdb.Start(); LogPrint("NetDB started"); i2p::transports.Start(); LogPrint("Transports started"); i2p::tunnel::tunnels.Start(); LogPrint("Tunnels started"); i2p::garlic::routing.Start(); LogPrint("Routing started"); i2p::stream::StartStreaming(); LogPrint("Streaming started"); d.httpProxy = new i2p::proxy::HTTPProxy(i2p::util::config::GetArg("-httpproxyport", 4446)); d.httpProxy->Start(); LogPrint("HTTP Proxy started"); d.socksProxy = new i2p::proxy::SOCKSProxy(i2p::util::config::GetArg("-socksproxyport", 4447)); d.socksProxy->Start(); LogPrint("SOCKS Proxy Started"); std::string ircDestination = i2p::util::config::GetArg("-ircdest", ""); if (ircDestination.length () > 0) // ircdest is presented { d.ircTunnel = new i2p::stream::I2PClientTunnel (d.socksProxy->GetService (), ircDestination, i2p::util::config::GetArg("-ircport", 6668)); d.ircTunnel->Start (); LogPrint("IRC tunnel started"); } return true; }
CWriteLogThread::CWriteLogThread() { m_hLogThreadEndEvt = NULL; m_hLogThread = NULL; m_dwLogThreadID = 0; m_bStartFlag = FALSE; m_nLogLevel = FOR_DEBUG; m_nLogFileIndex = 0; m_bLogListFull = FALSE; m_nLogListCount = 0; m_uBytesWritten = 0; m_uMaxFileSize = 1024 * 1024 * 64; //日志文件大小最大值 64M m_strCurrData = CTime::GetCurrentTime().Format("%Y:%m:%d"); m_strLastCleanupLogFileDate = m_strCurrData; m_nLogFileCleanupDate = 0; memset(m_strAppLogDir,0,_MAX_PATH); //创建保存日志文件的目录 CreateCurrAppLogDir(); UpDataLogFileName(); StartLog(); }
int process_addr_discover_reply(Header *header, ChordPacketArgs *args, AddrDiscoverReply *msg, Node *from) { ChordServer *srv = args->srv; LOG_PROCESS(&from->id, &from->addr, from->port); if (!verify_ticket(srv->ticket_salt, srv->ticket_salt_len, srv->ticket_hash_len, msg->ticket.data, msg->ticket.len, "c6s", CHORD_ADDR_DISCOVER, &from->addr, from->port)) return CHORD_INVALID_TICKET; if (IN6_IS_ADDR_UNSPECIFIED(&srv->node.addr)) { v6_addr_set(&srv->node.addr, msg->addr.data); get_address_id(&srv->node.id, &srv->node.addr, srv->node.port); chord_update_range(srv, &srv->node.id, &srv->node.id); StartLog(INFO); PartialLog("address: [%s]:%d, ", v6addr_to_str(&srv->node.addr), srv->node.port); PartialLog("node id: "); print_chordID(clog_file_logger()->fp, &srv->node.id); EndLog(); Info("Stabilizing every %u.%u seconds", STABILIZE_PERIOD / 1000000UL, STABILIZE_PERIOD % 1000000UL); event_del(srv->discover_addr_event); struct timeval timeout; timeout.tv_sec = STABILIZE_PERIOD / 1000000UL; timeout.tv_usec = STABILIZE_PERIOD % 1000000UL; event_add(srv->stab_event, &timeout); } return CHORD_NO_ERROR; }
void XaLibControllerFrontEnd::OnStart(const string& ConfFile) { try { LoadXmlConfFile(ConfFile); StartLog(); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"########################### STARTING FRONT END ACTION LOG ############################"); //StartDb(); StartHttp(); //GetServerInfo(); //GetClientInfo(); SESSION.FrontEndIp=HTTP.GetServerIpAddress(); SESSION.ClientIp=HTTP.GetClientIpAddress(); GetLayout(); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"IP Address Client-> "+SESSION.ClientIp); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Ip Address Front End Server -> "+SESSION.FrontEndIp); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Read HttpString -> " + REQUEST.HeadersString); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Request Language -> "+REQUEST.Language); // LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Request Device -> "+REQUEST.Device); //RESPONSE.ResponseType=REQUEST.ResponseType; } catch (int e) { throw; } };
BOOL WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { BOOL ret; MSG msg; hWndMain = CreateDialogParam(hInstance, MAKEINTRESOURCE(IDD_DIALOGBAR), 0, MainDlgProc, 0); ShowWindow(hWndMain, nCmdShow); StartLog(); BASE_InitializeServerList(); while((ret = GetMessage(&msg, 0, 0, 0)) != 0) { if(ret == -1) /* error found */ return -1; if(!IsDialogMessage(hWndMain, &msg)) { TranslateMessage(&msg); /* translate virtual-key messages */ DispatchMessage(&msg); /* send it to dialog procedure */ } } return TRUE; }
void LogPrecache( char const *soundname ) { if ( !m_bLogPrecache ) return; // Make sure we only show the message once if ( UTL_INVAL_SYMBOL != m_PrecachedScriptSounds.Find( soundname ) ) return; if (m_hPrecacheLogFile == FILESYSTEM_INVALID_HANDLE) { StartLog(); } m_PrecachedScriptSounds.AddString( soundname ); if (m_hPrecacheLogFile != FILESYSTEM_INVALID_HANDLE) { filesystem->Write("\"", 1, m_hPrecacheLogFile); filesystem->Write(soundname, Q_strlen(soundname), m_hPrecacheLogFile); filesystem->Write("\"\n", 2, m_hPrecacheLogFile); } else { Warning( "Disabling precache logging due to file i/o problem!!!\n" ); m_bLogPrecache = false; } }
// Precache all wave files referenced in wave or rndwave keys virtual void LevelInitPreEntity() { char mapname[ 256 ]; #if !defined( CLIENT_DLL ) StartLog(); Q_snprintf( mapname, sizeof( mapname ), "maps/%s", STRING( gpGlobals->mapname ) ); #else Q_strncpy( mapname, engine->GetLevelName(), sizeof( mapname ) ); #endif Q_FixSlashes( mapname ); Q_strlower( mapname ); // Load in any map specific overrides char scriptfile[ 512 ]; Q_StripExtension( mapname, scriptfile, sizeof( scriptfile ) ); Q_strncat( scriptfile, "_level_sounds.txt", sizeof( scriptfile ), COPY_ALL_CHARACTERS ); if ( filesystem->FileExists( scriptfile, "GAME" ) ) { soundemitterbase->AddSoundOverrides( scriptfile ); } #if !defined( CLIENT_DLL ) for ( int i=soundemitterbase->First(); i != soundemitterbase->InvalidIndex(); i=soundemitterbase->Next( i ) ) { CSoundParametersInternal *pParams = soundemitterbase->InternalGetParametersForSound( i ); if ( pParams->ShouldPreload() ) { InternalPrecacheWaves( i ); } } #endif }
int process_data(Header *header, ChordPacketArgs *args, Data *msg, Node *from) { ChordServer *srv = args->srv; chordID id; memcpy(id.x, msg->id.data, CHORD_ID_BYTES); if (IN6_IS_ADDR_UNSPECIFIED(&srv->node.addr)) return CHORD_ADDR_UNDISCOVERED; LOG_PROCESS(&id, &from->addr, from->port); if (--msg->ttl == 0) { StartLog(WARN); print_two_chordIDs(clog_file_logger()->fp, "TTL expired: data packet ", &id, " dropped at node ", &srv->node.id, ""); EndLog(); return CHORD_TTL_EXPIRED; } /* handle request locally? */ if (chord_id_is_local(srv, &id)) { /* Upcall goes here... */ Debug("id is local"); //chord_deliver(len, data, from); } else { int next_is_last; Node *np = next_route_node(srv, &id, msg->last, &next_is_last); send_data(srv, next_is_last, msg->ttl, np, &id, msg->data.len, msg->data.data); } return CHORD_NO_ERROR; }
bool Daemon_Singleton::start() { // initialize log if (isLogging) { if (isDaemon) { std::string logfile_path = i2p::util::filesystem::GetDataDir().string(); #ifndef _WIN32 logfile_path.append("/debug.log"); #else logfile_path.append("\\debug.log"); #endif StartLog (logfile_path); } else StartLog (""); // write to stdout } d.httpServer = new i2p::util::HTTPServer(i2p::util::config::GetArg("-httpport", 7070)); d.httpServer->Start(); LogPrint("HTTP Server started"); i2p::data::netdb.Start(); LogPrint("NetDB started"); i2p::transports.Start(); LogPrint("Transports started"); i2p::tunnel::tunnels.Start(); LogPrint("Tunnels started"); i2p::garlic::routing.Start(); LogPrint("Routing started"); i2p::stream::StartStreaming(); LogPrint("Streaming started"); d.httpProxy = new i2p::proxy::HTTPProxy(i2p::util::config::GetArg("-httpproxyport", 4446)); d.httpProxy->Start(); LogPrint("HTTP Proxy started"); d.socksProxy = new i2p::proxy::SOCKSProxy(i2p::util::config::GetArg("-socksproxyport", 4447)); d.socksProxy->Start(); LogPrint("SOCKS Proxy Started"); return true; }
int InitLog(SeisSlave *node, char * name) { int INFO; node -> fp_log = 0; node -> DEBUG = 0; node -> apl_name = name; node -> machine = 0; INFO = StartLog(node); return(INFO); } /* End of InitLog */
int process_fs(Header *header, ChordPacketArgs *args, FindSuccessor *msg, Node *from) { ChordServer *srv = args->srv; Node *succ, *np; chordID reply_id; in6_addr reply_addr; ushort reply_port = msg->port; if (IN6_IS_ADDR_UNSPECIFIED(&srv->node.addr)) return CHORD_ADDR_UNDISCOVERED; v6_addr_set(&reply_addr, msg->addr.data); get_address_id(&reply_id, &reply_addr, reply_port); LOG_PROCESS(&reply_id, &reply_addr, reply_port); if (--msg->ttl == 0) { StartLog(WARN); print_two_chordIDs(clog_file_logger()->fp, "TTL expired: fix_finger packet ", &reply_id, " dropped at node ", &srv->node.id, ""); EndLog(); return CHORD_TTL_EXPIRED; } if (v6_addr_equals(&srv->node.addr, &reply_addr) && srv->node.port == reply_port) return CHORD_NO_ERROR; if (succ_finger(srv) == NULL) { send_fs_reply(srv, msg->ticket.data, msg->ticket.len, &reply_addr, reply_port, &srv->node.addr, srv->node.port); return CHORD_NO_ERROR; } succ = &succ_finger(srv)->node; if (id_is_between(&reply_id, &srv->node.id, &succ->id) || id_equals(&reply_id, &succ->id)) { send_fs_reply(srv, msg->ticket.data, msg->ticket.len, &reply_addr, reply_port, &succ->addr, succ->port); } else { np = closest_preceding_node(srv, &reply_id, 0); send_fs_forward(srv, msg->ticket.data, msg->ticket.len, msg->ttl, &np->addr, np->port, &reply_addr, reply_port); } return CHORD_NO_ERROR; }
//------------------------------------------------------------------ // // Initialise(..) // // Params: // fileDir - Location of the text file to write to // // Initialisation of the debugger tool // //------------------------------------------------------------------ bool CDebugLog::Initialise(const std::string& fileDir) { if (!m_bInit) { // Attempt to open/create file. // If existing, clear all contents m_fileStream.open(fileDir.c_str(), std::fstream::out | std::fstream::trunc); if (!m_fileStream.is_open()) return false; m_bInit = true; StartLog(); } else WriteTimeStampEntry("Initialisation attempt on DebugLog made when already initialised!"); return true; }
void XaLibControllerBackEnd::OnStart(const string& ConfFile) { try { LoadXmlConfFile(ConfFile); StartLog(); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"########################### STARTING BACK END ACTION LOG ############################"); StartDb(); StartHttp(); SESSION.BackEndIp=HTTP.GetServerIpAddress(); SESSION.FrontEndIp=HTTP.GetClientIpAddress(); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"IP Address Back End Server -> "+SESSION.BackEndIp); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"IP Address Front End Server -> "+SESSION.FrontEndIp); LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Read HttpString -> " + REQUEST.HeadersString); } catch (int e) { throw; } };
bool MythXDisplay::CreateGC(Window win) { StartLog(); XLOCK(this, m_gc = XCreateGC(m_disp, win, 0, NULL)); return StopLog(); }
int main(){ // the argument list is not used // but there is provision for it. printf("Welcome to the FIREBALL Guider. Please wait while we configure\n"); fflush(NULL); StartLog(); GtoM_StartCount(); GtoT_StartCount(); ResetReceivedMessageCounters(); trackpointEL = CHIPHEIGHT/2; trackpointCE = CHIPWIDTH/2; QCamera camera; // open the camera. // UniversalTime(); // printf("The Local Sidereal Time is: %lf\n",LST(31.761, -95.63)); /* double ra1, ra2; double dec1, dec2; double alt1, alt2; double az1, az2; double del, dce; double lat, lon; */ GtoT_CameraError(0); SetLatLon(31.761,-95.64); /* lat = 31.761; lon = -95.64; ra1 = 0.50; ra2 = 0.51; dec1 = 0.41; dec2 = 0.41; RADEC_to_ALTAZ(ra1,dec1, lat,lon, &alt1,&az1); printf("the first alt-az I have found: %lf %lf\n",alt1,az1); RADEC_to_ALTAZ(ra2,dec2, lat,lon, &alt2,&az2); printf("the second alt-az I have found: %lf %lf\n",alt2,az2); ALTAZ_to_ELCE(alt1,az1,alt2,az2,&del,&dce); printf("The difference I have found is: %lf %lf\n",del,dce); */ InitDAC(); // prepare the dac. InitializeLEDs(); // turn off the Lamp. if(!ComSetup()) GtoT_TextError("COM working"); // RunSillyProg(); StartDisplay(); // begin the display. turnOnGps(); // starts some of the statistic quantities. Defaulting to 100 frames -- 10s in full chip mode, 3s in ROI mode. InitMode.setCallback(InitModeCallback); AutocollimationMode.setCallback(AutocollimationModeCallback); AlignmentMode.setCallback(AlignmentModeCallback); AlignmentSubMode.setCallback(AlignmentModeCallback); SlewingMode.setCallback(SlewPointModeCallback); PointingMode.setCallback(SlewPointModeCallback); PointingModeRoi.setCallback(SlewPointModeCallback); camera.prepSettings(InitMode,0,0); if(camera.LoadQCamState()){ switch(camera.nextMode.getModeID()){ case INITMODE:{ camera.nextMode.setCallback(InitModeCallback); break; }; case ALIGNMENTMODE:{ camera.nextMode.setCallback(AlignmentModeCallback); alignmentMD.winx = camera.getWinX(); alignmentMD.winy = camera.getWinY(); alignmentMD.wind = camera.getWinDX(); WriteToLog("Stuff","%d %d %d",alignmentMD.winx,alignmentMD.winy,alignmentMD.wind); break; }; case SLEWINGMODE:{ camera.nextMode.setCallback(SlewPointModeCallback); break; }; case POINTINGMODE:{ camera.nextMode.setCallback(SlewPointModeCallback); break; }; case AUTOCOLLIMATIONMODE:{ camera.nextMode.setCallback(AutocollimationModeCallback); break; }; default: break; }; }; // camera.prepSettings(SlewingMode,0,0); // camera.prepSettings(PointingMode,0,0); // camera.nowMode.setEqual(AlignmentMode); // HomeCamera(); //MoveStage(30000); // periodicmessages.h/c contains the variables and calls needed to // set up periodic messages that have to be sent to the MPF and the // ground in various modes. #include "periodicmessages.h" // processmessages.h/c contains the variables and calls needed to // process the messages from the MPF and the ground. #include "processmessages.h" //for every change of mode there will be a goto mainloop command //to exit a program there will be a goto loopexit command. FillRSquared(); // if(camera.getActiveSensor() == GUIDERSENSOR){ // GtoM_SwitchingGuiderRequest(); // }; // HelloDither.DitherPattern1(10); MainLoop: camera.stopStreaming(); // stop camera streaming camera.changeSettings(); // adjust camera parameters, including // the trigger time. modeID = camera.getModeID(); camera.startStreaming(); // restart camera streaming. // WriteToLog("Got Here! B "); loopcounter = 0; if(camera.getModeID() == POINTINGMODE || (camera.getModeID()==ALIGNMENTMODE && camera.getSubModeID()==ALIGNTRACKROI)){ ClearScreen(); FontOverwrite(); } else { FontMask(); }; // WriteToLog("Got Here A !"); if(camera.getModeID()==ALIGNMENTMODE && (camera.getSubModeID() == ALIGNTRACKROI || camera.getSubModeID() == ALIGNTRACKFULLCHIP || camera.getSubModeID() == ALIGNDRAGFULLCHIP)){ // GtoM_SwitchingGuiderRequest(); // camera.setActiveSensor(GUIDERSENSOR); } else { // GtoM_SwitchingDTURequest(); // camera.setActiveSensor(OTHERSENSOR); } // WriteToLog("Got Here!"); // WriteToLog("FLOOD","%d %d %d" ,camera.getRoiX(), camera.getRoiY(),camera.getRoiDX()); do{ #include "periodicmessages.cpp" #include "processmessages.cpp" camera.queueFrame(); } while(1); camera.~QCamera(); CloseLog(); return 0; };
CWriteLogThread::~CWriteLogThread() { StartLog(); m_LogList.RemoveAll(); }
void ProcessSecTimer() { CReadFiles::ImportUser(); CReadFiles::UpdateUser(); SecCounter++; if(SecCounter % 30 == 0) { CReadFiles::ImportItem(); // Once every two minutes CReadFiles::ImportDonate(); } DrawConfig(); if(SecCounter % 30 == 0) { CReadFiles::UpdateConnection(); MinCounter++; if(MinCounter % 30 == 0) { CReadFiles::UpdateConnectionData(); HourCounter++; } } if (SecCounter % 600 == 0) { #pragma region Gerador de Ranking CReadFiles::WriteRanking(); #pragma endregion } struct tm when; time_t now; time(&now); when = *localtime(&now); if (when.tm_mday != LastLogDay) StartLog("A"); if (when.tm_mday != LastDayLogDay) { DayLog_ItemLog(); DayLog_ExpLog(); LastDayLogDay = when.tm_mday; } if(when.tm_hour == 0 && when.tm_wday == 0 && when.tm_min == 0 && when.tm_sec == 0) { for(int i = 0; i < 65536;i++) { if(GuildInfo[i].Fame) { GuildInfo[i].Fame = 0; for(int j = 0; j < MAX_SERVER; j++) { if(pUser[j].cSock.Sock == 0) continue; if(pUser[j].Mode == 0) continue; cFileDB.SendGuildInfo(j, i); } } } CReadFiles::WriteGuildInfo(); } }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) // Last Updated 19/01/2013 { MSG msg; UNREFERENCED_PARAMETER(lpCmdLine); hInst = hInstance; if(!hPrevInstance) if(!InitApplication(hInstance)) return FALSE; if(!InitInstance(hInstance, nCmdShow)) return FALSE; BASE_InitModuleDir(); BASE_InitializeBaseDef(); #pragma region Load Base Characters int handle = -1; handle = _open("./BaseMob/TK", _O_RDONLY | _O_BINARY); if(handle == -1) { MessageBoxA(hWndMain, "no TransKnight file", "BOOTING ERROR", MB_OK); return FALSE; } _read(handle, &g_pBaseSet[0], sizeof(STRUCT_MOB)); _close(handle); handle = -1; handle = _open("./BaseMob/FM", _O_RDONLY | _O_BINARY); if(handle == -1) { MessageBoxA(hWndMain, "no Foema file", "BOOTING ERROR", MB_OK); return FALSE; } _read(handle, &g_pBaseSet[1], sizeof(STRUCT_MOB)); _close(handle); handle = -1; handle = _open("./BaseMob/BM", _O_RDONLY | _O_BINARY); if(handle == -1) { MessageBoxA(hWndMain, "no BeastMaster file", "BOOTING ERROR", MB_OK); return FALSE; } _read(handle, &g_pBaseSet[2], sizeof(STRUCT_MOB)); _close(handle); handle = -1; handle = _open("./BaseMob/HT", _O_RDONLY | _O_BINARY); if(handle == -1) { MessageBoxA(hWndMain, "no Huntress file", "BOOTING ERROR", MB_OK); return FALSE; } _read(handle, &g_pBaseSet[3], sizeof(STRUCT_MOB)); _close(handle); g_pBaseSet[0].BaseScore = g_pBaseSet[0].CurrentScore; g_pBaseSet[1].BaseScore = g_pBaseSet[1].CurrentScore; g_pBaseSet[2].BaseScore = g_pBaseSet[2].CurrentScore; g_pBaseSet[3].BaseScore = g_pBaseSet[3].CurrentScore; #pragma endregion StartLog("A"); Log("start log", "-system", 0); memset(g_pGuildWar, 0, sizeof(g_pGuildWar)); memset(g_pGuildAlly, 0, sizeof(g_pGuildAlly)); ReadConfig(); int ret = ListenSocket.WSAInitialize(); if(!ret) { Log("err,wsainitialize fail", "-system", 0); return FALSE; } BASE_InitializeServerList(); char name[256]; int i = 0; struct addrinfo hints, *res, *p; memset(&hints, 0, sizeof(addrinfo)); memset(&res, 0, sizeof(addrinfo)); memset(&p, 0, sizeof(addrinfo)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; gethostname(name, sizeof(name)); getaddrinfo(name, NULL, &hints, &res); for (p = res; p != NULL; p = p->ai_next) { if (p->ai_family != AF_INET) continue; struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; inet_ntop(p->ai_family, &(ipv4->sin_addr), name, sizeof(name)); for (i = 0; i < MAX_SERVERGROUP; i++) { if (!strcmp(g_pServerList[i][0], name)) { ServerIndex = i; sscanf(name, "%d.%d.%d.%d", &LocalIP[0], &LocalIP[1], &LocalIP[2], &LocalIP[3]); break; } } if (ServerIndex != -1) break; } /*freeaddrinfo(res); freeaddrinfo(p); freeaddrinfo(&hints); */ if(ServerIndex == -1) { MessageBox(hWndMain, "Can't get Server Group Index LocalIP:", "", MB_OK|MB_SYSTEMMODAL); MessageBox(hWndMain, "Can't get Server Group Index TestServerIP:", g_pServerList[i][0], MB_OK | MB_SYSTEMMODAL); return TRUE; } CReadFiles::ImportItem(); ReadTrandGuildInfo(); ListenSocket.StartListen(hWndMain, 0, DB_PORT, WSA_ACCEPT); AdminSocket.StartListen(hWndMain, 0, ADMIN_PORT, WSA_ACCEPTADMIN); FILE *fp = fopen("redirect.txt", "rt"); if(fp) { char sip[256]; int port; fscanf(fp, "%s %d %s %s", sip, &port, adminclientid, adminclientpass); fclose(fp); ret = AdminClient.ConnectServer(sip, port, INADDR_ANY, WSA_READADMINCLIENT); if(ret == NULL) { MessageBox(hWndMain, "there's redirect.txt but can't connect", "BOOTING ERROR", NULL); return FALSE; } else { Log("sys redirection server connected","-system",0); TransperCharacter = 1; } } SetTimer(hWndMain, TIMER_SEC, 1000, NULL); CReadFiles::ReadGuildInfo(); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }