Hola. Estoy intentando integrar el control de un servidor desde el propio núcleo de trinity y para ello necesito pasar una serie de comandos vía telnet para que el servidor pueda estar alojado en distinta máquina.
He intentado hacerlo lanzando un script externo desde el núcleo:
[CODE] CharacterDatabase.PExecute(“UPDATE characters SET online = 1 WHERE guid = ‘%u’”, pCurrChar->GetGUIDLow());
LoginDatabase.PExecute("UPDATE account SET online = 1 WHERE id = '%u'", GetAccountId());
pCurrChar->SetInGameTime(getMSTime());
// Thread for connection
// Get data about player
char ts_buff [30];
char ts_command [100];
char *command="test.bat";
char *ts_account=itoa(GetAccountId(), ts_buff, 10);
const char *ts_chararcter=pCurrChar->GetName();
sLog->outBasic(" Adding character %s, account %s to group", ts_chararcter, ts_account);
// Build command
//strcpy(ts_command,command);
//strcat(ts_command," ");
strcat(ts_command,ts_account);
strcat(ts_command," ");
strcat(ts_command,ts_chararcter);
// Execute command
_spawnl(1, command,ts_command);[/CODE]
el problema es que _spawnl() no parece funcionar. He probado con execl() y sus variantes pero el servidor se para. Necesito poder llamar al script varias veces simultaneamente y sin que el proceso principal de trinity se pare a esperar el resultado del script. ya se que esto es una chapuza y que lo mas apropiado seria programar un cliente telnet directamente con las ACE pero mis conocimientos no llegan a tanto.
¿Alguna idea?