source: admin/Services/ogAdmServer/sources/ogAdmServer.h @ 5701de1

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 5701de1 was 9fd5e97, checked in by alonso <alonso@…>, 15 years ago

git-svn-id: https://opengnsys.es/svn/trunk@967 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 7.9 KB
RevLine 
[85179ef]1//****************************************************************************************************************************************************
[34fc87f]2//      Aplicación OpenGNSys
3//      Autor: José Manuel Alonso.
4//      Licencia: Open Source
5//      Fichero: ogAdmServer.cpp
6//      Descripción:
[85179ef]7//              Este módulo de la aplicación OpenGNSys implementa las comunicaciones con el Servidor.
[34fc87f]8// ****************************************************************************************************************************************************
9#include <sys/types.h>
10#include <sys/socket.h>
11#include <netinet/in.h>
12#include <arpa/inet.h>
13#include <stdio.h>
14#include <stdlib.h>
15#include <string.h>
16#include <errno.h>
17#include <unistd.h>
18#include <time.h>
19#include <ctype.h>
20#include </usr/include/mysql/mysql.h>
21#include <pthread.h>
22#include "Database.h"
[9fd5e97]23#include "ogAdmLib.h"
[34fc87f]24
[9fd5e97]25#define MAXCMD_PARAMETROS  200  // Máximo número de parámetros de una trama de comandos
26#define MAXIMOS_SOCKETS    4000 // Máximo número de conexiones con ordenadores clientes
27#define MAXIMOS_SRVRMB          200 // Máximo número de servidores rembo
28#define MAXLON_PARAMETROSIPH  3000 // Máxima longitud de un parametro iph
[34fc87f]29
30
31
[9fd5e97]32#define MAXHARDWARE 128 //       MÁXIMOS ELEMENTOS HARDSWARE A DETECTAR
33#define MAXSOFTWARE 2048 //      MÁXIMOS ELEMENTOS SOFTWARE A DETECTAR
34
35
[34fc87f]36
[b0bb14f]37#define COMILLAS_SIMPES 0x27
38#define DOBLES_COMILLAS 0x22
39#define BARRA_INVERTIDA 0x5c
40
41#define LITAMBITO_CENTROS               "centros"
42#define LITAMBITO_GRUPOSAULAS           "gruposaulas"
43#define LITAMBITO_AULAS                 "aulas"
[34fc87f]44#define LITAMBITO_GRUPOSORDENADORES     "gruposordenadores"
[b0bb14f]45#define LITAMBITO_ORDENADORES           "ordenadores"
[34fc87f]46
[9fd5e97]47#define ACCION_EXITOSA          "1" // Finalizada con éxito
[b0bb14f]48#define ACCION_FALLIDA          "2" // Finalizada con errores
[9fd5e97]49#define ACCION_TERMINADA        "3" // Finalizada manualmente con indicación de éxito
50#define ACCION_ABORTADA         "4" // Finalizada manualmente con indicación de errores
[34fc87f]51#define ACCION_SINERRORES       "5" // Activa y sin ningn error
52#define ACCION_CONERRORES       "6" // Activa y con algn error
53
[9fd5e97]54#define ACCION_DETENIDA         "0" // Acción momentanemente parada
55#define ACCION_INICIADA                 "1" // Acción activa
56#define ACCION_FINALIZADA       "2" // Acción finalizada
[34fc87f]57
58#define PROCESOS 0x01
59
[9fd5e97]60#define EJECUCION_PROCEDIMIENTO 0x0000 // Acción Procedimiento
61#define EJECUCION_COMANDO       0x0001 // Acción Comando
62#define EJECUCION_TAREA         0x0002 // Acción Tarea
63#define EJECUCION_TRABAJO               0x0003 // Acción Trabajo
[34fc87f]64
65#define EJECUTOR_servidorHIDRA  0x0001 // Ejecutor Servidor hidra
66#define EJECUTOR_clienteREMBO   0x0002 // Ejecutor cliente rembo
67#define EJECUTOR_servidorREMBO  0x0003 // Ejecutor Servidor rembo
68
69#define CLIENTE_REMBO   "RMB" // Sistema operativo Rembo
70#define CLIENTE_OCUPADO "BSY" // Cliente ocupado
71#define CLIENTE_APAGADO "OFF" // Cliente apagado
72#define CLIENTE_INICIANDO       "INI" // Cliente iniciando
73
[9fd5e97]74#define AUTOINCORPORACION_OFF   0x0000 // Los ordenadores no se pueden dar de alta autmáticamente
75#define AUTOINCORPORACION_ONA   0x0001 // Los ordenadores se pueden dar de alta automáticamente si existe el aula
76#define AUTOINCORPORACION_ONX   0x0002 // Los ordenadores se pueden dar de alta automáticamente y si no existe el aula la crea
77
78
[34fc87f]79
80
81
82
83
84
[9fd5e97]85
86char ecofile[512],msglog[512];
[34fc87f]87FILE *FLog,*Fconfig;
88char AulaUp[2];
[9fd5e97]89int aulaup;     // Switch para permitir  que un ordenador se de de alta automáticamente en un aula existenta
[34fc87f]90                                                // Valores:
[9fd5e97]91                                                //      0: El ordenador No se da de alta automáticamente en un aula
[34fc87f]92                                                //      1: El ordenador se da de alta en un aula si existe
93                                                //      2: El ordenador se da de alta en un aula si existe y si no existe la crea para darse de alta
94
95char IPlocal[20];               // Ip local
96char servidorhidra[20];                 // IP servidor HIDRA
97char Puerto[20];                // Puerto Unicode
[9fd5e97]98int puerto;                             // Puerto
[34fc87f]99char usuario[20];
100char pasguor[20];
101char datasource[20];
102char catalog[50];
103
104
[9fd5e97]105
106struct s_socketCLRMB{ // Estructura usada para guardar información de los clientes
[34fc87f]107        char ip[16]; // IP del cliente
108        char estado[4]; // Tipo de sistema Operativo del cliente "RMB"=rembo,"W98"=windows98,"W2K"=windows 2000, etc
109        SOCKET sock; // Socket por el que se comunica
110        char ipsrvdhcp[16]; // IP del servidor dhcp
111        char ipsrvrmb[16]; // IP del servidor rembo
112};
113struct s_socketCLRMB tbsockets[MAXIMOS_SOCKETS];
114
[9fd5e97]115struct s_socketSRVRMB{ // Estructura usada para guardar información de los servidores REMBO
[34fc87f]116        char ip[16]; // IP del servidor rembo
117        int puertorepo;
118        char ipes[MAXLON_PARAMETROSIPH]; // IP de los clientes rembo
119        int swenv; // Switch de envio
120
121};
122struct s_socketSRVRMB tbsocketsSRVRMB[MAXIMOS_SRVRMB];
123
124static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
125
126// Prototipo de funciones
127void* GestionaConexion(void*);
128void gestiona_comando(SOCKET s,TRAMA trama);
129int manda_comando(SOCKET sock,char* parametros);
130int manda_trama(SOCKET sock,TRAMA* trama);
[9fd5e97]131
[34fc87f]132int manda_trama_servidorrembo(char* ,char *,int);
133
134SOCKET UDPConnect(char *);
135int envia_comandos(SOCKET ,TRAMA* , char* ,int);
136
137
138int hay_hueco(int *);
139BOOLEAN cliente_existente(char *,int*);
140int hay_huecoservidorrembo(int *);
141BOOLEAN servidorrembo_existente(char *,int*);
142
143
[9fd5e97]144
145
146
[34fc87f]147char * corte_iph(char *);
[b0bb14f]148char * escaparComillas(char*);
[34fc87f]149
150int respuesta_cortesia(SOCKET );
151int NoComandosPendientes(SOCKET);
[dad9f34]152int Coloca_estado(char *,const char *,SOCKET);
[34fc87f]153int actualiza_configuracion(Database , Table ,char* ,int,int ,char* );
154int actualiza_hardware(Database , Table ,char* ,char* ,char*);
[b1f0d31]155int actualiza_software(Database , Table ,char* ,char*,char*,char* ,char*);
[536adc4]156int CuestionPerfilHardware(Database , Table ,int ,char* ,int *,int ,char*);
[ec01697]157int CuestionPerfilSoftware(Database, Table ,int ,char* ,int *,int,char *,char*);
[536adc4]158
[34fc87f]159void TomaParticiones(char*, char* ,int );
160int     Toma_menu(Database,Table,char*,int,int);
161int RecuperaItem(SOCKET,char *);
162int ComandosPendientes(SOCKET ,char *);
163int procesaCOMANDOS(SOCKET ,char *);
164int DisponibilidadComandos(SOCKET ,char *);
165
[a6b881e]166int InclusionCliente(SOCKET,char *);
[34fc87f]167int inclusion_srvRMB(char *,int);
168int inclusion_REPO(SOCKET,char *);
169int inclusion_cliWINLNX(SOCKET ,char *);
170
171int Sondeo(SOCKET ,char *);
[2f4f9ff]172int EcoConsola(SOCKET ,char *);
[90f061f6]173int enviaEcoConsola(SOCKET ,const char *);
[34fc87f]174int Arrancar(char *);
175int Actualizar(char *);
176int FicheroOperador(char *);
177int IconoItem(TRAMA*);
178int Conmutar(char *);
[2f4f9ff]179int ConsolaRemota(char *);
[34fc87f]180int RenovarItems(char *);
181
[9fd5e97]182
183
[34fc87f]184
185void PurgarTablaSockets(char *);
186int borra_entrada(int);
187int RESPUESTA_Arrancar(SOCKET ,char *);
188int RESPUESTA_Apagar(SOCKET ,char *);
189int RESPUESTA_Reiniciar(SOCKET ,char *);
[b0bb14f]190int RESPUESTA_IniciarSesion(SOCKET ,char *);
[34fc87f]191int RESPUESTA_Actualizar(SOCKET,char *);
192int RESPUESTA_ExecShell(SOCKET ,char *);
193int RespuestaEstandar(char *,char *,char *,char*,Database, Table);
194int RESPUESTA_CrearPerfilSoftware(SOCKET ,char *);
195int RESPUESTA_CrearSoftwareIncremental(SOCKET,char *);
196int RESPUESTA_RestaurarImagen(SOCKET,char *);
197int RESPUESTA_ParticionaryFormatear(SOCKET ,char *);
198int RESPUESTA_Configurar(SOCKET ,char *);
199int RESPUESTA_TomaConfiguracion(SOCKET ,char *);
200int RESPUESTA_TomaHardware(SOCKET ,char *);
[536adc4]201int RESPUESTA_TomaSoftware(SOCKET ,char *);
[34fc87f]202
203int     RESPUESTA_inclusionREPO(TRAMA*);
204
[dad9f34]205int Actualiza_ordenador_imagen(char *,const char *,char *,Database);
[34fc87f]206
207int busca_comandos(char* ,char*,char *,int *);
208int InsertaNotificaciones(int,int,int,char *,Database);
209int comprueba_resultados(int ,Database );
210int comprueba_finalizada(int ,char *,Database );
211
[90f061f6]212void EnviaServidoresRembo(char*,int);
[34fc87f]213void DesmarcaServidoresRembo(void);
214void MarcaServidoresRembo(char*,char*);
215
216int EjecutarItem(SOCKET,char *);
217BOOLEAN TomaIPServidorRembo(char*,int*);
[277d0cd]218 
[34fc87f]219void envia_tarea(char* );
220int EjecutarTarea(int ,int ,int ,int , Database,char * );
221int EjecutarTrabajo(int ,Database,char *  );
222int cuestion_nuevoordenador(Database,Table ,int*,char *,char *,char *,char *,char*,char*,char*);
223int alta_ordenador(Database db,Table tbl,int*,char *,char *,char*,int,int,int);
224int Toma_idservidorres(Database ,Table ,char*,char*,int*,int*);
[90f061f6]225int tomaIpRepoPort(char *,char *,char *);
[34fc87f]226void cambiacarac(char *,char , char );
227int TomaConfiguracion(char* );
[9fd5e97]228
229
[90f061f6]230unsigned int TomaEnvio();
231int recibeFichero(char *,char *,char *,char *);
Note: See TracBrowser for help on using the repository browser.