int main(int argc, char *argv[]) {


	bool runTests = false;

	if (runTests == true) {
		CU_initialize_registry();

		CU_register_suites(suites);

		CU_basic_set_mode(CU_BRM_VERBOSE);
		CU_basic_run_tests();
		CU_cleanup_registry();

		return CU_get_error();
	}

	puts("Inicializando");
	conf_nodo* configuracion = cargarConfiguracion(argc, argv);
	estadoGlobal= inicializarEstado(configuracion);

	int resultado = ejecutarProgramaPrincipal(estadoGlobal);

	return resultado;
}
int main (int argc, char** argv) {

	pthread_t thread;
	int listener, nuevaConexion;

	/* Creación de archivo log */
	Logger = log_create(LOG_PATH, "MSP", false, LOG_LEVEL_TRACE);
	clean_file(LOG_PATH);

	cargarConfiguracion(argv[1]);
	inicializarMSP();

	log_trace(Logger, "Inicio de MSP.\n	Tamaño de Memoria Principal: %u.\n	Tamaño de SWAP: %u.", MaxMem, MaxSwap);

	listener = server_socket(Puerto);
	pthread_create(&thread, NULL, atenderConsola, NULL);

	while (true) {

		nuevaConexion = accept_connection(listener);

		pthread_mutex_lock(&LogMutex);
		log_trace(Logger, "Nueva conexión.");
		pthread_mutex_unlock(&LogMutex);

		pthread_create(&thread, NULL, atenderProceso, &nuevaConexion);
	}

	return EXIT_SUCCESS;

}
Log::Log(){

	mut = SDL_CreateMutex();

	cargarConfiguracion();

	ostringstream os;

	os << "log/" << StringUtil::obtenerFechaAAAAMMDD(NULL) << nombreLog << ".log";

	this->archivoLog.open(os.str().c_str(), std::ofstream::out | std::ofstream::app);
	this->archivoLog <<  endl;
}