source: admin/Services/ogAdmRepo/sources/ogAdmRepo.h @ a7fa603

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 a7fa603 was d08ec1cc, checked in by alonso <alonso@…>, 16 years ago

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

  • Property mode set to 100644
File size: 4.1 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 "encriptacion.h"
24
25#define LONGITUD_PARAMETROS 4048        // Longitud m?ima de la informacin de la trama (parametros)
26#define LONGITUD_TRAMA          LONGITUD_PARAMETROS+8   // Longitud m?ima de la trama completa
27
28#define MAXIMOS_CLIENTES  4000 // M?imo numero de clientes rembo controlados por el servidor rembo
29#define MAXCNX 5                // Mximos intentos de conexin al servidor HIDRA
30#define PUERTO_WAKEUP                   9       // Puerto por defecto del wake up
31
32#define PUERTOMINUSER 20000
33#define PUERTOMAXUSER 60000
34
35#define LEER            0
36#define ESCRIBIR        1
37
38#define TRUE 1
39#define FALSE 0
40
41#define true 1
42#define false 0
43
44#define SOCKET_ERROR            (-1)
45#define INVALID_SOCKET  (SOCKET)(~0)
46
47typedef unsigned long DWORD;
48typedef unsigned short  WORD;
49typedef  int  BOOL;
50typedef char  BYTE;
51typedef  int  SOCKET;
52typedef  void* LPVOID;
53
54typedef struct{         // EstructUra de la trama recibida
55        char arroba;    // cabecera de la trama
56        char identificador[9];  // identificador de la trama
57        char ejecutor;  // ejecutor de la trama 1=el servidor rembo  2=el cliente rembo
58        char parametros[LONGITUD_PARAMETROS]; // Contenido de la trama (par?etros)
59}TRAMA;
60
61// Estructura para trabajar en cada hebra con el cliente en cuestion
62struct  TramaRepos{
63        SOCKET sck;
64        struct sockaddr_in cliente;
65        socklen_t sockaddrsize;
66        TRAMA trama;
67};
68char szPathFileCfg[128],szPathFileLog[128];
69FILE *FLog,*Fconfig;
70SOCKET sClient;
71
72char IPlocal[20];               // Ip local
73char servidorhidra[20]; // IP servidor HIDRA
74char Puerto[20];                // Puerto Unicode
75int puerto;     // Puerto
76
77char filecmdshell[250];
78char cmdshell[512];
79
80char msglog[250];
81
82char usuario[20];
83char pasguor[20];
84char datasource[20];
85char catalog[50];
86int puertorepo; // Puerto
87
88//______________________________________________________
89static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
90//______________________________________________________
91
92char PathHidra[250]; // path al directorio base de Hidra
93char PathPXE[250]; // path al directorio PXE
94
95char PathComandos[250]; // path al directorio donde se depositan los comandos para los clientes
96char PathUsuarios[250]; // path al directorio donde se depositan los ficheros de login de los operadores
97char PathIconos[250]; // path al directorio donde se depositan los iconos de los items de los mens
98
99// Prototipos de funciones
100void RegistraLog(const char *,int );
101int split_parametros(char **,char *, char * );
102int TomaConfiguracion(char* );
103void INTROaFINCAD(char* );
104void FINCADaINTRO(char*,char*);
105char * toma_parametro(const char* ,char *);
106int ClienteExistente(TramaRepos *);
107LPVOID GestionaServicioRepositorio(LPVOID);
108int     Actualizar(TramaRepos*);
109int Arrancar(TramaRepos *);
110int Wake_Up(SOCKET,char *);
111void PasaHexBin( char *,char *);
112int levanta(char *);
113int FicheroOperador(TramaRepos *);
114int IconoItem(TramaRepos *);
115
116bool ExisteFichero(TramaRepos *);
117bool EliminaFichero(TramaRepos *);
118bool LeeFicheroTexto(TramaRepos *);
119int gestiona_comando(TramaRepos *);
120bool respuesta_peticion(TramaRepos *,const char*,char*,char*);
121SOCKET Abre_conexion(char *,int);
122int envia_tramas(SOCKET,TRAMA *);
123int recibe_tramas(SOCKET ,TRAMA *);
124int inclusion_REPO();
125int RESPUESTA_inclusionREPO(TRAMA *);
126int TomaRestoConfiguracion(TRAMA *);
127int RegistraComando(TramaRepos *);
128int Apagar(TramaRepos *);
129char * Buffer(int );
130int TomaPuertoLibre(int *);
131void NwGestionaServicioRepositorio(TramaRepos *);
Note: See TracBrowser for help on using the repository browser.