source: admin/Sources/ogAdmRepo/sources/ogAdmRepo.h @ e5714d5

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

primeros archivos de administración

git-svn-id: https://opengnsys.es/svn/trunk@458 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[1024]; // path al directorio base de Hidra
93char PathComandos[1024]; // path al directorio donde se depositan los comandos para los clientes
94char PathUsuarios[1024]; // path al directorio donde se depositan los ficheros de login de los operadores
95char PathIconos[1024]; // path al directorio donde se depositan los iconos de los items de los mens
96
97// Prototipos de funciones
98void RegistraLog(const char *,int );
99int split_parametros(char **,char *, char * );
100int TomaConfiguracion(char* );
101void INTROaFINCAD(char* );
102void FINCADaINTRO(char*,char*);
103char * toma_parametro(const char* ,char *);
104int ClienteExistente(TramaRepos *);
105LPVOID GestionaServicioRepositorio(LPVOID);
106int     Actualizar(TramaRepos*);
107int Arrancar(TramaRepos *);
108int Wake_Up(SOCKET,char *);
109void PasaHexBin( char *,char *);
110int levanta(char *);
111int FicheroOperador(TramaRepos *);
112int IconoItem(TramaRepos *);
113
114bool ExisteFichero(TramaRepos *);
115bool EliminaFichero(TramaRepos *);
116bool LeeFicheroTexto(TramaRepos *);
117int gestiona_comando(TramaRepos *);
118bool respuesta_peticion(TramaRepos *,const char*,char*,char*);
119SOCKET Abre_conexion(char *,int);
120int envia_tramas(SOCKET,TRAMA *);
121int recibe_tramas(SOCKET ,TRAMA *);
122int inclusion_REPO();
123int RESPUESTA_inclusionREPO(TRAMA *);
124int TomaRestoConfiguracion(TRAMA *);
125int RegistraComando(TramaRepos *);
126int Apagar(TramaRepos *);
127char * Buffer(int );
128int TomaPuertoLibre(int *);
129void NwGestionaServicioRepositorio(TramaRepos *);
Note: See TracBrowser for help on using the repository browser.