[3ec149c] | 1 | // ******************************************************************************************************** |
---|
| 2 | // Servicio: ogAdmServer |
---|
| 3 | // Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla |
---|
| 4 | // Fecha Creación: Marzo-2010 |
---|
| 5 | // Fecha Última modificación: Marzo-2010 |
---|
| 6 | // Nombre del fichero: ogAdmServer.h |
---|
| 7 | // Descripción: Este fichero implementa el servicio de administración general del sistema |
---|
| 8 | // ******************************************************************************************************** |
---|
| 9 | #include <stdio.h> |
---|
| 10 | #include <stdlib.h> |
---|
| 11 | #include <string.h> |
---|
| 12 | #include <ctype.h> |
---|
| 13 | #include <errno.h> |
---|
| 14 | #include <unistd.h> |
---|
| 15 | #include <time.h> |
---|
| 16 | #include <sys/types.h> |
---|
| 17 | #include <sys/socket.h> |
---|
| 18 | #include <netinet/in.h> |
---|
| 19 | #include <arpa/inet.h> |
---|
| 20 | #include </usr/include/mysql/mysql.h> |
---|
| 21 | #include "Database.h" |
---|
| 22 | #include "ogAdmLib.h" |
---|
| 23 | // ________________________________________________________________________________________________________ |
---|
| 24 | // Variables globales |
---|
| 25 | // ________________________________________________________________________________________________________ |
---|
| 26 | char servidoradm[LONPRM]; // Dirección IP del servidor de administración |
---|
| 27 | char puerto[LONPRM]; // Puerto de comunicación |
---|
| 28 | char usuario[LONPRM]; // Usuario de acceso a la base de datos |
---|
| 29 | char pasguor[LONPRM]; // Password del usuario |
---|
| 30 | char datasource[LONPRM]; // Dirección IP del gestor de base de datos |
---|
| 31 | char catalog[LONPRM]; // Nombre de la base de datos |
---|
| 32 | char aulaup[LONPRM]; // Conmutador para registro automático de clientes |
---|
| 33 | |
---|
| 34 | typedef struct{ // Estructura usada para guardar información de los clientes |
---|
| 35 | char ip[LONIP]; // IP del cliente |
---|
| 36 | char estado[4]; // Tipo de Sistema Operativo en que se encuentra el cliente |
---|
| 37 | SOCKET sock; // Socket por el que se comunica |
---|
| 38 | }SOCKETCL; |
---|
| 39 | SOCKETCL tbsockets[MAXIMOS_CLIENTES]; |
---|
| 40 | |
---|
| 41 | BOOLEAN swcSocket; // Switch para indicar si se debe cerrar el socket del cliente |
---|
| 42 | |
---|
| 43 | typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas |
---|
| 44 | char nf[LONFUN]; // Nombre de la función |
---|
| 45 | BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama |
---|
| 46 | }MSGFUN; |
---|
| 47 | MSGFUN tbfuncionesServer[MAXIMAS_FUNCIONES]; |
---|
| 48 | // ________________________________________________________________________________________________________ |
---|
| 49 | // Prototipo de funciones |
---|
| 50 | // ________________________________________________________________________________________________________ |
---|
| 51 | |
---|
| 52 | BOOLEAN tomaConfiguracion(char*); |
---|
| 53 | BOOLEAN gestionaTrama(SOCKET*); |
---|
| 54 | BOOLEAN Sondeo(SOCKET*,TRAMA*); |
---|
| 55 | BOOLEAN respuestaSondeo(SOCKET *,TRAMA*); |
---|
[f679cf0] | 56 | BOOLEAN InclusionClienteWinLnx(SOCKET*,TRAMA*); |
---|
[3ec149c] | 57 | BOOLEAN InclusionCliente(SOCKET*,TRAMA*); |
---|
| 58 | BOOLEAN registraCliente(char *); |
---|
| 59 | |
---|
[f679cf0] | 60 | BOOLEAN procesoInclusionClienteWinLnx(SOCKET*,TRAMA*,int*,char*); |
---|
[3ec149c] | 61 | BOOLEAN procesoInclusionCliente(SOCKET*,TRAMA*); |
---|
| 62 | BOOLEAN clienteExistente(char *,int *); |
---|
| 63 | BOOLEAN clienteDisponible(char *,int *); |
---|
| 64 | BOOLEAN hayHueco(int *); |
---|
| 65 | BOOLEAN actualizaConfiguracion(Database , Table ,char* ,int); |
---|
| 66 | BOOLEAN AutoexecCliente(SOCKET *, TRAMA *); |
---|
| 67 | BOOLEAN recorreProcedimientos(Database ,char* ,FILE*,char*); |
---|
| 68 | |
---|
| 69 | BOOLEAN tomaRepositorio(Database ,Table ,char*,int*); |
---|
| 70 | BOOLEAN buscaComandos(char *,TRAMA *,int *); |
---|
| 71 | BOOLEAN DisponibilidadComandos(SOCKET*,TRAMA*); |
---|
| 72 | BOOLEAN respuestaEstandar(TRAMA *,char **,char **,char ** ,Database *,Table *); |
---|
| 73 | BOOLEAN respuestaConsola(SOCKET *,TRAMA *,int); |
---|
| 74 | BOOLEAN enviaComando(TRAMA *ptrTrama,const char*); |
---|
| 75 | |
---|
| 76 | BOOLEAN Actualizar(SOCKET *, TRAMA* ); |
---|
| 77 | BOOLEAN Purgar(SOCKET *, TRAMA* ); |
---|
| 78 | |
---|
| 79 | BOOLEAN ConsolaRemota(SOCKET *,TRAMA*); |
---|
| 80 | BOOLEAN RESPUESTA_ConsolaRemota(SOCKET *,TRAMA*); |
---|
| 81 | BOOLEAN EcoConsola(SOCKET *,TRAMA*); |
---|
| 82 | |
---|
| 83 | BOOLEAN Comando(SOCKET *,TRAMA *); |
---|
| 84 | BOOLEAN RESPUESTA_Comando(SOCKET *,TRAMA *); |
---|
| 85 | |
---|
| 86 | BOOLEAN Arrancar(SOCKET *,TRAMA *); |
---|
[4329e85] | 87 | BOOLEAN Levanta(char*,char*,char*); |
---|
| 88 | BOOLEAN WakeUp(SOCKET *,char*,char*,char*); |
---|
[3ec149c] | 89 | void PasaHexBin(char *,char *); |
---|
| 90 | BOOLEAN RESPUESTA_Arrancar(SOCKET *,TRAMA*); |
---|
| 91 | BOOLEAN Apagar(SOCKET *,TRAMA *); |
---|
| 92 | BOOLEAN RESPUESTA_Apagar(SOCKET *,TRAMA *); |
---|
| 93 | BOOLEAN Reiniciar(SOCKET *,TRAMA *); |
---|
| 94 | BOOLEAN RESPUESTA_Reiniciar(SOCKET *,TRAMA *); |
---|
| 95 | BOOLEAN IniciarSesion(SOCKET *,TRAMA *); |
---|
| 96 | BOOLEAN RESPUESTA_IniciarSesion(SOCKET *,TRAMA *); |
---|
| 97 | BOOLEAN CrearImagen(SOCKET *,TRAMA *); |
---|
[0a73ecf7] | 98 | BOOLEAN CrearImagenBasica(SOCKET *,TRAMA *); |
---|
| 99 | BOOLEAN CrearSoftIncremental(SOCKET *,TRAMA *); |
---|
[3ec149c] | 100 | BOOLEAN RESPUESTA_CrearImagen(SOCKET *,TRAMA *); |
---|
[0a73ecf7] | 101 | BOOLEAN RESPUESTA_CrearImagenBasica(SOCKET *,TRAMA *); |
---|
| 102 | BOOLEAN RESPUESTA_CrearSoftIncremental(SOCKET *,TRAMA *); |
---|
[ea7314e] | 103 | BOOLEAN actualizaCreacionImagen(Database,Table,char*,char*,char*,char*,char*,char*); |
---|
[0a73ecf7] | 104 | BOOLEAN actualizaCreacionSoftIncremental(Database,Table,char*,char*); |
---|
[3ec149c] | 105 | BOOLEAN RestaurarImagen(SOCKET *,TRAMA *); |
---|
[0a73ecf7] | 106 | BOOLEAN RestaurarImagenBasica(SOCKET *,TRAMA *); |
---|
| 107 | BOOLEAN RestaurarSoftIncremental(SOCKET *,TRAMA *); |
---|
[3ec149c] | 108 | BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *,TRAMA *); |
---|
[0a73ecf7] | 109 | BOOLEAN RESPUESTA_RestaurarImagenBasica(SOCKET *,TRAMA *); |
---|
| 110 | BOOLEAN RESPUESTA_RestaurarSoftIncremental(SOCKET *,TRAMA *); |
---|
[f256817] | 111 | BOOLEAN actualizaRestauracionImagen(Database,Table,char*,char*,char*,char*,char*); |
---|
[3ec149c] | 112 | BOOLEAN Configurar(SOCKET *,TRAMA* ); |
---|
| 113 | BOOLEAN RESPUESTA_Configurar(SOCKET *,TRAMA* ); |
---|
| 114 | BOOLEAN actualizaConfigurar(Database , Table , char* ); |
---|
| 115 | BOOLEAN InventarioHardware(SOCKET *,TRAMA *); |
---|
| 116 | BOOLEAN RESPUESTA_InventarioHardware(SOCKET *,TRAMA *); |
---|
| 117 | BOOLEAN actualizaHardware(Database, Table,char* ,char*,char*,char*); |
---|
| 118 | BOOLEAN cuestionPerfilHardware(Database,Table,char*,char*,int,char*,char*,int *,int); |
---|
| 119 | BOOLEAN actualizaSoftware(Database , Table , char* , char* , char*,char*,char*); |
---|
| 120 | BOOLEAN cuestionPerfilSoftware(Database, Table, char*, char*,int,char*,char*,char*,int *,int); |
---|
| 121 | |
---|
| 122 | BOOLEAN enviaArchivo(SOCKET *, TRAMA *); |
---|
| 123 | BOOLEAN recibeArchivo(SOCKET *, TRAMA *); |
---|
| 124 | BOOLEAN envioProgramacion(SOCKET *, TRAMA *); |
---|
| 125 | |
---|
| 126 | int checkDato(Database,Table,char*,const char*,const char*,const char*); |
---|
| 127 | |
---|
| 128 | |
---|
| 129 | |
---|