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;
}
Exemple #2
0
	void Logs::PLUGIN_ERROR(const char* file, int line, const char* function, const char* format, ...)
	{
		if (Settings::getInstance()->IsLogEnabled && Settings::getInstance()->SeePluginLog)
		{
			char buffer[2048];
			memset(buffer, 0x00, sizeof(buffer));
			va_list args;
			va_start (args, format);
	#ifdef __unix__
			vsnprintf(buffer, sizeof(buffer) - 1, format, args);
	#else
			_vsnprintf_s(buffer, sizeof(buffer) - 1, format, args);
	#endif
			log_ERROR(processLog(file, line, function, buffer));
			va_end(args);
		}
	}
Exemple #3
0
	void Logs::ERROR_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_ERROR(processLog(file, line, function, buffer));
		va_end(args); 
	}
int variable_detection(char buffer[512])
{
int i=0;
int j=0;
char name[512]={'\0'};
char value[512]={'\0'};
int int_value=0;

	while( buffer[i] != DELIM )
	{
		name[i]=buffer[i];
		i++;
	}
i++;

	while( buffer[i] != ENDLIM )
	{
		value[j]=buffer[i];
		i++;
		j++;
	}
	
	if (!strcmp(name,"LOG_FILE_PATH")){
		strcpy(LOG_FILE_PATH,value);
	}
	else if (!strcmp(name,"LOG_LEVEL")){
		strcpy(LOG_LEVEL,value);
		
	}
	else if (!strcmp(name,"MYSQL")){
		MYSQL = atoi(value);
	}
        else if (!strcmp(name,"HOSTNAME")){
	        strcpy(HOSTNAME,value);
	}
	else if (!strcmp(name,"PORT")){
                PORT = atoi(value);
    }
	else if (!strcmp(name,"LOGIN")){
                strcpy(LOGIN,value);
	}
	else if (!strcmp(name,"PASSWORD")){
                strcpy(PASSWORD,value);
    }
    else if (!strcmp(name,"DATABASE")){
                strcpy(DATABASE,value);
    }
    else if (!strcmp(name,"PORT_RFXTRX433")){
                strcpy(PORT_RFXTRX433,value);
    }
    else if (!strcmp(name,"PORT_ENOUSB300")){
        strcpy(PORT_ENOUSB300,value);
    }
	else if (!strcmp(name,"MODULE_SOAP")){
                MODULE_SOAP = atoi(value);
    }
	else if (!strcmp(name,"PORT_SOAP")){
                PORT_SOAP = atoi(value);
	}
	else if (!strcmp(name,"MODULE_RPIDOM")){
                MODULE_RPIDOM = atoi(value);
	}
	else if (!strcmp(name,"PORT_RPIDOM")){
                strcpy(PORT_RPIDOM,value);
	}
	else if (!strcmp(name,"RPIDOM_TELE1_TYPE")){
                 RPIDOM_TELE1_TYPE = atoi(value);
	}
	else if (!strcmp(name,"RPIDOM_TELE2_TYPE")){
                 RPIDOM_TELE2_TYPE = atoi(value);
	}
	else if (!strcmp(name,"RPIDOM_1WIRE")){
                 RPIDOM_1WIRE = atoi(value);
	}
	else if (!strcmp(name,"MDB_CLOUD")){
                MDB_CLOUD = atoi(value);
    }
	else if (!strcmp(name,"MDB_KEY")){
                strcpy(MDB_KEY,value);
    }
	else if (!strcmp(name,"MDB_ID")){
                strcpy(MDB_ID,value);
    }
	else if (!strcmp(name,"MDB_X_ISS_Key")){
                strcpy(MDB_X_ISS_Key,value);
    }
	else if (!strcmp(name,"MDB_X_OAPI_Key")){
                strcpy(MDB_X_OAPI_Key,value);
    }
	else if (!strcmp(name,"MDB_DATASOURCE")){
                strcpy(MDB_DATASOURCE,value);
    }
	else{
		log_ERROR("Parameter : \"%s\" not yet supported by mydombox",name);
	}
	
	/*
	detecting if it is a char or int
	if (( value[0] != '"')&&(value[0] >= '0' && value[0] <= '9'))
	{
	int_value = atoi (value );
	printf("int %s= %d \n", name,int_value);

	}
	else
	{
	printf("char %s = %s \n", name,value);
	}
	*/

return 0;
}
Exemple #5
0
bool
CProxy::start(const std::string&                  sListenIP,
              ushort                              uListenPort,
              const std::string&                  sLoginSrvIP,
              ushort                              uLoginSrvPort,
              const std::vector<s_serverInfos>&   vecAreas,
              ushort                              uMaxConnections)
{
  // Check if listen address is correctly formated
  if (!m_listenAddress.FromStringExplicitPort(sListenIP.c_str(), uListenPort))
  {
    log_ERROR("Invalid listen address. Aborting.");
    return false;
  }


  // Start listen interface
  RakNet::SocketDescriptor listenSocket(uListenPort, sListenIP.c_str());
  m_pListenInterface = RakNet::RakPeerInterface::GetInstance();

  if (m_pListenInterface->Startup(uMaxConnections, &listenSocket, 1) != RakNet::RAKNET_STARTED)
  {
    log_ERROR("Failed to startup Raknet interface. Aborting.");
    stop();
    return false;
  }

  m_pListenInterface->SetMaximumIncomingConnections(uMaxConnections);
  ff::write(pan::notice, "Started listening on ", sListenIP, ":", uListenPort, ".");
  ff::write(pan::notice, "Accepting max ", uMaxConnections, " connections.");

  ushort uTmpPort = 49777;

  // Start login server interface
  {
    // Check if login server address is correctly formated
    if (!m_loginSrvAddress.FromStringExplicitPort(sLoginSrvIP.c_str(), uLoginSrvPort))
    {
      log_ERROR("Invalid login server address. Aborting.");
      stop();
      return false;
    }

    RakNet::SocketDescriptor loginSocketDesc(++uTmpPort, NULL);

	  while (RakNet::SocketLayer::IsPortInUse(loginSocketDesc.port, loginSocketDesc.hostAddress, loginSocketDesc.socketFamily))
      loginSocketDesc.port = uTmpPort++;
      
    // Create and startup login server interface
    m_pLoginSrvInterface = RakNet::RakPeerInterface::GetInstance();

	  if (m_pLoginSrvInterface->Startup(1, &loginSocketDesc, 1) != RakNet::RAKNET_STARTED)
    {
      log_ERROR("Failed to startup login server interface.");
      stop();
      return false;
    }

    int latency = ping(m_pLoginSrvInterface, sLoginSrvIP, uLoginSrvPort);
    
    if (latency < 0)
      ff::write(pan::warning, "Failed to ping login server (", sLoginSrvIP, ":", uLoginSrvPort, ").");
    else
      ff::write(pan::notice, "Pinged login server (", sLoginSrvIP, ":", uLoginSrvPort, ") - ", latency, "ms.");

    // Attempt connection
    if (m_pLoginSrvInterface->Connect(sLoginSrvIP.c_str(), uLoginSrvPort, NULL, 0) != RakNet::CONNECTION_ATTEMPT_STARTED)
    {
      ff::write(pan::error, "Connection to login server (", sLoginSrvIP, ":", uLoginSrvPort, ") failed.");
      stop();
      return false;
    }

    m_pLoginSrvInterface->SetOccasionalPing(true);
  }

  // Connect to area servers
  for (std::vector<s_serverInfos>::const_iterator it = vecAreas.begin();
       it != vecAreas.end();
       it++)
  {
    RakNet::SocketDescriptor areaSocketDesc(uTmpPort++, NULL);

	  while (RakNet::SocketLayer::IsPortInUse(areaSocketDesc.port, areaSocketDesc.hostAddress, areaSocketDesc.socketFamily))
      areaSocketDesc.port = uTmpPort++;

    RakNet::RakPeerInterface* pAreaItf = RakNet::RakPeerInterface::GetInstance();

	  if (pAreaItf->Startup(1, &areaSocketDesc, 1) != RakNet::RAKNET_STARTED)
    {
      log_ERROR("Failed to startup an area server interface.");
      continue;
    }

    if (pAreaItf->Connect((*it).m_srvIP.c_str(), (*it).m_srvPort, NULL, 0) != RakNet::CONNECTION_ATTEMPT_STARTED)
    {
      ff::write(pan::error, "Connection attempt to area server (", (*it).m_srvIP, ":", (*it).m_srvPort, ") failed.");
      continue;
    }

    pAreaItf->SetOccasionalPing(true);

    // TODO: Do something here with this connection
  }


  // Proxy server started successfuly
  m_pListenInterface->AttachPlugin(this);
  m_bStarted = true;

  m_bQuit = false;
  m_pUpdateThread = new boost::thread(FastDelegate0<>(this, &CProxy::updateThread));

  return m_bStarted;
}