コード例 #1
0
ファイル: CProxy.cpp プロジェクト: alexis-/iwe
// Login    -->     Client
//
// Handle message forwarding from the login server to clients
bool
CProxy::OnLoginSrvReceive(RakNet::Packet* pPacket)
{
  if (!pPacket)
    return true;

  uchar* pDatas = pPacket->data;
  uint len = pPacket->length;
  int defaultHandleRet = 0;
  
  RakNet::BitStream strIn(pDatas, len, false);
  uchar opCode;

  if (!strIn.Read(opCode))
    return true;
  
  if ((defaultHandleRet = handleDefaultPacket(opCode, "Login server: ")) == 0 &&
      m_pLoginSrvInterface->NumberOfConnections() > 0)
  {
    RakNet::SystemAddress clientAddr;

    if (!strIn.Read(clientAddr))
      return true;

    // This may not be necessary
    std::map<RakNet::SystemAddress, s_clientInfos*>::iterator it = m_mapClientAddr.find(clientAddr);

    if (it == m_mapClientAddr.end())
      return true;

    // !---------

    if (!HandleLoginSrvPacket(pPacket, clientAddr, strIn, opCode))
      return true;
    
    RakNet::BitStream strOut;
    int off = strIn.GetReadOffset() / 8;

    strOut.Write(opCode);

    if (off < len)
      strOut.Write((const char*)&pDatas[off], len - off);

    m_pListenInterface->Send(&strOut, LOW_PRIORITY, RELIABLE_SEQUENCED, 0, clientAddr, false);
  }

  else if (defaultHandleRet > 1)
  {
    // TODO: Attempt delayed reconnection

    log_CRITICAL("Not connected to login server. Aborting.");

    m_pUpdateThread = NULL;
    m_bQuit = true;

    return false;
  }

  return true;
}
コード例 #2
0
int main()
{
  log_DEBUG(PSTR("debug"));
  log_INFORMATIONAL(PSTR("informational"));
  log_NOTICE(PSTR("notice"));
  log_WARNING(PSTR("warning"));
  log_ERROR(PSTR("error"));
  log_CRITICAL(PSTR("critical"));
  log_ALERT(PSTR("alert"));
  log_EMERGENCY(PSTR("emergency"));

  return EXIT_SUCCESS;
}
コード例 #3
0
static void some_logging_2()
{
#if 0
    try
    {
        throw std::out_of_range("Eeep!");
    }
    catch(std::exception &x)
    {
        log_CRITICAL("Something really bad has happened! Details: \"", x, "\"");
    }
#endif /* 0 */
}
コード例 #4
0
ファイル: logs.cpp プロジェクト: BobLC/liblogicalaccess
	void Logs::CRITICAL_LOG(const char* file, int line, const char* function, const char* format, ...)
	{
		if (!Settings::getInstance()->IsLogEnabled)
			return;

		char buffer[2048];
		memset(buffer, 0x00, sizeof(buffer));
		va_list args;
		va_start (args, format);
#if defined(__unix__)
		vsnprintf(buffer, sizeof(buffer) - 1, format, args);
#else
		_vsnprintf_s(buffer, sizeof(buffer) - 1, format, args);
#endif
		log_CRITICAL(processLog(file, line, function, buffer));
		va_end(args); 
	}