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

remotes/github/debian-pkg
alonso 2009-05-05 14:18:43 +00:00
parent d7f9e56adf
commit c0b6f303dc
12 changed files with 5280 additions and 38 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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 *);

View File

@ -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;

View File

@ -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="";

View File

@ -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';
?>

View File

@ -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';
?>

View File

@ -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;

View File

@ -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);