git-svn-id: https://opengnsys.es/svn/trunk@43 a21b9725-9963-47de-94b9-378ad31fedc9
parent
d7f9e56adf
commit
c0b6f303dc
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,278 @@
|
|||
// *************************************************************************************************************
|
||||
// Aplicacin HIDRA
|
||||
// Copyright 2003-2005 Jos Manuel Alonso. Todos los derechos reservados.
|
||||
// Fichero: hidrapxedhcp.h
|
||||
//
|
||||
// Descripcin:
|
||||
// Fichero de cabecera de hidrapxedhcp.cpp
|
||||
// **************************************************************************************************************
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <ctype.h>
|
||||
#include </usr/include/mysql/mysql.h>
|
||||
#include <pthread.h>
|
||||
#include "Database.h"
|
||||
// _____________________________________________________________________________________________________________
|
||||
|
||||
#define PUERTODHCPORIGEN 67
|
||||
#define PUERTODHCPDESTINO 68
|
||||
|
||||
#define PUERTOBOOTPORIGEN 4011
|
||||
#define PUERTOBOOTPDESTINO 68
|
||||
|
||||
#define PUERTOTFTPORIGEN 69
|
||||
|
||||
#define PUERTOMINUSER 20000
|
||||
#define PUERTOMAXUSER 60000
|
||||
|
||||
#define MAX_INTERFACE_LIST 20
|
||||
#define MAX_NUM_CSADDRS 20
|
||||
|
||||
// __________________________________________________________________________________________________________
|
||||
typedef unsigned long DWORD;
|
||||
typedef unsigned short WORD;
|
||||
typedef int BOOL;
|
||||
typedef char BYTE;
|
||||
typedef int SOCKET;
|
||||
typedef void* LPVOID;
|
||||
|
||||
#define SOCKET_ERROR (-1)
|
||||
#define INVALID_SOCKET (SOCKET)(~0)
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
// __________________________________________________________________________________________________________
|
||||
|
||||
char szPathFileCfg[128],szPathFileLog[128];
|
||||
FILE *FLog,*Fconfig;
|
||||
char mensaje[1000];
|
||||
// _____________________________________________________________________________________________________________
|
||||
#define DHCP_UDP_OVERHEAD (20 + 8 ) // IP header + UDP header
|
||||
#define DHCP_SNAME_LEN 64
|
||||
#define DHCP_FILE_LEN 128
|
||||
#define DHCP_FIXED_NON_UDP 236
|
||||
#define DHCP_FIXED_LEN (DHCP_FIXED_NON_UDP + DHCP_UDP_OVERHEAD) // Longitud de la trama sin las opciones
|
||||
#define DHCP_MTU_MAX 1500
|
||||
#define DHCP_OPTION_LEN (DHCP_MTU_MAX - DHCP_FIXED_LEN)
|
||||
|
||||
#define BOOTP_MIN_LEN 300
|
||||
#define DHCP_MIN_LEN 548
|
||||
|
||||
struct dhcp_packet {
|
||||
unsigned char op; // Message opcode
|
||||
unsigned char htype; // Hardware addr type
|
||||
unsigned char hlen; // Hardware addr length
|
||||
unsigned char hops; // Number of relay agent hops from client
|
||||
unsigned long xid; // Transaction ID
|
||||
unsigned short secs; // Seconds since client started looking
|
||||
unsigned short flags; // Flag bits
|
||||
struct in_addr ciaddr; // Client IP address
|
||||
struct in_addr yiaddr; // Client IP address
|
||||
struct in_addr siaddr; // IP address of next server
|
||||
struct in_addr giaddr; // DHCP relay agent IP address
|
||||
unsigned char chaddr [16];// Client hardware address
|
||||
char sname[DHCP_SNAME_LEN]; // Server name
|
||||
char file[DHCP_FILE_LEN]; // Boot filename
|
||||
unsigned char magiccookie[4];
|
||||
unsigned char options [DHCP_OPTION_LEN-4]; // Optional parameters.
|
||||
};
|
||||
|
||||
// Estructura genrica de una opcin DHCP
|
||||
struct dhcp_opcion {
|
||||
unsigned char codop;
|
||||
unsigned char tam;
|
||||
unsigned char dato;
|
||||
};
|
||||
|
||||
// Cdigo de las distintas opciones DHCP
|
||||
#define DHCP_PAD 0
|
||||
#define DHCP_SUBNET_MASK 1
|
||||
#define DHCP_TIME_OFFSET 2
|
||||
#define DHCP_ROUTERS 3
|
||||
#define DHCP_TIME_SERVERS 4
|
||||
#define DHCP_NAME_SERVERS 5
|
||||
#define DHCP_DOMAIN_NAME_SERVERS 6
|
||||
#define DHCP_LOG_SERVERS 7
|
||||
#define DHCP_COOKIE_SERVERS 8
|
||||
#define DHCP_LPR_SERVERS 9
|
||||
#define DHCP_IMPRESS_SERVERS 10
|
||||
#define DHCP_RESOURCE_LOCATION_SERVERS 11
|
||||
#define DHCP_HOST_NAME 12
|
||||
#define DHCP_BOOT_SIZE 13
|
||||
#define DHCP_MERIT_DUMP 14
|
||||
#define DHCP_DOMAIN_NAME 15
|
||||
#define DHCP_SWAP_SERVER 16
|
||||
#define DHCP_ROOT_PATH 17
|
||||
#define DHCP_EXTENSIONS_PATH 18
|
||||
#define DHCP_IP_FORWARDING 19
|
||||
#define DHCP_NON_LOCAL_SOURCE_ROUTING 20
|
||||
#define DHCP_POLICY_FILTER 21
|
||||
#define DHCP_MAX_DGRAM_REASSEMBLY 22
|
||||
#define DHCP_DEFAULT_IP_TTL 23
|
||||
#define DHCP_PATH_MTU_AGING_TIMEOUT 24
|
||||
#define DHCP_PATH_MTU_PLATEAU_TABLE 25
|
||||
#define DHCP_INTERFACE_MTU 26
|
||||
#define DHCP_ALL_SUBNETS_LOCAL 27
|
||||
#define DHCP_BROADCAST_ADDRESS 28
|
||||
#define DHCP_PERFORM_MASK_DISCOVERY 29
|
||||
#define DHCP_MASK_SUPPLIER 30
|
||||
#define DHCP_ROUTER_DISCOVERY 31
|
||||
#define DHCP_ROUTER_SOLICITATION_ADDRESS 32
|
||||
#define DHCP_STATIC_ROUTES 33
|
||||
#define DHCP_TRAILER_ENCAPSULATION 34
|
||||
#define DHCP_ARP_CACHE_TIMEOUT 35
|
||||
#define DHCP_IEEE802_3_ENCAPSULATION 36
|
||||
#define DHCP_DEFAULT_TCP_TTL 37
|
||||
#define DHCP_TCP_KEEPALIVE_INTERVAL 38
|
||||
#define DHCP_TCP_KEEPALIVE_GARBAGE 39
|
||||
#define DHCP_NIS_DOMAIN 40
|
||||
#define DHCP_NIS_SERVERS 41
|
||||
#define DHCP_NTP_SERVERS 42
|
||||
#define DHCP_VENDOR_ENCAPSULATED_OPTIONS 43
|
||||
#define DHCP_NETBIOS_NAME_SERVERS 44
|
||||
#define DHCP_NETBIOS_DD_SERVER 45
|
||||
#define DHCP_NETBIOS_NODE_TYPE 46
|
||||
#define DHCP_NETBIOS_SCOPE 47
|
||||
#define DHCP_FONT_SERVERS 48
|
||||
#define DHCP_X_DISPLAY_MANAGER 49
|
||||
#define DHCP_REQUESTED_ADDRESS 50
|
||||
#define DHCP_LEASE_TIME 51
|
||||
#define DHCP_OPTION_OVERLOAD 52
|
||||
#define DHCP_MESSAGE_TYPE 53
|
||||
#define DHCP_SERVER_IDENTIFIER 54
|
||||
#define DHCP_PARAMETER_REQUEST_LIST 55
|
||||
#define DHCP_MESSAGE 56
|
||||
#define DHCP_MAX_MESSAGE_SIZE 57
|
||||
#define DHCP_RENEWAL_TIME 58
|
||||
#define DHCP_REBINDING_TIME 59
|
||||
#define DHCP_CLASS_IDENTIFIER 60
|
||||
#define DHCP_CLIENT_IDENTIFIER 61
|
||||
#define DHCP_USER_CLASS_ID 77
|
||||
#define DHCP_END 255
|
||||
|
||||
// DHCP message types.
|
||||
#define DHCPDISCOVER 1
|
||||
#define DHCPOFFER 2
|
||||
#define DHCPREQUEST 3
|
||||
#define DHCPDECLINE 4
|
||||
#define DHCPACK 5
|
||||
#define DHCPNAK 6
|
||||
#define DHCPRELEASE 7
|
||||
#define DHCPINFORM 8
|
||||
|
||||
// Estructura para trabajar en cada hebra con el cliente en cuestion
|
||||
struct TramaDhcpBootp{
|
||||
SOCKET sck;
|
||||
struct sockaddr_in cliente;
|
||||
socklen_t sockaddrsize;
|
||||
struct dhcp_packet pckDchp;
|
||||
char bdIP[16];
|
||||
};
|
||||
// _____________________________________________________________________________________________________________
|
||||
|
||||
#define MAXBLOCK 4096
|
||||
|
||||
|
||||
// TFTP Cdigos de operacin.
|
||||
#define TFTPRRQ 1 // Read request.
|
||||
#define TFTPWRQ 2 // Write request
|
||||
#define TFTPDATA 3 // Read or write the next block of data.
|
||||
#define TFTPACK 4 // Confirnacin de bloque procesado
|
||||
#define TFTPERROR 5 // Error message
|
||||
#define TFTPOACK 6 // Option acknowledgment
|
||||
|
||||
// Paquete TFTP genrico
|
||||
struct tftp_packet
|
||||
{
|
||||
WORD opcode;
|
||||
char buffer[MAXBLOCK+2];
|
||||
};
|
||||
// Paquete TFTP tipo ACK
|
||||
struct tftppacket_ack
|
||||
{
|
||||
WORD opcode;
|
||||
WORD block;
|
||||
char buffer[MAXBLOCK];
|
||||
};
|
||||
// Paquete TFTP tipo ERROR packet
|
||||
struct tftppacket_error
|
||||
{
|
||||
WORD opcode;
|
||||
WORD errorcode;
|
||||
char errormessage[508];
|
||||
};
|
||||
// Estructura para trabajar en cada hebra con el cliente en cuestion
|
||||
struct TramaTftp{
|
||||
SOCKET sck;
|
||||
struct sockaddr_in cliente;
|
||||
socklen_t sockaddrsize;
|
||||
struct tftp_packet pckTftp;
|
||||
FILE * fileboot;
|
||||
int bloquesize;
|
||||
int tsize;
|
||||
int interval;
|
||||
int numblock;
|
||||
unsigned short currentopCode;
|
||||
};
|
||||
//______________________________________________________
|
||||
static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
|
||||
//______________________________________________________
|
||||
char IPlocal[20];
|
||||
char usuario[20];
|
||||
char pasguor[20];
|
||||
char datasource[20];
|
||||
char catalog[50];
|
||||
|
||||
// Prototipo de funciones
|
||||
void RegistraLog(char *,int);
|
||||
int TomaParametrosReg();
|
||||
|
||||
LPVOID ServicioDHCP(LPVOID);
|
||||
LPVOID ServicioBOOTP(LPVOID);
|
||||
LPVOID ServicioTFTP(LPVOID);
|
||||
LPVOID GestionaServicioDHCP(LPVOID);
|
||||
LPVOID GestionaServicioBOOTP(LPVOID);
|
||||
LPVOID GestionaServicioTFTP(LPVOID);
|
||||
|
||||
int ClienteExistente(struct TramaDhcpBootp *,char*,int);
|
||||
int OpcionesPresentes(unsigned char *);
|
||||
unsigned char * BuscaOpcion(dhcp_packet* ,unsigned char );
|
||||
|
||||
int OpcionPXEClient(dhcp_packet* );
|
||||
void ProcesaTramaClientePXE(struct TramaDhcpBootp* trmInfo);
|
||||
void ProcesaTramaClienteDHCP(struct TramaDhcpBootp* trmInfo);
|
||||
void ProcesaTramaClienteBOOTP(struct TramaDhcpBootp* trmInfo);
|
||||
void ProcesaTramaClienteTFTP(struct TramaTftp * trmInfo);
|
||||
|
||||
void RellenaIPCLiente(struct TramaDhcpBootp*);
|
||||
void RellenaIPServidor(struct TramaDhcpBootp*);
|
||||
void dhcpDISCOVER_PXE(struct TramaDhcpBootp*);
|
||||
void dhcpREQUEST_PXE(struct TramaDhcpBootp*);
|
||||
void bootpREQUEST_PXE(struct TramaDhcpBootp*);
|
||||
|
||||
int PeticionFichero(struct TramaTftp*);
|
||||
|
||||
void AdjDHCPOFFER(unsigned char**,int*);
|
||||
void AdjDHCPACK(unsigned char**,int*);
|
||||
void AdjROUTERS(unsigned char** ,int*);
|
||||
void AdjSUBNETMASK(unsigned char**,int*);
|
||||
void AdjCLASSIDENTIFIER(unsigned char** ,int*);
|
||||
void AdjSERVERIDENTIFIER(unsigned char** ,int*);
|
||||
void AdjLEASETIME(unsigned char** ,int*);
|
||||
void AdjBOOTSIZE(unsigned char** ,int*);
|
||||
|
||||
SOCKET TomaSocketUser();
|
||||
struct tm * TomaHora();
|
||||
int split_parametros(char **,char *, char *);
|
||||
void duerme(unsigned int );
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,289 @@
|
|||
// ***************************************************************************************************************************************
|
||||
// Aplicacin HIDRA (Gestin y Admistracin de aulas de informtica)
|
||||
// Copyright 2003-2007 Jos Manuel Alonso. Todos los derechos reservados.
|
||||
// Fichero: hidrax.h
|
||||
// Descripcin:
|
||||
// Fichero de cabecera de hidrax.cpp
|
||||
// ***************************************************************************************************************************************
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
#include <signal.h>
|
||||
|
||||
#define LEER 0
|
||||
#define ESCRIBIR 1
|
||||
|
||||
#define LONGITUD_SCRIPTSALIDA 1024 // Longitud máima de la informacin devuelta por un script
|
||||
#define LONGITUD_PARAMETROS 4048 // Longitud m?ima de la informacin de la trama (parametros)
|
||||
#define LONGITUD_TRAMA LONGITUD_PARAMETROS+11 // Longitud m?ima de la trama completa
|
||||
#define LONGITUD_CONFIGURACION 1024 // Longitud mxima de las configuraciones de particin
|
||||
#define MAX_NUM_CSADDRS 20
|
||||
#define MAX_INTERFACE_LIST 20
|
||||
#define MAXCNX 5 // Mximos intentos de conexión al servidor HIDRA
|
||||
#define MAXITEMS 100
|
||||
#define MAXHTMLMNU 4000
|
||||
#define MAXPARTICIONES 24
|
||||
#define MAXINFOSO 5 // Numero máximo de nemonicos enla inforamción del S.O. de una partición
|
||||
#define MAXARGS 16 // Numero máximo de argumentos enviados a un scripts
|
||||
#define LONSTD 512 // Longitud de memoria estandar
|
||||
#define LONSTDC 256 // Longitud de memoria estandar corta
|
||||
|
||||
#define PUERTOMINUSER 20000
|
||||
#define PUERTOMAXUSER 60000
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define SOCKET_ERROR (-1)
|
||||
#define INVALID_SOCKET (SOCKET)(~0)
|
||||
|
||||
typedef unsigned short WORD;
|
||||
typedef int BOOL;
|
||||
typedef char BYTE;
|
||||
typedef int SOCKET;
|
||||
|
||||
typedef struct{ // EstructUra de la trama recibida
|
||||
char arroba; // cabecera de la trama
|
||||
char identificador[9]; // identificador de la trama
|
||||
char ejecutor; // ejecutor de la trama 1=el servidor hidra 2=el cliente hidra 3=el repositorio
|
||||
char parametros[LONGITUD_PARAMETROS]; // Contenido de la trama (par?etros)
|
||||
}TRAMA;
|
||||
|
||||
TRAMA trama[1];
|
||||
|
||||
char IPlocal[20]; // Ip local
|
||||
char Servidorhidra[20]; // IP servidor HIDRA
|
||||
char Puerto[20]; // Puerto Unicode
|
||||
|
||||
char szPathFileCfg[128];
|
||||
char szPathFileLog[128];
|
||||
|
||||
//___________________________________________________________________________________________________
|
||||
// Variables y estructuras
|
||||
//___________________________________________________________________________________________________
|
||||
|
||||
char cmdshell[LONSTD];
|
||||
char parametros[LONSTD];
|
||||
char* argumentos[MAXARGS];
|
||||
char msglog[LONSTD];
|
||||
char msgcon[LONSTD];
|
||||
char filecmdshell[LONSTDC];
|
||||
char filemenu[LONSTDC];
|
||||
char fileitem[LONSTDC];
|
||||
char fileini[LONSTDC];
|
||||
char filecmd[LONSTDC];
|
||||
|
||||
struct excepcion {
|
||||
int herror;
|
||||
char msg[LONSTDC];
|
||||
char modulo[LONSTDC];
|
||||
};
|
||||
struct excepcion e;
|
||||
|
||||
int ndebug=1; // Nivel de debuger por defecto
|
||||
|
||||
// Nemónicos
|
||||
int MsDos=1;
|
||||
int Win98=2;
|
||||
int Win2K=3;
|
||||
int WinXP=4;
|
||||
int Linux=5;
|
||||
|
||||
BOOL PROCESO=true; // Indicador de la actividad del proceso principal
|
||||
BOOL CACHEEXISTS; // Indica si existe cache
|
||||
|
||||
char HIDRACHEIMAGENES[LONSTDC]; // Path al directorio donde están las imágenes (en la caché)
|
||||
char HIDRASRVIMAGENES[LONSTDC]; // Path al directorio hidra donde están las imágenes (en el repositorio)
|
||||
char HIDRASRVCMD[LONSTDC]; // Path del directorio del repositorio donde se depositan los comandos para el cliente hidra
|
||||
char HIDRASCRIPTS[LONSTDC]; // Path al directorio donde están los scripts de hidra (en el cliente hidra)
|
||||
|
||||
int HIDRAVER; // Versión Hidra
|
||||
int TPAR ; // Tamaño de la particin
|
||||
|
||||
SOCKET sock; // Socket
|
||||
|
||||
struct s_CabMnu {
|
||||
char resolucion[2]; // Resolucin de pantalla
|
||||
char titulo[LONSTDC]; // Titulo del menu
|
||||
char coorx[4]; // Coordenada x
|
||||
char coory[4]; // Coordenada y
|
||||
char modalidad[2]; // modalidad ( numero de items por linea )
|
||||
char scoorx[4]; // Coordenada x // Menu privado
|
||||
char scoory[4]; // Coordenada y
|
||||
char smodalidad[LONSTDC]; // modalidad ( numero de items por linea )
|
||||
char htmmenupub[64]; // Nombre del fichero que contiene el html del menu (público)
|
||||
char htmmenupri[64]; // Nombre del fichero que contiene el html del menu (privado)
|
||||
} CabMnu; // Estructura con los datos de los menús
|
||||
|
||||
BOOL swmnu=false; // Indicador de menu asignado
|
||||
|
||||
struct s_Item{
|
||||
char idaccionmenu[16]; // Identificador del item a ejecutar
|
||||
char urlimg[64]; // Nombre de la imagen de fonfo del botn
|
||||
char literal[LONSTDC]; // Literal del item
|
||||
char tipoitem[2]; // Tipo de otem ( público o privado)
|
||||
char tipoaccion[2]; // Tipo de accin que ejecuta el item
|
||||
} ;
|
||||
|
||||
struct s_Propiedades {
|
||||
char idordenador[16]; // Identificador del ordenador
|
||||
char nombreordenador[64]; // Nombre del ordenador
|
||||
char idaula[16]; // Identificador del aula
|
||||
char servidorhidra[64]; // IP del servidor HUDRA
|
||||
char puerto[16]; // Puerto
|
||||
char iprepo[16]; // Direción IP repositorio
|
||||
char puertorepo[16]; // Puerto
|
||||
char idperfilhard[16]; // Identificador del perfil hardware
|
||||
char IPlocal[16]; // Ip local
|
||||
} Propiedades; // Estructura con los datos del odenador
|
||||
|
||||
struct s_Particiones{
|
||||
char tiposo[64]; // Tipo de sistema operativo
|
||||
char tipopart[16]; // Tipo de particin
|
||||
char tamapart[16]; // Tamao de la particin
|
||||
char numpart[5]; // Nmero de la particin
|
||||
char nombreso[64]; // Nombre del S.O.
|
||||
};
|
||||
|
||||
struct s_Hardware{
|
||||
char nemonico[4]; // Tipo de sistema operativo
|
||||
char tipo[45]; // Tipo de hardware
|
||||
char codigovalor[256]; // Codigo o descripcion
|
||||
}
|
||||
;
|
||||
struct tiposo {
|
||||
char *tipopart;
|
||||
char *tiposo;
|
||||
char *nombreso;
|
||||
};
|
||||
struct tiposo tiposos[] = {
|
||||
{"BIGDOS", "MsDos","MsDos"},
|
||||
{"NTFS","Windows NT Platafom","Windows 2000,XP,2003"},
|
||||
{"FAT32","Windows","Windos 98,SE,Millenium"},
|
||||
{"EXT","Extendida","Extendida"},
|
||||
{"EXT3","Linux","Linux"},
|
||||
{"EXT2","Linux","Linux"},
|
||||
{"VFAT","VFAT","VFAT"},
|
||||
{"CACHE","CACHE","CACHE"},
|
||||
{"UNKNOWN","UNKNOWN","UNKNOWN"},
|
||||
{"EMPTY","Libre","Libre"},
|
||||
{"LINUX-SWAP","","Linux-swap"}};
|
||||
|
||||
int ntiposo = sizeof (tiposos) / sizeof (struct tiposo);
|
||||
|
||||
struct s_Item tbMenu[MAXITEMS]; // Tabla con los items del menu
|
||||
int contitems; // Contador items del menu
|
||||
|
||||
BOOL PRCCMD; // Indicador de comandos interactivos
|
||||
BOOL CMDPTES; // Indicador de comandos pendientes
|
||||
|
||||
//char modulo[64]; // Nombre de la funcin donde se produce el error
|
||||
|
||||
BOOL aut = false; // Variable para controlar el acceso al menu de administracion
|
||||
|
||||
|
||||
char* tbErrores[]={"000-Se han generado errores. No se puede continuar la ejecución de este módulo",\
|
||||
"001-No hay memoria suficiente para el buffer",\
|
||||
"002-No se puede establecer conexión con el servidor Hidra",\
|
||||
"003-El fichero especificado no existe o bien no puede crearse o abrirse",\
|
||||
"004-Comando Error",\
|
||||
"005-El fichero est vacio",\
|
||||
"006-Error en la ejecución del fichero autoexec",\
|
||||
"007-Error en la recuperacion del Menu principal",\
|
||||
"008-No hay espacio reservado para la cache en este disco",\
|
||||
"009-Ha ocurrido algún error generando el perfil software",\
|
||||
"010-IPlocal, NO se ha definido este parámetro",\
|
||||
"011-IPhidra, NO se ha definido este parámetro",\
|
||||
"012-Puerto, NO se ha definido este parámetro",\
|
||||
"013-NO existe fichero de configuración o contiene un error de sintaxis",\
|
||||
"014-Fallo de sintaxis en los parámetros: Debe especificar -f nombre_del_fichero_de_configuración",\
|
||||
"015-No se ha podido crear socket para comunicación con el repositorio",\
|
||||
"016-No se ha podido comunicar con el repositorio",\
|
||||
"017-No existe Menu principal",\
|
||||
"018-No se ha podido recuperar la configuración hardware del ordenador",\
|
||||
"019-El cliente no se ha podido incluir en el sistema por un fallo en la conexión con el Servidor Hidra",\
|
||||
"020-No se ha podido crear la carpeta en el repositorio",\
|
||||
"021-Error en el envío de tramas al servidor Hidra",\
|
||||
"022-Error en la recepción de tramas desde el servidor Hidra",\
|
||||
"023-Error desconocido",\
|
||||
};
|
||||
|
||||
#define MAXERROR 23 // Error máximo cometido
|
||||
|
||||
// Prototipos de funciones
|
||||
char* Desencriptar(char *);
|
||||
char* Encriptar(char *);
|
||||
int ValidacionParametros(int,char**);
|
||||
int CrearArchivoLog(char*);
|
||||
int LeeFileConfiguracion();
|
||||
void Log(char*);
|
||||
void UltimoError(int,char*);
|
||||
void INTROaFINCAD(char*);
|
||||
char* TomaParametro(char*,char*);
|
||||
int SplitParametros(char**,char*, char*);
|
||||
|
||||
int EjecutarScript (char*,char* ,char*);
|
||||
char* ReservaMemoria(int);
|
||||
|
||||
SOCKET TCPConnect(char *,char* );
|
||||
void TCPClose(SOCKET);
|
||||
int AbreConexionTCP(void);
|
||||
void CierraConexionTCP(void);
|
||||
int EnviaTramasHidra(SOCKET,TRAMA*);
|
||||
int RecibeTramasHidra(SOCKET,TRAMA*);
|
||||
int TCPWrite(SOCKET ,TRAMA*);
|
||||
int TCPRead(SOCKET ,TRAMA*);
|
||||
SOCKET UDPConnect();
|
||||
int EnviaTramaRepo(SOCKET,TRAMA*,char*,char*);
|
||||
int RecibeTramaRepo(SOCKET);
|
||||
|
||||
long CreateTextFile(char*,char*);
|
||||
int ExisteFichero(char*);
|
||||
int RemoveFile(char *);
|
||||
int LoadTextFile(char *);
|
||||
|
||||
int ProcesaComandos();
|
||||
int DisponibilidadComandos(int);
|
||||
int GestionTramas(TRAMA *);
|
||||
|
||||
int Cortesia();
|
||||
int NoComandosPtes();
|
||||
int TomaIPlocal();
|
||||
int InclusionClienteHIDRA();
|
||||
int RESPUESTA_InclusionClienteHIDRA(TRAMA*);
|
||||
int ComandosPendientes(void);
|
||||
int Arrancar(TRAMA *,TRAMA *);
|
||||
int Apagar(TRAMA*,TRAMA*);
|
||||
int Reiniciar(TRAMA*,TRAMA*);
|
||||
int Actualizar();
|
||||
int CrearPerfilSoftware(TRAMA*,TRAMA*);
|
||||
int CrearPerfil(char*,char*,char*,char*,char*);
|
||||
int Nemonico(char*);
|
||||
int RestaurarImagen(TRAMA*,TRAMA*);
|
||||
int RestaurandoImagen(char*,char*,char*,char*,char*,char*,char*);
|
||||
int ParticionaryFormatear(TRAMA*,TRAMA*);
|
||||
int Particionar(char*,char*,char* );
|
||||
int Particionando(char*,char*,char*);
|
||||
int Formatear(char*,char*);
|
||||
int SetCachePartitionSize(int);
|
||||
int AutoexecClienteHidra(void);
|
||||
char* LeeConfiguracion(char*);
|
||||
char* TomaNomSO(char*,int);
|
||||
int InventarioHardware(TRAMA *,TRAMA *);
|
||||
int TomaConfiguracion(TRAMA *,TRAMA *);
|
||||
int RespuestaEjecucionComando(TRAMA* , TRAMA *, int);
|
||||
int ExecShell(TRAMA *,TRAMA *);
|
||||
char* URLDecode(char*);
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,131 @@
|
|||
// *************************************************************************************************************
|
||||
// Aplicacin HIDRA
|
||||
// Copyright 2003-2007 Jos Manuel Alonso. Todos los derechos reservados.
|
||||
// Fichero: hidrarepos.h
|
||||
//
|
||||
// Descripcin:
|
||||
// Fichero de cabecera de hidrapxedhcp.cpp
|
||||
// **************************************************************************************************************
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
#include </usr/include/mysql/mysql.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
#include "Database.h"
|
||||
#include "encriptacion.h"
|
||||
|
||||
#define LONGITUD_PARAMETROS 4048 // Longitud m?ima de la informacin de la trama (parametros)
|
||||
#define LONGITUD_TRAMA LONGITUD_PARAMETROS+8 // Longitud m?ima de la trama completa
|
||||
|
||||
#define MAXIMOS_CLIENTES 4000 // M?imo numero de clientes rembo controlados por el servidor rembo
|
||||
#define MAXCNX 5 // Mximos intentos de conexin al servidor HIDRA
|
||||
#define PUERTO_WAKEUP 9 // Puerto por defecto del wake up
|
||||
|
||||
#define PUERTOMINUSER 20000
|
||||
#define PUERTOMAXUSER 60000
|
||||
|
||||
#define LEER 0
|
||||
#define ESCRIBIR 1
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define SOCKET_ERROR (-1)
|
||||
#define INVALID_SOCKET (SOCKET)(~0)
|
||||
|
||||
typedef unsigned long DWORD;
|
||||
typedef unsigned short WORD;
|
||||
typedef int BOOL;
|
||||
typedef char BYTE;
|
||||
typedef int SOCKET;
|
||||
typedef void* LPVOID;
|
||||
|
||||
typedef struct{ // EstructUra de la trama recibida
|
||||
char arroba; // cabecera de la trama
|
||||
char identificador[9]; // identificador de la trama
|
||||
char ejecutor; // ejecutor de la trama 1=el servidor rembo 2=el cliente rembo
|
||||
char parametros[LONGITUD_PARAMETROS]; // Contenido de la trama (par?etros)
|
||||
}TRAMA;
|
||||
|
||||
// Estructura para trabajar en cada hebra con el cliente en cuestion
|
||||
struct TramaRepos{
|
||||
SOCKET sck;
|
||||
struct sockaddr_in cliente;
|
||||
socklen_t sockaddrsize;
|
||||
TRAMA trama;
|
||||
};
|
||||
char szPathFileCfg[128],szPathFileLog[128];
|
||||
FILE *FLog,*Fconfig;
|
||||
SOCKET sClient;
|
||||
|
||||
char IPlocal[20]; // Ip local
|
||||
char servidorhidra[20]; // IP servidor HIDRA
|
||||
char Puerto[20]; // Puerto Unicode
|
||||
int puerto; // Puerto
|
||||
|
||||
char filecmdshell[250];
|
||||
char cmdshell[512];
|
||||
|
||||
char usuario[20];
|
||||
char pasguor[20];
|
||||
char datasource[20];
|
||||
char catalog[50];
|
||||
int puertorepo; // Puerto
|
||||
|
||||
//______________________________________________________
|
||||
static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
|
||||
//______________________________________________________
|
||||
|
||||
char PathHidra[1024]; // path al directorio base de Hidra
|
||||
char PathComandos[1024]; // path al directorio donde se depositan los comandos para los clientes
|
||||
char PathUsuarios[1024]; // path al directorio donde se depositan los ficheros de login de los operadores
|
||||
char PathIconos[1024]; // path al directorio donde se depositan los iconos de los items de los mens
|
||||
|
||||
// Prototipos de funciones
|
||||
void RegistraLog(char *,int );
|
||||
int split_parametros(char **,char *, char * );
|
||||
int TomaConfiguracion(char* );
|
||||
void INTROaFINCAD(char* );
|
||||
void FINCADaINTRO(char*,char*);
|
||||
char * toma_parametro(char* ,char *);
|
||||
int ClienteExistente(TramaRepos *);
|
||||
LPVOID GestionaServicioRepositorio(LPVOID);
|
||||
int Actualizar(TramaRepos*);
|
||||
int Arrancar(TramaRepos *);
|
||||
int Wake_Up(SOCKET,char *);
|
||||
void PasaHexBin( char *,char *);
|
||||
int levanta(char *);
|
||||
int FicheroOperador(TramaRepos *);
|
||||
int IconoItem(TramaRepos *);
|
||||
|
||||
bool ExisteFichero(TramaRepos *);
|
||||
bool EliminaFichero(TramaRepos *);
|
||||
bool LeeFicheroTexto(TramaRepos *);
|
||||
int gestiona_comando(TramaRepos *);
|
||||
bool respuesta_peticion(TramaRepos *,char*,char*,char*);
|
||||
bool RecibePerfilSoftware(TramaRepos *trmInfo);
|
||||
bool EnviaPerfilSoftware(TramaRepos *trmInfo);
|
||||
SOCKET Abre_conexion(char *,int);
|
||||
int envia_tramas(SOCKET,TRAMA *);
|
||||
int recibe_tramas(SOCKET ,TRAMA *);
|
||||
int inclusion_REPO();
|
||||
int RESPUESTA_inclusionREPO(TRAMA *);
|
||||
int TomaRestoConfiguracion(TRAMA *);
|
||||
int RegistraComando(TramaRepos *);
|
||||
int Apagar(TramaRepos *);
|
||||
char * Buffer(int );
|
||||
int TomaPuertoLibre(int *);
|
||||
int ejecutarscript ( char *,char * ,char *);
|
||||
void NwGestionaServicioRepositorio(TramaRepos *);
|
||||
int ExecShell(char*,char *);
|
|
@ -1,11 +1,11 @@
|
|||
<?
|
||||
// *************************************************************************************************************************************************
|
||||
// Aplicación WEB: Hidra
|
||||
// Copyright 2003-2005 José Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creación: Diciembre-2003
|
||||
// Fecha Última modificación: Marzo-2005
|
||||
// Aplicaci<EFBFBD> WEB: Hidra
|
||||
// Copyright 2003-2005 Jos<EFBFBD>Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creaci<EFBFBD>: Diciembre-2003
|
||||
// Fecha <EFBFBD>tima modificaci<63>: Marzo-2005
|
||||
// Nombre del fichero: barramenu.php
|
||||
// Descripción :Este fichero implementa el menu general de la aplicación
|
||||
// Descripci<EFBFBD> :Este fichero implementa el menu general de la aplicaci<63>
|
||||
// *************************************************************************************************************************************************
|
||||
include_once("./includes/ctrlacc.php");
|
||||
include_once("./includes/constantes.php");
|
||||
|
@ -13,9 +13,9 @@ include_once("./idiomas/php/".$idioma."/barramenu_".$idioma.".php");
|
|||
//________________________________________________________________________________________________________
|
||||
?>
|
||||
<HTML>
|
||||
<TITLE>Administración web de aulas</TITLE>
|
||||
<TITLE>Administraci<EFBFBD> web de aulas</TITLE>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type"CONTENT="text/html;charset=ISO-8859-1">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
|
||||
<LINK rel="stylesheet" type="text/css" href="hidra.css">
|
||||
<SCRIPT language="javascript">
|
||||
var currentOp=null;
|
||||
|
|
|
@ -14,8 +14,8 @@ include_once("./clases/AdoPhp.php");
|
|||
$cnx="localhost;usuhidra;passusuhidra;bdhidra;sqlserver"; // Cadena de conexi<78> a la base de datos
|
||||
$ips="10.1.15.3"; // IP del servidor hidra
|
||||
$prt="2008"; // Puerto de comunicaci<63> con el servidor
|
||||
$wer="http://10.1.15.3/webhidra/pagerror.php"; // P<>ina de redireccionamiento de errores
|
||||
$wac="http://10.1.15.3/webhidra/acceso.php"; // P<>ina de login de la aplicaci<63>
|
||||
$wer="http://10.1.15.3/hidraweb/pagerror.php"; // P<>ina de redireccionamiento de errores
|
||||
$wac="http://10.1.15.3/hidraweb/acceso.php"; // P<>ina de login de la aplicaci<63>
|
||||
//========================================================================================================
|
||||
|
||||
$usu="";
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
//________________________________________________________________________________________________________
|
||||
//
|
||||
// Fichero de idiomas php: barramenu_esp.php
|
||||
// Idioma: Español
|
||||
// Idioma: Espa?l
|
||||
//________________________________________________________________________________________________________
|
||||
$TbMsg=array();
|
||||
$TbMsg[0]='Aulas';
|
||||
$TbMsg[1]='Acciones';
|
||||
$TbMsg[2]='Imágenes';
|
||||
$TbMsg[2]='Imágenes';
|
||||
$TbMsg[3]='Hardware';
|
||||
$TbMsg[4]='Software';
|
||||
$TbMsg[5]='Servidores';
|
||||
$TbMsg[6]='Menús';
|
||||
$TbMsg[6]='Menús';
|
||||
$TbMsg[7]='Reservas';
|
||||
$TbMsg[8]='Administración';
|
||||
$TbMsg[8]='Administración';
|
||||
$TbMsg[9]='Iconos';
|
||||
?>
|
|
@ -2,10 +2,10 @@
|
|||
//________________________________________________________________________________________________________
|
||||
//
|
||||
// Fichero de idiomas php: informacion_procedimientos_esp.php
|
||||
// Idioma: Español
|
||||
// Idioma: Español
|
||||
//________________________________________________________________________________________________________
|
||||
$TbMsg=array();
|
||||
$TbMsg[0]='Parámetros de los Comandos del Procedimiento';
|
||||
$TbMsg[1]='Parámetro';
|
||||
$TbMsg[0]='Parámetros de los Comandos del Procedimiento';
|
||||
$TbMsg[1]='Parámetro';
|
||||
$TbMsg[2]='Valor';
|
||||
?>
|
|
@ -1,11 +1,11 @@
|
|||
<?
|
||||
// *************************************************************************************************************************************************
|
||||
// Aplicación WEB: Hidra
|
||||
// Copyright 2003-2005 José Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creación: Año 2003-2004
|
||||
// Fecha Última modificación: Febrero-2005
|
||||
// Aplicaci<EFBFBD> WEB: Hidra
|
||||
// Copyright 2003-2005 Jos<EFBFBD>Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creaci<EFBFBD>: A<> 2003-2004
|
||||
// Fecha <EFBFBD>tima modificaci<63>: Febrero-2005
|
||||
// Nombre del fichero: acciones.php
|
||||
// Descripción :
|
||||
// Descripci<EFBFBD> :
|
||||
// Administra procedimientos,tareas y trabajos de un determinado Centro
|
||||
// *************************************************************************************************************************************************
|
||||
include_once("../includes/ctrlacc.php");
|
||||
|
@ -19,18 +19,19 @@ include_once("../idiomas/php/".$idioma."/acciones_".$idioma.".php");
|
|||
//________________________________________________________________________________________________________
|
||||
$cmd=CreaComando($cadenaconexion);
|
||||
if (!$cmd)
|
||||
Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
|
||||
Header('Location: '.$pagerror.'?herror=2'); // Error de conexi<EFBFBD> con servidor B.D.
|
||||
else
|
||||
$arbolXML=CreaArbol($cmd,$idcentro); // Crea el arbol XML con todos los datos de las acciones registradas en el Centro
|
||||
// Creación del árbol
|
||||
$baseurlimg="../images/signos"; // Url de las imágenes de signo
|
||||
$clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
|
||||
// Creaci<EFBFBD> del <20>bol
|
||||
$baseurlimg="../images/signos"; // Url de las im<EFBFBD>enes de signo
|
||||
$clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del <EFBFBD>bol
|
||||
$arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault,1,0,5);
|
||||
//________________________________________________________________________________________________________
|
||||
?>
|
||||
<HTML>
|
||||
<TITLE>Administración web de aulas</TITLE>
|
||||
<TITLE>Administraci<EFBFBD> web de aulas</TITLE>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
|
||||
<LINK rel="stylesheet" type="text/css" href="../hidra.css">
|
||||
<SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
|
||||
<SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
|
||||
|
@ -43,7 +44,7 @@ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault,1,0,5);
|
|||
<BODY OnContextMenu="return false">
|
||||
<?
|
||||
//________________________________________________________________________________________________________
|
||||
echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
|
||||
echo $arbol->CreaArbolVistaXML(); // Crea <EFBFBD>bol (HTML) a partir del XML
|
||||
$flotante=new MenuContextual(); // Crea objeto MenuContextual
|
||||
|
||||
// Crea contextual de los procedimientos
|
||||
|
@ -77,9 +78,9 @@ include_once("../includes/iframecomun.php");
|
|||
</HTML>
|
||||
<?
|
||||
// *************************************************************************************************************************************************
|
||||
// Devuelve una cadena con formato XML con toda la información de las acciones registradas en un Centro concreto
|
||||
// Devuelve una cadena con formato XML con toda la informaci<EFBFBD> de las acciones registradas en un Centro concreto
|
||||
// Parametros:
|
||||
// - cmd:Una comando ya operativo ( con conexión abierta)
|
||||
// - cmd:Una comando ya operativo ( con conexi<EFBFBD> abierta)
|
||||
// - idcentro: El identificador del centro
|
||||
//________________________________________________________________________________________________________
|
||||
function CreaArbol($cmd,$idcentro){
|
||||
|
@ -311,7 +312,7 @@ function SubarbolXML_Trabajos($cmd,$idcentro,$grupoid){
|
|||
}
|
||||
//________________________________________________________________________________________________________
|
||||
//
|
||||
// Menús Contextuales
|
||||
// Mens Contextuales
|
||||
//________________________________________________________________________________________________________
|
||||
function CreacontextualXMLProcedimientos(){
|
||||
global $AMBITO_PROCEDIMIENTOS;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?
|
||||
// *************************************************************************************************************************************************
|
||||
// Aplicación WEB: Hidra
|
||||
// Copyright 200-2005 José Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creación: Año 2003-2004
|
||||
// Fecha Última modificación: Febrero-2005
|
||||
// Aplicaci<EFBFBD> WEB: Hidra
|
||||
// Copyright 200-2005 Jos<EFBFBD>Manuel Alonso. Todos los derechos reservados.
|
||||
// Fecha Creaci<EFBFBD>: A<> 2003-2004
|
||||
// Fecha <EFBFBD>tima modificaci<63>: Febrero-2005
|
||||
// Nombre del fichero: informacion_procedimientos.php
|
||||
// Descripción :
|
||||
// Descripci<EFBFBD> :
|
||||
// Muestra los comandos que forman parte de un procedimiento y sus valores
|
||||
// *************************************************************************************************************************************************
|
||||
include_once("../includes/ctrlacc.php");
|
||||
|
@ -24,8 +24,9 @@ if (isset($_GET["descripcionprocedimiento"])) $descripcionprocedimiento=$_GET["d
|
|||
//________________________________________________________________________________________________________
|
||||
?>
|
||||
<HTML>
|
||||
<TITLE>Administración web de aulas</TITLE>
|
||||
<TITLE>Administraci<EFBFBD> web de aulas</TITLE>
|
||||
<HEAD>
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
|
||||
<LINK rel="stylesheet" type="text/css" href="../hidra.css">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
@ -78,12 +79,12 @@ function pintacomandos($cmd,$idprocedimientocomando){
|
|||
$textambito="";
|
||||
$urlimg="";
|
||||
$auxVP=split(";",$rs->campos["visuparametros"]); // Parametros visualizables
|
||||
$auxP=split(chr(13),$rs->campos["parametros"]); // Recorre parametros para visualizar los que así sean
|
||||
$auxP=split(chr(13),$rs->campos["parametros"]); // Recorre parametros para visualizar los que as<EFBFBD>sean
|
||||
for ($i=0;$i<sizeof($auxP);$i++){
|
||||
$dualparam=split("=",$auxP[$i]);
|
||||
for ($k=0;$k<sizeof($auxVP);$k++){
|
||||
if($auxVP[$k]==$dualparam[0]){
|
||||
$posp=busca_indicebinariodual($dualparam[0],$tabla_parametros,$cont_parametros); // Busca datos del parámetro en la tabla cargada previamentre con todos los parámetros
|
||||
$posp=busca_indicebinariodual($dualparam[0],$tabla_parametros,$cont_parametros); // Busca datos del par<EFBFBD>etro en la tabla cargada previamentre con todos los par<61>etros
|
||||
if ($posp>=0){
|
||||
$auxtabla_parametros=$tabla_parametros[$posp][1];
|
||||
$HTMLparametros.='<TR>'.chr(13);
|
||||
|
|
Loading…
Reference in New Issue