#915 remove Sondeo(), respuestaSondeo(), ConsolaRemota(), Arrancar() and EcoConsola()

The new REST API obsoletes the following commands:

- Sondeo() has been replaced by GET /clients.
- respuestaSondeo() has been replaced by POST /clients.
- ConsolaRemota() has been replaced by POST /shell/run.
- EcoConsola() has been replaced by POST /shell/output.
- Arrancar() has been replaced by POST /wol.
master
OpenGnSys Support Team 2019-05-27 11:30:17 +02:00
parent 7ab5f0cbfb
commit 8abc82f647
1 changed files with 0 additions and 199 deletions

View File

@ -138,78 +138,6 @@ static inline int og_client_socket(const struct og_client *cli)
return cli->io.fd;
}
// ________________________________________________________________________________________________________
// Función: Sondeo
//
// Descripción:
// Solicita a los clientes su disponibiliad para recibir comandos interactivos
// Parámetros:
// - socket_c: Socket del cliente que envió el mensaje
// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
// Devuelve:
// true: Si el proceso es correcto
// false: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
static bool Sondeo(TRAMA* ptrTrama, struct og_client *cli)
{
if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) {
respuestaConsola(og_client_socket(cli), ptrTrama, false);
return false;
}
respuestaConsola(og_client_socket(cli), ptrTrama, true);
return true;
}
// ________________________________________________________________________________________________________
// Función: respuestaSondeo
//
// Descripción:
// Recupera el estatus de los ordenadores solicitados leyendo la tabla de sockets
// Parámetros:
// - socket_c: Socket del cliente que envió el mensaje
// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
// Devuelve:
// true: Si el proceso es correcto
// false: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
static bool respuestaSondeo(TRAMA* ptrTrama, struct og_client *cli)
{
int socket_c = og_client_socket(cli);
int i;
long lSize;
char *iph, *Ipes;
iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP
lSize = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S
Ipes = (char*) reservaMemoria(lSize + 1);
if (Ipes == NULL) {
liberaMemoria(iph);
syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__);
return false;
}
strcpy(Ipes, iph); // Copia cadena de IPES
liberaMemoria(iph);
initParametros(ptrTrama,0);
strcpy(ptrTrama->parametros, "tso="); // Compone retorno tso (sistemas operativos de los clientes )
for (i = 0; i < MAXIMOS_CLIENTES; i++) {
if (strncmp(tbsockets[i].ip, "\0", 1) != 0) { // Si es un cliente activo
if (contieneIP(Ipes, tbsockets[i].ip)) { // Si existe la IP en la cadena
strcat(ptrTrama->parametros, tbsockets[i].ip); // Compone retorno
strcat(ptrTrama->parametros, "/"); // "ip/sistema operativo;"
strcat(ptrTrama->parametros, tbsockets[i].estado);
strcat(ptrTrama->parametros, ";");
}
}
}
strcat(ptrTrama->parametros, "\r");
liberaMemoria(Ipes);
if (!mandaTrama(&socket_c, ptrTrama)) {
syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n",
inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port),
strerror(errno));
return false;
}
return true;
}
// ________________________________________________________________________________________________________
// Función: Actualizar
//
@ -251,84 +179,6 @@ static bool Purgar(TRAMA* ptrTrama, struct og_client *cli)
return true;
}
// ________________________________________________________________________________________________________
// Función: ConsolaRemota
//
// Descripción:
// Envia un script al cliente, éste lo ejecuta y manda el archivo que genera la salida por pantalla
// Parámetros:
// - socket_c: Socket del cliente que envió el mensaje
// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
// Devuelve:
// true: Si el proceso es correcto
// false: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
static bool ConsolaRemota(TRAMA* ptrTrama, struct og_client *cli)
{
char *iph, fileco[LONPRM], *ptrIpes[MAXIMOS_CLIENTES];;
FILE* f;
int i,lon;
if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
respuestaConsola(og_client_socket(cli), ptrTrama, false);
return false;
}
INTROaFINCAD(ptrTrama);
/* Destruye contenido del fichero de eco anterior */
iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente
lon = splitCadena(ptrIpes,iph,';');
for (i = 0; i < lon; i++) {
sprintf(fileco,"/tmp/_Seconsola_%s",ptrIpes[i]); // Nombre que tendra el archivo en el Servidor
f = fopen(fileco, "wt");
fclose(f);
}
liberaMemoria(iph);
respuestaConsola(og_client_socket(cli), ptrTrama, true);
return true;
}
// ________________________________________________________________________________________________________
// Función: EcoConsola
//
// Descripción:
// Solicita el eco de una consola remota almacenado en un archivo de eco
// Parámetros:
// - socket_c: Socket del cliente que envió el mensaje
// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
// Devuelve:
// true: Si el proceso es correcto
// false: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
static bool EcoConsola(TRAMA* ptrTrama, struct og_client *cli)
{
int socket_c = og_client_socket(cli);
char *iph,fileco[LONPRM],*buffer;
int lSize;
INTROaFINCAD(ptrTrama);
// Lee archivo de eco de consola
iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente
sprintf(fileco,"/tmp/_Seconsola_%s",iph); // Nombre del archivo en el Servidor
liberaMemoria(iph);
lSize=lonArchivo(fileco);
if(lSize>0){ // Si el fichero tiene contenido...
initParametros(ptrTrama,lSize+LONGITUD_PARAMETROS);
buffer=leeArchivo(fileco);
sprintf(ptrTrama->parametros,"res=%s\r",buffer);
liberaMemoria(buffer);
}
else{
initParametros(ptrTrama,0);
sprintf(ptrTrama->parametros,"res=\r");
}
ptrTrama->tipo=MSG_RESPUESTA; // Tipo de mensaje
if (!mandaTrama(&socket_c, ptrTrama)) {
syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n",
inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port),
strerror(errno));
return false;
}
return true;
}
// ________________________________________________________________________________________________________
// Función: clienteDisponible
//
// Descripción:
@ -1394,50 +1244,6 @@ bool respuestaConsola(int socket_c, TRAMA *ptrTrama, int res)
return true;
}
// ________________________________________________________________________________________________________
// Función: Arrancar
//
// Descripción:
// Procesa el comando Arrancar
// Parámetros:
// - socket_c: Socket de la consola al envió el mensaje
// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
// Devuelve:
// true: Si el proceso es correcto
// false: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
static bool Arrancar(TRAMA* ptrTrama, struct og_client *cli)
{
char *ptrIP[MAXIMOS_CLIENTES],*ptrMacs[MAXIMOS_CLIENTES];
char *iph,*mac,*mar;
bool res;
int lon;
iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP
mac = copiaParametro("mac",ptrTrama); // Toma dirección/es MAC
mar = copiaParametro("mar",ptrTrama); // Método de arranque (Broadcast o Unicast)
lon = splitCadena(ptrIP, iph, ';');
lon = splitCadena(ptrMacs, mac, ';');
res = Levanta(ptrIP, ptrMacs, lon, mar);
liberaMemoria(iph);
liberaMemoria(mac);
liberaMemoria(mar);
if(!res){
respuestaConsola(og_client_socket(cli), ptrTrama, false);
return false;
}
if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
respuestaConsola(og_client_socket(cli), ptrTrama, false);
return false;
}
respuestaConsola(og_client_socket(cli), ptrTrama, true);
return true;
}
// ________________________________________________________________________________________________________
// Función: Levanta
//
// Descripción:
@ -3426,10 +3232,6 @@ static struct {
const char *nf; // Nombre de la función
bool (*fcn)(TRAMA *, struct og_client *cli);
} tbfuncionesServer[] = {
{ "Sondeo", Sondeo, },
{ "respuestaSondeo", respuestaSondeo, },
{ "ConsolaRemota", ConsolaRemota, },
{ "EcoConsola", EcoConsola, },
{ "Actualizar", Actualizar, },
{ "Purgar", Purgar, },
{ "InclusionCliente", InclusionCliente, },
@ -3437,7 +3239,6 @@ static struct {
{ "AutoexecCliente", AutoexecCliente, },
{ "ComandosPendientes", ComandosPendientes, },
{ "DisponibilidadComandos", DisponibilidadComandos, },
{ "Arrancar", Arrancar, },
{ "RESPUESTA_Arrancar", RESPUESTA_Arrancar, },
{ "Apagar", Apagar, },
{ "RESPUESTA_Apagar", RESPUESTA_Apagar, },