source: admin/Services/ogAdmRepo/sources/ogAdmRepo.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 08b717f5, checked in by alonso <alonso@…>, 15 years ago

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

  • Property mode set to 100644
File size: 3.5 KB
Line 
1//****************************************************************************************************************************************************
2//      Aplicación OpenGNSys
3//      Autor: José Manuel Alonso.
4//      Licencia: Open Source
5//      Fichero: ogAdmServer.cpp
6//      Descripción:
7//              Este módulo de la aplicación OpenGNSys implementa las comunicaciones con el Repositorio.
8// ****************************************************************************************************************************************************
9#include <sys/types.h>
10#include <sys/socket.h>
11#include <arpa/inet.h>
12#include <stdio.h>
13#include <stdlib.h>
14#include <string.h>
15#include <errno.h>
16#include <unistd.h>
17#include <ctype.h>
18#include <time.h>
19#include </usr/include/mysql/mysql.h>
20#include <pthread.h>
21#include <signal.h>
22#include "Database.h"
23#include "ogAdmLib.h"
24
25
26#define MAXIMOS_CLIENTES  4000 // Máximo número de clientes rembo controlados por el servidor rembo
27#define MAXIMAS_MULSESIONES 1000 // Máximo numero de sesiones multicast activas simultaneamente
28#define PUERTO_WAKEUP                   9       // Puerto por defecto del wake up
29
30
31
32typedef  void* LPVOID;
33
34
35
36// Estructura para trabajar en cada hebra con el cliente en cuestión
37struct  TramaRepos{
38        SOCKET sck;
39        struct sockaddr_in cliente;
40        socklen_t sockaddrsize;
41        TRAMA trama;
42};
43
44FILE *FLog,*Fconfig;
45SOCKET sClient;
46
47char IPlocal[20];               // Ip local
48char servidorhidra[20]; // IP servidor HIDRA
49char Puerto[20];                // Puerto Unicode
50int puerto;     // Puerto
51char reposcripts[512];  // Path al directorio donde están los scripts
52
53char filecmdshell[250];
54char cmdshell[512];
55
56char msglog[250];
57
58char usuario[20];
59char pasguor[20];
60char datasource[20];
61char catalog[50];
62int puertorepo; // Puerto
63
64struct s_inisesionMulticast{ // Estructura usada para guardar información sesiones multicast
65        char ides[32]; // Identificador sesión multicast
66        char *ipes; // Ipes de los clientes necesarios para la sesión
67};
68struct s_inisesionMulticast tbsmul[MAXIMAS_MULSESIONES];
69//______________________________________________________
70static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
71//______________________________________________________
72
73char PathHidra[250]; // path al directorio base de Hidra
74char PathPXE[250]; // path al directorio PXE
75
76char PathComandos[250]; // path al directorio donde se depositan los comandos para los clientes
77char PathUsuarios[250]; // path al directorio donde se depositan los ficheros de login de los operadores
78char PathIconos[250]; // path al directorio donde se depositan los iconos de los items de los menús
79
80// Prototipos de funciones
81
82
83int TomaConfiguracion(char* );
84
85
86int ClienteExistente(TramaRepos *);
87LPVOID GestionaServicioRepositorio(LPVOID);
88int     Actualizar(TramaRepos*);
89int Arrancar(TramaRepos *);
90int Wake_Up(SOCKET,char *);
91void PasaHexBin( char *,char *);
92int levanta(char *);
93int FicheroOperador(TramaRepos *);
94int IconoItem(TramaRepos *);
95
96BOOLEAN ExisteFichero(TramaRepos *);
97BOOLEAN EliminaFichero(TramaRepos *);
98BOOLEAN LeeFicheroTexto(TramaRepos *);
99BOOLEAN mandaFichero(TramaRepos *);
100int gestiona_comando(TramaRepos *);
101BOOLEAN respuesta_peticion(TramaRepos *,const char*,char*,char*);
102
103int envia_tramas(SOCKET,TRAMA *);
104int recibe_tramas(SOCKET ,TRAMA *);
105int inclusion_REPO();
106int RESPUESTA_inclusionREPO(TRAMA *);
107int TomaRestoConfiguracion(TRAMA *);
108int RegistraComando(TramaRepos *);
109int Apagar(TramaRepos *);
110char * Buffer(int );
111int TomaPuertoLibre(int *);
112void NwGestionaServicioRepositorio(TramaRepos *);
113BOOLEAN sesionMulticast(TramaRepos *);
114BOOLEAN iniSesionMulticast(char *,char *,char *);
115int hay_hueco(int *idx);
116
117
Note: See TracBrowser for help on using the repository browser.