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
RevLine 
[85179ef]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// ****************************************************************************************************************************************************
[b609c63]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"
[08b717f5]23#include "ogAdmLib.h"
[b609c63]24
[90f061f6]25
[08b717f5]26#define MAXIMOS_CLIENTES  4000 // Máximo número de clientes rembo controlados por el servidor rembo
[90f061f6]27#define MAXIMAS_MULSESIONES 1000 // Máximo numero de sesiones multicast activas simultaneamente
[277d0cd]28#define PUERTO_WAKEUP                   9       // Puerto por defecto del wake up
29
30
31
32typedef  void* LPVOID;
33
34
[08b717f5]35
36// Estructura para trabajar en cada hebra con el cliente en cuestión
[277d0cd]37struct  TramaRepos{
38        SOCKET sck;
39        struct sockaddr_in cliente;
40        socklen_t sockaddrsize;
41        TRAMA trama;
42};
[08b717f5]43
[277d0cd]44FILE *FLog,*Fconfig;
[b609c63]45SOCKET sClient;
46
47char IPlocal[20];               // Ip local
48char servidorhidra[20]; // IP servidor HIDRA
49char Puerto[20];                // Puerto Unicode
50int puerto;     // Puerto
[90f061f6]51char reposcripts[512];  // Path al directorio donde están los scripts
[b609c63]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
[90f061f6]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];
[b609c63]69//______________________________________________________
70static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
71//______________________________________________________
72
[df5bd24]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
[08b717f5]78char PathIconos[250]; // path al directorio donde se depositan los iconos de los items de los menús
[b609c63]79
80// Prototipos de funciones
[08b717f5]81
82
[b609c63]83int TomaConfiguracion(char* );
[08b717f5]84
85
[b609c63]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
[08b717f5]96BOOLEAN ExisteFichero(TramaRepos *);
97BOOLEAN EliminaFichero(TramaRepos *);
98BOOLEAN LeeFicheroTexto(TramaRepos *);
99BOOLEAN mandaFichero(TramaRepos *);
[b609c63]100int gestiona_comando(TramaRepos *);
[08b717f5]101BOOLEAN respuesta_peticion(TramaRepos *,const char*,char*,char*);
102
[b609c63]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 *);
[08b717f5]113BOOLEAN sesionMulticast(TramaRepos *);
114BOOLEAN iniSesionMulticast(char *,char *,char *);
[90f061f6]115int hay_hueco(int *idx);
[08b717f5]116
117
Note: See TracBrowser for help on using the repository browser.