source: ogServer-Git/sources/ogAdmLib.h @ 866b6c5

Last change on this file since 866b6c5 was 48de515, checked in by OpenGnSys Support Team <soporte-og@…>, 4 years ago

#971 split socket core logic and main files

Extract socket core and main from ogAdmServer file.

  • Property mode set to 100644
File size: 5.5 KB
RevLine 
[cf7bbda]1// **************************************************************************************************************************************************
2// Libreria: ogAdmLib
3// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
4// Fecha Creación: Marzo-2010
5// Fecha Última modificación: Marzo-2010
6// Nombre del fichero: ogAdmLib.h
7// Descripción: Este fichero implementa el archivo de cabecera de la libreria  ogAdmLib
8// **************************************************************************************************************************************************
9// ________________________________________________________________________________________________________
10// Valores definidos
11// ________________________________________________________________________________________________________
12#define LONSTD 1024     // Longitud de memoria estandar
13#define LONINT 16       // Longitud de memoria estandar para un número entero
14#define LONFIL 1024     // Longitud de memoria estandar para nombres de archivo completos (incluido path)
15#define LONIP 16        // Longitud de memoria estandar para cadenas que contiene una dirección IP
16#define LONMAC 16       // Longitud de memoria estandar para cadenas que contiene una dirección MAC
17#define LONSQL 8192     // Longitud de memoria estandar para una sentencia SQL
18#define LONPRM 4098     // Longitud estandar de los parámetros del fichero de configuración del servicio
19#define LONSCP 4098     // Longitud estandar de los parámetros de las tramas
20#define LONFUN 512      // Longitud estandar de los nombres de las funciones que procesan las tramas
21#define LONSUC 4098     // Longitud de los mensajes de sucesos
22#define LONBLK 8192     // Longitud de los paquetes de tramas leidos cada vez
23#define MAXPRM 20       // Máximo número de parámeros del fichero de configuración del servicio
24#define MAXPAR 128      // Maximo numero de particiones manejadas por el sistema, ahora con GPT es 128
25#define MAXLONURL 1024 // Longitud máxima de una dirección url con parámetros
26
27#define LONHEXPRM 5 // Longitud del campo que contiene el tamaño de la cadena de parámetros
28#define LONGITUD_CABECERATRAMA 16       // Longitud de la cabecera de las tramas
29#define LONGITUD_PARAMETROS 8192        // Longitud estandar de la información de la trama (parámetros)
30#define MAXCMD_PARAMETROS  200  // Máximo número de parámetros de una trama
31
32#define MAXIMOS_CLIENTES        4000    // Máximo número de conexiones con ordenadores clientes
33#define MAXIMAS_FUNCIONES       LONSTD  // Máximo número de funciones que procesan los mensajes entre servicio y clientes
34
35#define CLIENTE_OCUPADO "BSY" // Cliente ocupado
36#define CLIENTE_APAGADO "OFF" // Cliente apagado
37#define CLIENTE_INICIANDO "INI" // Cliente iniciando
38
39#define ACCION_SINRESULTADO 0 // Sin resultado
40#define ACCION_EXITOSA  1 // Finalizada con éxito
41#define ACCION_FALLIDA  2 // Finalizada con errores
42
43#define ACCION_INICIADA 1 // Acción activa
44#define ACCION_DETENIDA 2 // Acción momentanemente parada
45#define ACCION_FINALIZADA 3 // Accion finalizada
46
47#define EJECUCION_COMANDO 1
48#define EJECUCION_PROCEDIMIENTO 2
49#define EJECUCION_TAREA 3
50#define EJECUCION_RESERVA 4
51
52#define AMBITO_CENTROS 0x01
53#define AMBITO_GRUPOSAULAS 0x02
54#define AMBITO_AULAS 0x04
55#define AMBITO_GRUPOSORDENADORES 0x08
56#define AMBITO_ORDENADORES 0x10
57
58#define ANNOREF 2009 // Año de referencia base
59
60#define PUERTO_WAKEUP   9 // Puerto wake up
61
62#define MAXHARDWARE 128 //       Máximos elementos hardware a detectar
63#define MAXSOFTWARE 8096 //      Máximos elementos software a detectar
64// ________________________________________________________________________________________________________
65// Tipos definidos
66// ________________________________________________________________________________________________________
67typedef unsigned long DWORD;
68typedef unsigned short  WORD;
69typedef int  BOOLEAN;
70typedef char BYTE;
71typedef int  SOCKET;
72typedef  void* LPVOID;
73
74#define TRUE 1
75#define FALSE 0
76
77// ________________________________________________________________________________________________________
78// Variables globales
79// ________________________________________________________________________________________________________
80char szPathFileCfg[LONSTD],szPathFileLog[LONSTD];
81int ndebug; // Nivel de debuger
82
83typedef struct{         // Estructura de las tramas
84        char arroba;    // Caracter arroba siempre
85        char identificador[14]; // Identificador de la trama, siempre JMMLCAMDJ_MCDJ
86        char tipo;      // Tipo de mensaje
87        long lonprm;    // Longitud en hexadecimal de los parámetros
88        char *parametros; // Parámetros de la trama
89}TRAMA;
90// ________________________________________________________________________________________________________
91// Prototipo de funciones
92// ________________________________________________________________________________________________________
93BOOLEAN validacionParametros(int,char**,int);
94char* reservaMemoria(int);
95char* ampliaMemoria(char*,int);
96void liberaMemoria(void*);
97BOOLEAN initParametros(TRAMA*,int);
98int splitCadena(char **,char *, char);
99char* StrToUpper(char *);
100void FINCADaINTRO(TRAMA*);
101char *tomaParametro(const char*,TRAMA*);
102char *copiaParametro(const char*,TRAMA *);
103BOOLEAN contieneIP(char *,char *);
104char* rTrim(char *);
105BOOLEAN enviaMensaje(SOCKET *,TRAMA *,char);
106BOOLEAN mandaTrama(SOCKET*,TRAMA*);
107BOOLEAN sendData(SOCKET *, char* ,int );
108BOOLEAN enviaTrama(SOCKET *,TRAMA *);
109TRAMA* recibeTrama(SOCKET*);
110char* escaparCadena(char *cadena);
111
112#include <stddef.h> /* for offsetof. */
113
114#define container_of(ptr, type, member) ({                      \
115        typeof( ((type *)0)->member ) *__mptr = (ptr);          \
116        (type *)( (char *)__mptr - offsetof(type,member) );})
117
[48de515]118#include <stdbool.h>
119
120bool tomaConfiguracion(const char *filecfg);
Note: See TracBrowser for help on using the repository browser.