diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2019-04-09 10:52:05 +0200 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2019-04-09 10:52:05 +0200 |
commit | 18789001de4763b88ac61eaea8272d5228d85d64 (patch) | |
tree | b1a797c63b5abcb47a40345d970687d2d4c7db95 | |
parent | 32d40bbfa5adaa238c6f337d14e03fda4b8be572 (diff) | |
parent | d95983402ddcb8b0a7db6542ba51a03bd8604db8 (diff) |
#750: OGAgent activation and deactivation now compatible with new web console.
432 files changed, 4967 insertions, 6819 deletions
diff --git a/admin/Sources/Clients/ogagent/src/cfg/ogagent.cfg b/admin/Sources/Clients/ogagent/src/cfg/ogagent.cfg index 8888e88a..3fa38ab2 100644 --- a/admin/Sources/Clients/ogagent/src/cfg/ogagent.cfg +++ b/admin/Sources/Clients/ogagent/src/cfg/ogagent.cfg @@ -8,6 +8,8 @@ path=test_modules/server # Remote OpenGnsys Service remote=https://192.168.2.10/opengnsys/rest +# Alternate OpenGnsys Service (comment out to enable this option) +#altremote=https://10.0.2.2/opengnsys/rest # Log Level, if ommited, will be set to INFO log=DEBUG diff --git a/admin/Sources/Clients/ogagent/src/opengnsys/RESTApi.py b/admin/Sources/Clients/ogagent/src/opengnsys/RESTApi.py index 5caaf8c4..d785dfa7 100644 --- a/admin/Sources/Clients/ogagent/src/opengnsys/RESTApi.py +++ b/admin/Sources/Clients/ogagent/src/opengnsys/RESTApi.py @@ -26,9 +26,9 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -''' +""" @author: Adolfo Gómez, dkmaster at dkmon dot com -''' +""" # pylint: disable-msg=E1101,W0703 @@ -43,7 +43,8 @@ from .log import logger from .utils import exceptionToMessage -VERIFY_CERT = False +VERIFY_CERT = False # Do not check server certificate +TIMEOUT = 5 # Connection timout, in seconds class RESTError(Exception): @@ -66,30 +67,34 @@ try: except Exception: pass # In fact, isn't too important, but wil log warns to logging file + class REST(object): - ''' + """ Simple interface to remote REST apis. The constructor expects the "base url" as parameter, that is, the url that will be common on all REST requests Remember that this is a helper for "easy of use". You can provide your owns using requests lib for example. Examples: v = REST('https://example.com/rest/v1/') (Can omit trailing / if desired) v.sendMessage('hello?param1=1¶m2=2') - This will generate a GET message to https://example.com/rest/v1/hello?param1=1¶m2=2, and return the deserialized JSON result or an exception + This will generate a GET message to https://example.com/rest/v1/hello?param1=1¶m2=2, and return the + deserialized JSON result or an exception v.sendMessage('hello?param1=1¶m2=2', {'name': 'mario' }) - This will generate a POST message to https://example.com/rest/v1/hello?param1=1¶m2=2, with json encoded body {'name': 'mario' }, and also returns + This will generate a POST message to https://example.com/rest/v1/hello?param1=1¶m2=2, with json encoded + body {'name': 'mario' }, and also returns the deserialized JSON result or raises an exception in case of error - ''' + """ + def __init__(self, url): - ''' + """ Initializes the REST helper url is the full url of the REST API Base, as for example "https://example.com/rest/v1". @param url The url of the REST API Base. The trailing '/' can be included or omitted, as desired. - ''' + """ self.endpoint = url - + if self.endpoint[-1] != '/': self.endpoint += '/' - + # Some OSs ships very old python requests lib implementations, workaround them... try: self.newerRequestLib = requests.__version__.split('.')[0] >= '1' @@ -105,37 +110,39 @@ class REST(object): pass def _getUrl(self, method): - ''' + """ Internal method Composes the URL based on "method" @param method: Method to append to base url for composition - ''' + """ url = self.endpoint + method return url def _request(self, url, data=None): - ''' + """ Launches the request @param url: The url to obtain - @param data: if None, the request will be sent as a GET request. If != None, the request will be sent as a POST, with data serialized as JSON in the body. - ''' + @param data: if None, the request will be sent as a GET request. If != None, the request will be sent as a POST, + with data serialized as JSON in the body. + """ try: if data is None: logger.debug('Requesting using GET (no data provided) {}'.format(url)) - # Old requests version does not support verify, but they do not checks ssl certificate by default + # Old requests version does not support verify, but it do not checks ssl certificate by default if self.newerRequestLib: - r = requests.get(url, verify=VERIFY_CERT) + r = requests.get(url, verify=VERIFY_CERT, timeout=TIMEOUT) else: - r = requests.get(url) - else: # POST + r = requests.get(url) + else: # POST logger.debug('Requesting using POST {}, data: {}'.format(url, data)) if self.newerRequestLib: - r = requests.post(url, data=data, headers={'content-type': 'application/json'}, verify=VERIFY_CERT) + r = requests.post(url, data=data, headers={'content-type': 'application/json'}, + verify=VERIFY_CERT, timeout=TIMEOUT) else: r = requests.post(url, data=data, headers={'content-type': 'application/json'}) - r = json.loads(r.content) # Using instead of r.json() to make compatible with oooold rquests lib versions + r = json.loads(r.content) # Using instead of r.json() to make compatible with old requests lib versions except requests.exceptions.RequestException as e: raise ConnectionError(e) except Exception as e: @@ -144,17 +151,17 @@ class REST(object): return r def sendMessage(self, msg, data=None, processData=True): - ''' + """ Sends a message to remote REST server @param data: if None or omitted, message will be a GET, else it will send a POST @param processData: if True, data will be serialized to json before sending, else, data will be sent as "raw" - ''' + """ logger.debug('Invoking post message {} with data {}'.format(msg, data)) if processData and data is not None: data = json.dumps(data) - + url = self._getUrl(msg) logger.debug('Requesting {}'.format(url)) - + return self._request(url, data) diff --git a/admin/Sources/Clients/ogagent/src/opengnsys/config.py b/admin/Sources/Clients/ogagent/src/opengnsys/config.py index c86c6979..d1f3ede6 100644 --- a/admin/Sources/Clients/ogagent/src/opengnsys/config.py +++ b/admin/Sources/Clients/ogagent/src/opengnsys/config.py @@ -33,7 +33,6 @@ from __future__ import unicode_literals from ConfigParser import SafeConfigParser -from .log import logger config = None diff --git a/admin/Sources/Clients/ogagent/src/opengnsys/modules/server/OpenGnSys/__init__.py b/admin/Sources/Clients/ogagent/src/opengnsys/modules/server/OpenGnSys/__init__.py index 1a51b0ff..d9704259 100644 --- a/admin/Sources/Clients/ogagent/src/opengnsys/modules/server/OpenGnSys/__init__.py +++ b/admin/Sources/Clients/ogagent/src/opengnsys/modules/server/OpenGnSys/__init__.py @@ -46,6 +46,7 @@ from opengnsys.workers import ServerWorker from six.moves.urllib import parse + # Error handler decorator. def catch_background_error(fnc): def wrapper(*args, **kwargs): @@ -85,7 +86,7 @@ def check_locked_partition(sync=False): class OpenGnSysWorker(ServerWorker): name = 'opengnsys' - interface = None # Binded interface for OpenGnsys + interface = None # Bound interface for OpenGnsys REST = None # REST object loggedin = False # User session flag locked = {} # Locked partitions @@ -138,7 +139,7 @@ class OpenGnSysWorker(ServerWorker): except OSError: pass # Copy file "HostsFile.FirstOctetOfIPAddress" to "HostsFile", if it exists - # (used in "exam mode" of the University of Seville) + # (used in "exam mode" from the University of Seville) hostsFile = os.path.join(operations.get_etc_path(), 'hosts') newHostsFile = hostsFile + '.' + self.interface.ip.split('.')[0] if os.path.isfile(newHostsFile): @@ -146,17 +147,41 @@ class OpenGnSysWorker(ServerWorker): # Generate random secret to send on activation self.random = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(self.length)) # Send initialization message - self.REST.sendMessage('ogagent/started', {'mac': self.interface.mac, 'ip': self.interface.ip, - 'secret': self.random, 'ostype': operations.os_type, - 'osversion': operations.os_version}) + try: + try: + self.REST.sendMessage('ogagent/started', {'mac': self.interface.mac, 'ip': self.interface.ip, + 'secret': self.random, 'ostype': operations.os_type, + 'osversion': operations.os_version}) + # New web compatibility. + #self.REST.sendMessage('clients/statuses', {'mac': self.interface.mac, 'ip': self.interface.ip, + # 'secret': self.random, 'ostype': operations.os_type, + # 'osversion': operations.os_version, + # 'status': operations.os_type.lower()}) + except: + # Trying to initialize on alternative server, if defined + # (used in "exam mode" from the University of Seville) + self.REST = REST(self.service.config.get('opengnsys', 'altremote')) + self.REST.sendMessage('ogagent/started', {'mac': self.interface.mac, 'ip': self.interface.ip, + 'secret': self.random, 'ostype': operations.osType, + 'osversion': operations.osVersion, 'alt_url': True}) + # New web compatibility. + #self.REST.sendMessage('clients/statuses', {'mac': self.interface.mac, 'ip': self.interface.ip, + # 'secret': self.random, 'ostype': operations.os_type, + # 'osversion': operations.os_version, + # 'status': operations.os_type.lower()}) + except: + logger.error('Initialization error') def onDeactivation(self): """ Sends OGAgent stopping notification to OpenGnsys server """ logger.debug('onDeactivation') - self.REST.sendMessage('ogagent/stopped', {'mac': self.interface.mac, 'ip': self.interface.ip, - 'ostype': operations.os_type, 'osversion': operations.os_version}) + #self.REST.sendMessage('ogagent/stopped', {'mac': self.interface.mac, 'ip': self.interface.ip, + # 'ostype': operations.os_type, 'osversion': operations.os_version}) + self.REST.sendMessage('clients/statuses', {'mac': self.interface.mac, 'ip': self.interface.ip, + 'ostype': operations.os_type, 'osversion': operations.os_version + 'status': 'off'}) def processClientMessage(self, message, data): logger.debug('Got OpenGnsys message from client: {}, data {}'.format(message, data)) diff --git a/admin/Sources/Includes/ogAdmLib.c b/admin/Sources/Includes/ogAdmLib.c index a526d173..7faa9f08 100644 --- a/admin/Sources/Includes/ogAdmLib.c +++ b/admin/Sources/Includes/ogAdmLib.c @@ -7,53 +7,6 @@ // Descripción: Este fichero implementa una libreria de funciones para uso común de los servicios // ************************************************************************************************************************************************** // ________________________________________________________________________________________________________ -// Función: encriptar -// -// Descripción: -// Encripta una cadena -// Parametros: -// - cadena : Cadena a encriptar -// - ret : Longitud de la caden cadena encriptada -// ________________________________________________________________________________________________________ -char * encriptar(char *cadena,int*ret) -{ - /* - int i,lon; - char clave; - - clave = 12 & 0xFFU; // La clave elegida entre 0-255, en este caso 12 - lon=strlen(cadena); - for(i=0;i<lon;i++) - cadena[i]=((char)cadena[i] ^ clave) & 0xFF; - *ret=lon; - */ - return(cadena); -} -// ________________________________________________________________________________________________________ -// Función: desencriptar -// -// Descripción: -// Desencripta una cadena -// Parametros: -// - cadena : Cadena a desencriptar -// - ret : Longitud de la caden cadena encriptada -// ________________________________________________________________________________________________________ -char * desencriptar(char *cadena,int* ret) -{ - /* - int i,lon; - char clave; - - clave = 12 & 0xFFU; // La clave elegida entre 0-255, en este caso 12 - lon=strlen(cadena); - for(i=0;i<lon;i++) - cadena[i]=((char)cadena[i] ^ clave) & 0xFF; - *ret=lon; - */ - return(cadena); - -} -// ________________________________________________________________________________________________________ // Función: tomaHora // // Descripción: @@ -606,7 +559,6 @@ BOOLEAN mandaTrama(SOCKET *sock, TRAMA* ptrTrama) BOOLEAN res; lonprm=strlen(ptrTrama->parametros); - ptrTrama->parametros=encriptar(ptrTrama->parametros,&lonprm); // Encripta los parámetros sprintf(hlonprm,"%05X",LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Convierte en hexadecimal la longitud buffer=reservaMemoria(LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Longitud total de la trama @@ -699,7 +651,7 @@ TRAMA* recibeTrama(SOCKET *sock) if (!ptrTrama) return(NULL); memcpy(ptrTrama,buffer,LONGITUD_CABECERATRAMA); // Copia cabecera de trama lon=lSize-(LONGITUD_CABECERATRAMA+LONHEXPRM); // Longitud de los parametros aún encriptados - bufferd=desencriptar(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],&lon); + bufferd = &buffer[LONGITUD_CABECERATRAMA+LONHEXPRM]; initParametros(ptrTrama,lon); // Desencripta la trama memcpy(ptrTrama->parametros,bufferd,lon); liberaMemoria((char*)buffer); @@ -1120,23 +1072,3 @@ TRAMA* recibeMensaje(SOCKET *socket_c) } // ________________________________________________________________________________________________________ - -int tomaPuerto(SOCKET s) -{ - struct sockaddr_in sin; - socklen_t addrlen = sizeof(sin); - int local_port; - - if(getpeername(s, (struct sockaddr *)&sin, &addrlen) == 0 - && sin.sin_family == AF_INET && - addrlen == sizeof(sin)) - { - local_port = ntohs(sin.sin_port); - } - else - local_port=-1; - - return(local_port); - -} - diff --git a/admin/Sources/Includes/ogAdmLib.h b/admin/Sources/Includes/ogAdmLib.h index 2e63bbc5..42279a3e 100644 --- a/admin/Sources/Includes/ogAdmLib.h +++ b/admin/Sources/Includes/ogAdmLib.h @@ -232,7 +232,7 @@ const char* tbErrores[]={"Se han generado errores. No se puede continuar la ejec "094-Ha habido algún problerma al procesar la actualización después de crear una imagen",\ "095-Ha habido algún problerma al procesar la actualización después de restaurar una imagen",\ "096-Ha habido algún problerma al procesar la actualización después de crear un software incremental",\ - + "097-Este fichero de log está obsoleto, este proceso usa ahora syslog para gestionar los mensajes de log",\ }; // ________________________________________________________________________________________________________ // Tabla de mensajes @@ -267,12 +267,12 @@ const char* tbMensajes[]={"",\ // ________________________________________________________________________________________________________ // Prototipo de funciones // ________________________________________________________________________________________________________ -char *desencriptar(char *,int*); -char *encriptar(char *,int*); struct tm * tomaHora(); void registraLog(const char *,const char *,int ); void errorLog(const char *,int ,int); +#define og_log(err, swe) errorLog(__FUNCTION__, err, swe) void errorInfo(const char *,char *); +#define og_info(err) errorInfo(__FUNCTION__, err) void infoLog(int); void infoDebug(char*); BOOLEAN validacionParametros(int,char**,int); @@ -310,5 +310,10 @@ BOOLEAN escribeArchivo(char *,char*); BOOLEAN sendArchivo(SOCKET *,char *); BOOLEAN recArchivo(SOCKET *,char *); SOCKET TCPConnect(char *,char*); -int tomaPuerto(SOCKET); + +#include <stddef.h> /* for offsetof. */ + +#define container_of(ptr, type, member) ({ \ + typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) diff --git a/admin/Sources/Services/ogAdmAgent/Makefile b/admin/Sources/Services/ogAdmAgent/Makefile index 143c4c81..b9d39b9b 100644 --- a/admin/Sources/Services/ogAdmAgent/Makefile +++ b/admin/Sources/Services/ogAdmAgent/Makefile @@ -8,8 +8,7 @@ INSTALL_DIR := /opt/opengnsys # Opciones de compilacion CFLAGS := $(shell mysql_config --cflags) -CFLAGS += -O0 -g -Wall -I../../Includes # Depuracion -#CFLAGS += -O3 -I../../Includes # Optimizacion +CFLAGS += -g -Wall -I../../Includes CPPFLAGS := $(CFLAGS) # Opciones de linkado @@ -23,7 +22,6 @@ all: $(PROYECTO) $(PROYECTO): $(OBJS) g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO) -# strip $(PROYECTO) # Optimizacion install: $(PROYECTO) cp $(PROYECTO) $(INSTALL_DIR)/sbin diff --git a/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp index cce297fe..2f0f442b 100644 --- a/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp +++ b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp @@ -1,911 +1,914 @@ -// ********************************************************************************************************
-// Servicio: ogAdmAgent
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: Marzo-2010
-// Fecha Última modificación: Marzo-2010
-// Nombre del fichero: ogAdmAgent.cpp
-// Descripción: Este fichero implementa el servicio agente del sistema. Revisa a intervalos
-// regulares la base de datos para comprobar si existen acciones programadas.
-// ********************************************************************************************************
-#include "ogAdmAgent.h"
-#include "ogAdmLib.c"
-//________________________________________________________________________________________________________
-// Función: tomaConfiguracion
-//
-// Descripción:
-// Lee el fichero de configuración del servicio
-// Parámetros:
-// filecfg : Ruta completa al fichero de configuración
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-//________________________________________________________________________________________________________
-BOOLEAN tomaConfiguracion(char* filecfg)
-{
- char modulo[] = "tomaConfiguracion()";
-
- if (filecfg == NULL || strlen(filecfg) == 0) {
- errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
- return (FALSE);
- }
- FILE *fcfg;
- long lSize;
- char * buffer, *lineas[MAXPRM], *dualparametro[2];
- int i, numlin, resul;
-
- fcfg = fopen(filecfg, "rt");
- if (fcfg == NULL) {
- errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
- return (FALSE);
- }
-
- fseek(fcfg, 0, SEEK_END);
- lSize = ftell(fcfg); // Obtiene tamaño del fichero.
- rewind(fcfg);
- buffer = (char*) reservaMemoria(lSize + 1); // Toma memoria para el buffer de lectura.
- if (buffer == NULL) { // No hay memoria suficiente para el buffer
- errorLog(modulo, 3, FALSE);
- return (FALSE);
- }
- fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
- buffer[lSize] = (char) NULL;
- fclose(fcfg);
-
- servidoradm[0] = (char) NULL; //inicializar variables globales
- puerto[0] = (char) NULL;
- usuario[0] = (char) NULL;
- pasguor[0] = (char) NULL;
- datasource[0] = (char) NULL;
- catalog[0] = (char) NULL;
-
- numlin = splitCadena(lineas, buffer, '\n');
- for (i = 0; i < numlin; i++) {
- splitCadena(dualparametro, lineas[i], '=');
- resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM");
- if (resul == 0)
- strcpy(servidoradm, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
- if (resul == 0)
- strcpy(puerto, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO");
- if (resul == 0)
- strcpy(usuario, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD");
- if (resul == 0)
- strcpy(pasguor, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE");
- if (resul == 0)
- strcpy(datasource, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG");
- if (resul == 0)
- strcpy(catalog, dualparametro[1]);
- }
- if (servidoradm[0] == (char) NULL) {
- errorLog(modulo, 4, FALSE); // Falta parámetro SERVIDORADM
- return (FALSE);
- }
- if (puerto[0] == (char) NULL) {
- errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO
- return (FALSE);
- }
- if (usuario[0] == (char) NULL) {
- errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO
- return (FALSE);
- }
- if (pasguor[0] == (char) NULL) {
- errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD
- return (FALSE);
- }
- if (datasource[0] == (char) NULL) {
- errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE
- return (FALSE);
- }
- if (catalog[0] == (char) NULL) {
- errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG
- return (FALSE);
- }
- return (TRUE);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: diadelaSemana
-//
-// Descripción:
-// Calcula el número del día de la semana que corresponde a una fecha
-// Parámetros:
-// - dia: Un día
-// - mes: Un mes
-// - anno: Un año
-// Devuelve:
-// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo
-// ________________________________________________________________________________________________________
-
-int diadelaSemana(WORD dia,WORD mes,WORD anno)
-{
- int i,cont,dias_anuales;
- int desplazamiento_dias=6;
- int orddiasem;
-
- cont =0;
- for (i=1900;i<anno;i++){
- if (bisiesto(i)) dias_anuales=366; else dias_anuales=365;
- cont+=dias_anuales;
- }
- for (i=1;i<mes;i++){
- if (i!=2)
- cont+=dias_meses[i];
- else{
- if (bisiesto(anno))
- cont+=29;
- else
- cont+=28;
- }
- }
- cont+=dia+desplazamiento_dias;
- orddiasem=(cont%7);
- if(orddiasem==0) orddiasem=7;
- return(orddiasem);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: bisiesto
-//
-// Descripción:
-// Calcula si un año es bisiesto o no lo es
-// Parámetros:
-// - anno: Un año
-// Devuelve:
-// TRUE si el año es bisiesto
-// FALSE si no es bisiesto
-// ________________________________________________________________________________________________________
-
-BOOLEAN bisiesto(WORD anno){
- return(anno%4==0);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: semanadelMes
-//
-// Descripción:
-// Calcula el número de semana perteneciente a un día del mes
-// Parámetros:
-// - ordiasem_1: Orden semanal (1,2...) del primer dia del mes que se pasa como parámetro
-// - diames: El mes concreto
-// Devuelve:
-// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo , de ese mes
-// ________________________________________________________________________________________________________
-
-int semanadelMes(int ordiasem_1,int diames)
-{
- int nwdia,resto,cociente;
-
- nwdia=diames+ordiasem_1-1;
- cociente=nwdia/7;
- resto=nwdia%7;
- if(resto>0) cociente++;
- return(cociente);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: buscaAccion
-//
-// Descripción:
-// Busca en la base de datos, acciones programadas
-// Parámetros:
-// - db: Objeto base de datos (operativo)
-// - dia : Día actual del mes
-// - mes : mes en curso
-// - anno : Año en curso
-// - hora : Hora actual
-// - minutos : Minutos actuales
-// - diasemana : Dia de la semana 1=lunes,2=martes ... ( 0 Domingo)
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-// ________________________________________________________________________________________________________
-
-BOOLEAN buscaAccion(Database db,WORD dia,WORD mes,WORD anno,WORD hora,WORD minutos,WORD diasemana)
-{
- char msglog[LONSTD], sqlstr[LONSQL];
- Table tbl;
- BYTE swampm,bitsemana;
- int ordsem,ordulsem,ordiasem_1,maxdias;
- int sesionprog;
- char modulo[] = "buscaAccion()";
-
- /* Año de comienzo */
- anno=anno-ANNOREF; //
- /* Preparación hora */
- if(hora>11){
- hora-=12;
- swampm=1; // Es P.M.
- }
- else
- swampm=0; // Es am
- /* Preparación semana */
- if(diasemana==0) diasemana=7; // El domingo
-
- // Cuestión semanas
- ordiasem_1=diadelaSemana(1,mes,anno+2009);
- ordsem=semanadelMes(ordiasem_1,dia); // Calcula el número de la semana
- if (mes!=2) // Toma el último día de ese mes
- maxdias=dias_meses[mes];
- else{
- if (bisiesto(anno+ANNOREF))
- maxdias=29;
- else
- maxdias=28;
- }
- ordulsem=semanadelMes(ordiasem_1,maxdias); // Calcula el número de la última semana
- bitsemana=HEX_semanas[ordsem];
- if(ordsem==ordulsem) // Si es la última semana del mes
- bitsemana|=HEX_semanas[6];
-
- sprintf(sqlstr,"SELECT DISTINCT idprogramacion,tipoaccion,identificador,sesion,idcentro,"\
- "tareas.descripcion as descritarea"\
- " FROM programaciones"\
- " LEFT OUTER JOIN tareas ON tareas.idtarea=programaciones.identificador"\
- " WHERE suspendida=0 "\
- " AND (annos & %d <> 0) "\
- " AND (meses & %d<>0) "\
- " AND ((diario & %d<>0) OR (dias & %d<>0) OR (semanas & %d<>0))"\
- " AND (horas & %d<>0) AND ampm=%d AND minutos=%d",\
- HEX_annos[anno],\
- HEX_meses[mes],\
- HEX_dias[dia],\
- HEX_diasemana[diasemana],\
- bitsemana,\
- HEX_horas[hora],\
- swampm,minutos);
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(tbl.ISEOF()){
- return(TRUE); // No hay acciones programadas
- }
-
- while(!tbl.ISEOF()){
- if(!tbl.Get("idprogramacion",idprogramacion)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("tipoaccion",tipoaccion)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("identificador",idtipoaccion)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("sesion",sesionprog)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("idcentro",idcentro)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
-
- if(tipoaccion==EJECUCION_COMANDO){ // Es una programación de un comando
- return(ejecutarComando(db,idprogramacion,sesionprog));
- }
- else{
-
- if(tipoaccion==EJECUCION_TAREA){
- if(!tbl.Get("descritarea",descriaccion)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- return(ejecutarTarea(db,idprogramacion,idtipoaccion));
- }
- else{
- if(tipoaccion==EJECUCION_RESERVA){
- EjecutarReserva(idtipoaccion,db); // Es una programación de un trabajo
- }
- }
- }
- tbl.MoveNext();
- }
- return(TRUE);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: ejecutarComando
-//
-// Descripción:
-// Ejecuta un comando programado
-// Parámetros:
-// - db: Objeto base de datos (operativo)
-// - idcomando: Identificador del comando
-// - sesion: Sesión correspondiente al comando cuando se grabó en la tabla acciones
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-// ________________________________________________________________________________________________________
-
-BOOLEAN ejecutarComando(Database db,int idprogramacion,int sesion )
-{
- struct tm* st;
- char msglog[LONSTD], sqlstr[LONSQL];
- char fechahorareg[24];
- char modulo[] = "ejecutarComando()";
-
- st = tomaHora();
- sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1,
- st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
-
- sprintf(sqlstr,"UPDATE acciones SET estado=%d,idprogramacion=%d,fechahorareg='%s'"\
- " WHERE sesion=%d", ACCION_INICIADA,idprogramacion,fechahorareg,sesion);
-
- if (!db.Execute(sqlstr)) { // Error al recuperar los datos
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- return(enviaPeticion(idprogramacion));
-}
-// ________________________________________________________________________________________________________
-//
-// Función: ejecutarProcedimiento
-//
-// Descripción:
-// Ejecuta un procedimiento programado
-// Parámetros:
-// - db: Objeto base de datos (operativo)
-// - idprocedimiento: Identificador del procedimiento
-// - ambito: Ámbito de aplicación
-// - idambito: Identificador del ámbito
-// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-// ________________________________________________________________________________________________________
-
-BOOLEAN ejecutarProcedimiento(Database db,int idprocedimiento,int ambito,int idambito,char* restrambito)
-{
- char msglog[LONSTD], sqlstr[LONSQL],*parametros;
- Table tbl;
- int procedimientoid,idcomando,lonprm;
- char modulo[] = "ejecutarProcedimiento()";
-
- sprintf(sqlstr,"SELECT idcomando,procedimientoid,parametros,length(parametros) as lonprm"\
- " FROM procedimientos_acciones"\
- " WHERE idprocedimiento=%d ORDER BY orden",idprocedimiento);
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
-
- if(tbl.ISEOF()){
- return(TRUE); // No exustde tarea
- }
- while(!tbl.ISEOF()){
- if(!tbl.Get("procedimientoid",procedimientoid)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(procedimientoid>0){ // Procedimiento recursivo
- if(!ejecutarProcedimiento(db,procedimientoid,ambito,idambito,restrambito)){
- return(false);
- }
- }
- else{
- if(!tbl.Get("lonprm",lonprm)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- parametros = reservaMemoria(lonprm+1); // Reserva para almacenar los parametros del procedimiento
- if (parametros == NULL) {
- errorLog(modulo, 3, FALSE);
- return (FALSE);
- }
- if(!tbl.Get("parametros",parametros)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- liberaMemoria(parametros);
- return (FALSE);
- }
- liberaMemoria(parametros);
- if(!tbl.Get("idcomando",idcomando)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
-
- if(!insertaComando(db,idcomando,parametros,idprocedimiento,ambito,idambito,restrambito))
- return(false);
- }
- tbl.MoveNext();
- }
- return(TRUE);
-}
-// ________________________________________________________________________________________________________
-//
-// Función: ejecutarTarea
-//
-// Descripción:
-// Ejecuta una tarea programada
-// Parámetros:
-// - db: Objeto base de datos (operativo)
-// - idtarea: Identificador de la tarea
-// - idprogramacion: Identificador de la programación
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-// ________________________________________________________________________________________________________
-
-BOOLEAN ejecutarTarea(Database db, int idprogramacion, int idtarea)
-{
- char msglog[LONSTD], sqlstr[LONSQL];
- Table tbl;
- int tareaid,ambito,idambito,idprocedimiento,lonrestrambito;
- char* restrambito;
- char modulo[] = "ejecutarTarea()";
-
- sprintf(sqlstr,"SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,"\
- " tareas.ambito,tareas.idambito,tareas.restrambito,length(tareas.restrambito) as lonrestrambito"\
- " FROM tareas"\
- " INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea"\
- " WHERE tareas_acciones.idtarea=%d ORDER BY tareas_acciones.orden",idtarea);
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
-
- if(tbl.ISEOF()){
- return(TRUE); // No existe tarea
- }
-
- while(!tbl.ISEOF()){
- if(!tbl.Get("tareaid",tareaid)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(tareaid>0){ // Tarea recursiva
- if(!ejecutarTarea(db,idprogramacion,tareaid)){
- return(false);
- }
- }
- else{
- if(!tbl.Get("ambito",ambito)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("idambito",idambito)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("lonrestrambito",lonrestrambito)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- restrambito = reservaMemoria(lonrestrambito+1);
- if (restrambito == NULL) {
- errorLog(modulo, 3, FALSE);
- return (FALSE);
- }
- if(!tbl.Get("restrambito",restrambito)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- liberaMemoria(restrambito);
- return (FALSE);
- }
- liberaMemoria(restrambito);
- RecopilaIpesMacs(db,ambito,idambito,restrambito); // Recopila Ipes del ámbito
- if(!tbl.Get("idprocedimiento",idprocedimiento)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sesion=time(NULL);
-
- if(!ejecutarProcedimiento(db,idprocedimiento,ambito,idambito,restrambito))
- return(FALSE);
- }
- tbl.MoveNext();
- }
- return(enviaPeticion(idprogramacion));
-}
-// ________________________________________________________________________________________________________
-//
-// Función: ejecutarTarea
-//
-// Descripción:
-// Registra un procedimiento para un ambito concreto
-// Parámetros:
-// - db: Objeto base de datos (operativo)
-// - idcomando: Identificador del comando
-// - idprocedimiento: Identificador del procedimiento
-// - ambito: Ámbito de aplicación
-// - idambito: Identificador del ámbito
-// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-//________________________________________________________________________________________________________
-BOOLEAN insertaComando(Database db,int idcomando,char*parametros,int idprocedimiento,int ambito,int idambito,char*restrambito)
-{
- char msglog[LONSTD], sqlstr[LONSQL];
- struct tm* st;
- char *auxID[MAXIMOS_CLIENTES],*auxIP[MAXIMOS_CLIENTES];
- char fechahorareg[24];
- int i;
- char modulo[] = "insertaComando()";
-
- if(concli==0) return(TRUE); // No hay ordenadores en el ámbito
-
- st = tomaHora();
- sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1, st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
-
- splitCadena(auxID,cadenaid,',');
- splitCadena(auxIP,cadenaip,';');
-
- for (i=0;i<concli;i++){
- sprintf(sqlstr,"INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,"\
- "sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,"\
- "restrambito,idprocedimiento,idcentro,idprogramacion)"\
- " VALUES (%s,%d,%d,'%s','%s',%d,%d,'%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d)",\
- auxID[i],tipoaccion,idtipoaccion,descriaccion,auxIP[i],sesion,idcomando,parametros,fechahorareg,\
- ACCION_INICIADA,ACCION_SINRESULTADO,ambito,idambito,restrambito,idprocedimiento,idcentro,idprogramacion);
- if (!db.Execute(sqlstr)) { // Error al recuperar los datos
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- }
- return(TRUE);
-}
-// _____________________________________________________________________________________________________________
-// Función: EjecutarReserva
-//
-// Descripción:
-// Registra una acción (Tarea) y la envía para su ejecución
-// Parámetros:
-// - idreserva : Identificador de la reserva
-// - db: una conexion ADO operativa
-// - parametros: Parámetros de la acción
-// _____________________________________________________________________________________________________________
-BOOLEAN EjecutarReserva(int idreserva,Database db )
-{
-
-
- return(true);
-}
-// _____________________________________________________________________________________________________________
-// Función: enviaPeticion
-//
-// Descripción:
-// Hace una petición al servidor para que actualice los ordenadores implicados en la programación
-// Parámetros:
-// - idprogramacion: Identificador de la programación
-// _____________________________________________________________________________________________________________
-BOOLEAN enviaPeticion(int idprogramacion)
-{
- int lon;
- TRAMA *ptrTrama;
- SOCKET socket_c;
- char modulo[] = "enviaPeticion()";
-
- /* Envio de comandos a clientes */
- ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA));
- if (ptrTrama == NULL) { // No hay memoria suficiente para el bufer de las tramas
- errorLog(modulo, 3, FALSE);
- return(FALSE);
- }
- initParametros(ptrTrama,0);
- lon=sprintf(ptrTrama->parametros,"nfn=envioProgramacion\r"); // Nombre de la función a ejecutar en el servidor
- lon+=sprintf(ptrTrama->parametros+lon,"idp=%d\r",idprogramacion); // Configuración de los Sistemas Operativos del cliente
-
- if(!enviaMensaje(&socket_c,ptrTrama,MSG_PETICION)){
- errorLog(modulo,91,FALSE);
- liberaMemoria(ptrTrama);
- return(FALSE);
- }
- liberaMemoria(ptrTrama);
- return(TRUE);
-}
-// _____________________________________________________________________________________________________________
-//
-// Función: RecopilaIpesMacs
-//
-// Descripción :
-// Recopila las IPes, las Macs y los identificadores de ordenadores de un ámbito determinado
-//
-// Especificaciones:
-// Esta Función recibe tres parámatros:
-// db : Un objeto Base de datos totalmente operativo
-// ambito: Tipo de ámbito
-// idambito: Identificador del ámbito
-// Devuelve:
-// Todas los identificadores de ordenadores , las ipes y las macs de los ordenadores que componen el ámbito
-// Para ellos habrá que tener declarada tres variables globales :
-// cadenaid,cadenaip y cadenamac
-// _____________________________________________________________________________________________________________
-
-BOOLEAN RecopilaIpesMacs(Database db,int ambito,int idambito,char *restrambito)
-{
- char sqlstr[LONSQL];
-
- concli=0;
- /* Reserva memoria al meno para caracter nulo */
- cadenaid=(char*) reservaMemoria(1);
- cadenaip=(char*) reservaMemoria(1);
- cadenamac=(char*) reservaMemoria(1);
-
- switch(ambito){
- case AMBITO_CENTROS :
- sprintf(sqlstr,"SELECT idcentro FROM centros WHERE idcentro=%d",idambito);
- RecorreCentro(db,sqlstr);
- break;
- case AMBITO_GRUPOSAULAS :
- sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idgrupo=%d AND tipo=%d",idambito,AMBITO_GRUPOSAULAS);
- RecorreGruposAulas(db,sqlstr);
- break;
- case AMBITO_AULAS :
- sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idaula=%d",idambito);
- RecorreAulas(db,sqlstr);
- break;
- case AMBITO_GRUPOSORDENADORES :
- sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idgrupo=%d",idambito);
- RecorreGruposOrdenadores(db,sqlstr);
- break;
- case AMBITO_ORDENADORES :
- sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador=%d",idambito);
- RecorreOrdenadores(db,sqlstr);
- break;
- default: // Se trata de un conjunto aleatorio de ordenadores
- sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador IN (%s)",restrambito);
- RecorreOrdenadores(db,sqlstr);
-
- }
- return (TRUE);
-}
-//________________________________________________________________________________________________________
-
-BOOLEAN RecorreCentro(Database db, char* sqlstr)
-{
- char msglog[LONSTD];
- Table tbl;
- int idcentro;
- char modulo[] = "RecorreCentro()";
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.ISEOF()){
- if(!tbl.Get("idcentro",idcentro)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idcentro=%d AND grupoid=0 AND tipo=%d",idcentro,AMBITO_GRUPOSAULAS);
- RecorreGruposAulas(db,sqlstr);
- sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idcentro=%d AND grupoid=0",idcentro);
- RecorreAulas(db,sqlstr);
- }
- return (TRUE);
-}
-//________________________________________________________________________________________________________
-
-BOOLEAN RecorreGruposAulas(Database db, char* sqlstr)
-{
- char msglog[LONSTD];
- Table tbl;
- int idgrupo;
- char modulo[] = "RecorreGruposAulas()";
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- while(!tbl.ISEOF()){
- if(!tbl.Get("idgrupo",idgrupo)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE grupoid=%d AND tipo=%d",idgrupo,AMBITO_GRUPOSAULAS);
- RecorreGruposAulas(db,sqlstr);
- sprintf(sqlstr,"SELECT idaula FROM aulas WHERE grupoid=%d",idgrupo);
- RecorreAulas(db,sqlstr);
- tbl.MoveNext();
- }
- return (TRUE);
-}
-//________________________________________________________________________________________________________
-
-BOOLEAN RecorreAulas(Database db, char* sqlstr)
-{
- char msglog[LONSTD];
- Table tbl;
- int idaula;
- char modulo[] = "RecorreAulas()";
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- while(!tbl.ISEOF()){
- if(!tbl.Get("idaula",idaula)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idaula=%d AND grupoid=0",idaula);
- RecorreGruposOrdenadores(db,sqlstr);
- sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idaula=%d AND grupoid=0",idaula);
- RecorreOrdenadores(db,sqlstr);
- tbl.MoveNext();
- }
- return (TRUE);
-}
-//________________________________________________________________________________________________________
-
-BOOLEAN RecorreGruposOrdenadores(Database db, char* sqlstr)
-{
- char msglog[LONSTD];
- Table tbl;
- int idgrupo;
- char modulo[] = "RecorreGruposOrdenadores()";
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- while(!tbl.ISEOF()){
- if(!tbl.Get("idgrupo",idgrupo)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE grupoid=%d",idgrupo);
- RecorreGruposOrdenadores(db,sqlstr);
- sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE grupoid=%d",idgrupo);
- RecorreOrdenadores(db,sqlstr);
- tbl.MoveNext();
- }
- return (TRUE);
-}
-//________________________________________________________________________________________________________
-
-BOOLEAN RecorreOrdenadores(Database db, char* sqlstr)
-{
- char msglog[LONSTD];
- Table tbl;
- int idordenador,o,p,m,lon;
- char ido[16],ip[LONIP],mac[LONMAC];
- char modulo[] = "RecorreOrdenadores()";
-
- if (!db.Execute(sqlstr, tbl)) { // Error al leer
- errorLog(modulo, 21, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- o=p=m=0;
- while(!tbl.ISEOF()){
- if(!tbl.Get("idordenador",idordenador)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("ip",ip)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- if(!tbl.Get("mac",mac)){
- tbl.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- return (FALSE);
- }
- sprintf(ido,"%d",idordenador);
- lon=strlen(ido);
- if(lon>16) lon=16;
- cadenaid=(char*) ampliaMemoria(cadenaid,o+lon+1);
- memcpy(&cadenaid[o],ido,lon);
- o+=lon;
- cadenaid[o++]=',';
-
- lon=strlen(ip);
- if(lon>16) lon=LONIP;
- cadenaip=(char*) ampliaMemoria(cadenaip,p+lon+1);
- memcpy(&cadenaip[p],ip,lon);
- p+=lon;
- cadenaip[p++]=';';
-
- lon=strlen(mac);
- if(lon>16) lon=LONMAC;
- cadenamac=(char*) ampliaMemoria(cadenamac,m+lon+1);
- memcpy(&cadenamac[m],mac,lon);
- m+=lon;
- cadenamac[m++]=';';
-
- concli++;
- tbl.MoveNext();
- }
- if(o>0) o--;
- if(p>0) p--;
- if(m>0) m--;
- cadenaid[o]='\0';
- cadenaip[p]='\0';
- cadenamac[m]='\0';
-
- return (TRUE);
-}
-// ********************************************************************************************************
-// PROGRAMA PRINCIPAL (SERVICIO)
-// ********************************************************************************************************
-int main(int argc, char *argv[])
-{
- int pseg;
- char msglog[LONSTD];
- struct tm* st;
- Database db;
- char modulo[] = "main()";
-
- /* Validación de parámetros de ejecución y lectura del fichero de configuración del servicio */
-
- if (!validacionParametros(argc, argv, 5)) // Valida parámetros de ejecución
- exit(EXIT_FAILURE);
-
- if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
- exit(EXIT_FAILURE);
- }
-
- /* Bucle principal del servicio */
-
- while (TRUE){
- st = tomaHora();
- pseg=65-st->tm_sec; // Calcula segundos de inactividad de la hebra
- sleep(pseg);
-
- // Toma la hora
- st = tomaHora();
-
- if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
- errorLog(modulo, 20, FALSE);
- db.GetErrorErrStr(msglog);
- errorInfo(modulo, msglog);
- exit(EXIT_FAILURE);
- }
- buscaAccion(db,st->tm_mday,st->tm_mon+1,st->tm_year+1900,st->tm_hour,st->tm_min,st->tm_wday );
- db.Close(); // Cierra conexión
- }
- exit(EXIT_SUCCESS);
-}
-
-
+// ******************************************************************************************************** +// Servicio: ogAdmAgent +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Marzo-2010 +// Fecha Última modificación: Marzo-2010 +// Nombre del fichero: ogAdmAgent.cpp +// Descripción: Este fichero implementa el servicio agente del sistema. Revisa a intervalos +// regulares la base de datos para comprobar si existen acciones programadas. +// ******************************************************************************************************** +#include "ogAdmAgent.h" +#include "ogAdmLib.c" +//________________________________________________________________________________________________________ +// Función: tomaConfiguracion +// +// Descripción: +// Lee el fichero de configuración del servicio +// Parámetros: +// filecfg : Ruta completa al fichero de configuración +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +//________________________________________________________________________________________________________ +BOOLEAN tomaConfiguracion(char* filecfg) +{ + char modulo[] = "tomaConfiguracion()"; + + if (filecfg == NULL || strlen(filecfg) == 0) { + errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío + return (FALSE); + } + FILE *fcfg; + long lSize; + char * buffer, *lineas[MAXPRM], *dualparametro[2]; + int i, numlin, resul; + + fcfg = fopen(filecfg, "rt"); + if (fcfg == NULL) { + errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio + return (FALSE); + } + + fseek(fcfg, 0, SEEK_END); + lSize = ftell(fcfg); // Obtiene tamaño del fichero. + rewind(fcfg); + buffer = (char*) reservaMemoria(lSize + 1); // Toma memoria para el buffer de lectura. + if (buffer == NULL) { // No hay memoria suficiente para el buffer + errorLog(modulo, 3, FALSE); + return (FALSE); + } + fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero + buffer[lSize] = (char) NULL; + fclose(fcfg); + + servidoradm[0] = (char) NULL; //inicializar variables globales + puerto[0] = (char) NULL; + usuario[0] = (char) NULL; + pasguor[0] = (char) NULL; + datasource[0] = (char) NULL; + catalog[0] = (char) NULL; + + numlin = splitCadena(lineas, buffer, '\n'); + for (i = 0; i < numlin; i++) { + splitCadena(dualparametro, lineas[i], '='); + resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM"); + if (resul == 0) + strcpy(servidoradm, dualparametro[1]); + resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO"); + if (resul == 0) + strcpy(puerto, dualparametro[1]); + resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO"); + if (resul == 0) + strcpy(usuario, dualparametro[1]); + resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD"); + if (resul == 0) + strcpy(pasguor, dualparametro[1]); + resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE"); + if (resul == 0) + strcpy(datasource, dualparametro[1]); + resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG"); + if (resul == 0) + strcpy(catalog, dualparametro[1]); + } + if (servidoradm[0] == (char) NULL) { + errorLog(modulo, 4, FALSE); // Falta parámetro SERVIDORADM + return (FALSE); + } + if (puerto[0] == (char) NULL) { + errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO + return (FALSE); + } + if (usuario[0] == (char) NULL) { + errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO + return (FALSE); + } + if (pasguor[0] == (char) NULL) { + errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD + return (FALSE); + } + if (datasource[0] == (char) NULL) { + errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE + return (FALSE); + } + if (catalog[0] == (char) NULL) { + errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG + return (FALSE); + } + return (TRUE); +} +// ________________________________________________________________________________________________________ +// +// Función: diadelaSemana +// +// Descripción: +// Calcula el número del día de la semana que corresponde a una fecha +// Parámetros: +// - dia: Un día +// - mes: Un mes +// - anno: Un año +// Devuelve: +// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo +// ________________________________________________________________________________________________________ + +int diadelaSemana(WORD dia,WORD mes,WORD anno) +{ + int i,cont,dias_anuales; + int desplazamiento_dias=6; + int orddiasem; + + cont =0; + for (i=1900;i<anno;i++){ + if (bisiesto(i)) dias_anuales=366; else dias_anuales=365; + cont+=dias_anuales; + } + for (i=1;i<mes;i++){ + if (i!=2) + cont+=dias_meses[i]; + else{ + if (bisiesto(anno)) + cont+=29; + else + cont+=28; + } + } + cont+=dia+desplazamiento_dias; + orddiasem=(cont%7); + if(orddiasem==0) orddiasem=7; + return(orddiasem); +} +// ________________________________________________________________________________________________________ +// +// Función: bisiesto +// +// Descripción: +// Calcula si un año es bisiesto o no lo es +// Parámetros: +// - anno: Un año +// Devuelve: +// TRUE si el año es bisiesto +// FALSE si no es bisiesto +// ________________________________________________________________________________________________________ + +BOOLEAN bisiesto(WORD anno){ + return(anno%4==0); +} +// ________________________________________________________________________________________________________ +// +// Función: semanadelMes +// +// Descripción: +// Calcula el número de semana perteneciente a un día del mes +// Parámetros: +// - ordiasem_1: Orden semanal (1,2...) del primer dia del mes que se pasa como parámetro +// - diames: El mes concreto +// Devuelve: +// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo , de ese mes +// ________________________________________________________________________________________________________ + +int semanadelMes(int ordiasem_1,int diames) +{ + int nwdia,resto,cociente; + + nwdia=diames+ordiasem_1-1; + cociente=nwdia/7; + resto=nwdia%7; + if(resto>0) cociente++; + return(cociente); +} +// ________________________________________________________________________________________________________ +// +// Función: buscaAccion +// +// Descripción: +// Busca en la base de datos, acciones programadas +// Parámetros: +// - db: Objeto base de datos (operativo) +// - dia : Día actual del mes +// - mes : mes en curso +// - anno : Año en curso +// - hora : Hora actual +// - minutos : Minutos actuales +// - diasemana : Dia de la semana 1=lunes,2=martes ... ( 0 Domingo) +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +// ________________________________________________________________________________________________________ + +BOOLEAN buscaAccion(Database db,WORD dia,WORD mes,WORD anno,WORD hora,WORD minutos,WORD diasemana) +{ + char msglog[LONSTD], sqlstr[LONSQL]; + Table tbl; + BYTE swampm,bitsemana; + int ordsem,ordulsem,ordiasem_1,maxdias; + int sesionprog; + char modulo[] = "buscaAccion()"; + + /* Año de comienzo */ + anno=anno-ANNOREF; // + /* Preparación hora */ + if(hora>11){ + hora-=12; + swampm=1; // Es P.M. + } + else + swampm=0; // Es am + /* Preparación semana */ + if(diasemana==0) diasemana=7; // El domingo + + // Cuestión semanas + ordiasem_1=diadelaSemana(1,mes,anno+2009); + ordsem=semanadelMes(ordiasem_1,dia); // Calcula el número de la semana + if (mes!=2) // Toma el último día de ese mes + maxdias=dias_meses[mes]; + else{ + if (bisiesto(anno+ANNOREF)) + maxdias=29; + else + maxdias=28; + } + ordulsem=semanadelMes(ordiasem_1,maxdias); // Calcula el número de la última semana + bitsemana=HEX_semanas[ordsem]; + if(ordsem==ordulsem) // Si es la última semana del mes + bitsemana|=HEX_semanas[6]; + + sprintf(sqlstr,"SELECT DISTINCT idprogramacion,tipoaccion,identificador,sesion,idcentro,"\ + "tareas.descripcion as descritarea"\ + " FROM programaciones"\ + " LEFT OUTER JOIN tareas ON tareas.idtarea=programaciones.identificador"\ + " WHERE suspendida=0 "\ + " AND (annos & %d <> 0) "\ + " AND (meses & %d<>0) "\ + " AND ((diario & %d<>0) OR (dias & %d<>0) OR (semanas & %d<>0))"\ + " AND (horas & %d<>0) AND ampm=%d AND minutos=%d",\ + HEX_annos[anno],\ + HEX_meses[mes],\ + HEX_dias[dia],\ + HEX_diasemana[diasemana],\ + bitsemana,\ + HEX_horas[hora],\ + swampm,minutos); + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(tbl.ISEOF()){ + return(TRUE); // No hay acciones programadas + } + + while(!tbl.ISEOF()){ + if(!tbl.Get("idprogramacion",idprogramacion)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("tipoaccion",tipoaccion)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("identificador",idtipoaccion)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("sesion",sesionprog)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("idcentro",idcentro)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + + if(tipoaccion==EJECUCION_COMANDO){ // Es una programación de un comando + return(ejecutarComando(db,idprogramacion,sesionprog)); + } + else{ + + if(tipoaccion==EJECUCION_TAREA){ + if(!tbl.Get("descritarea",descriaccion)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + return(ejecutarTarea(db,idprogramacion,idtipoaccion)); + } + else{ + if(tipoaccion==EJECUCION_RESERVA){ + EjecutarReserva(idtipoaccion,db); // Es una programación de un trabajo + } + } + } + tbl.MoveNext(); + } + return(TRUE); +} +// ________________________________________________________________________________________________________ +// +// Función: ejecutarComando +// +// Descripción: +// Ejecuta un comando programado +// Parámetros: +// - db: Objeto base de datos (operativo) +// - idcomando: Identificador del comando +// - sesion: Sesión correspondiente al comando cuando se grabó en la tabla acciones +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +// ________________________________________________________________________________________________________ + +BOOLEAN ejecutarComando(Database db,int idprogramacion,int sesion ) +{ + struct tm* st; + char msglog[LONSTD], sqlstr[LONSQL]; + char fechahorareg[24]; + char modulo[] = "ejecutarComando()"; + + st = tomaHora(); + sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1, + st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec); + + sprintf(sqlstr,"UPDATE acciones SET estado=%d,idprogramacion=%d,fechahorareg='%s'"\ + " WHERE sesion=%d", ACCION_INICIADA,idprogramacion,fechahorareg,sesion); + + if (!db.Execute(sqlstr)) { // Error al recuperar los datos + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + return(enviaPeticion(idprogramacion)); +} +// ________________________________________________________________________________________________________ +// +// Función: ejecutarProcedimiento +// +// Descripción: +// Ejecuta un procedimiento programado +// Parámetros: +// - db: Objeto base de datos (operativo) +// - idprocedimiento: Identificador del procedimiento +// - ambito: Ámbito de aplicación +// - idambito: Identificador del ámbito +// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +// ________________________________________________________________________________________________________ + +BOOLEAN ejecutarProcedimiento(Database db,int idprocedimiento,int ambito,int idambito,char* restrambito) +{ + char msglog[LONSTD], sqlstr[LONSQL],*parametros; + Table tbl; + int procedimientoid,idcomando,lonprm; + char modulo[] = "ejecutarProcedimiento()"; + + sprintf(sqlstr,"SELECT idcomando,procedimientoid,parametros,length(parametros) as lonprm"\ + " FROM procedimientos_acciones"\ + " WHERE idprocedimiento=%d ORDER BY orden",idprocedimiento); + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + + if(tbl.ISEOF()){ + return(TRUE); // No exustde tarea + } + while(!tbl.ISEOF()){ + if(!tbl.Get("procedimientoid",procedimientoid)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(procedimientoid>0){ // Procedimiento recursivo + if(!ejecutarProcedimiento(db,procedimientoid,ambito,idambito,restrambito)){ + return(false); + } + } + else{ + if(!tbl.Get("lonprm",lonprm)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + parametros = reservaMemoria(lonprm+1); // Reserva para almacenar los parametros del procedimiento + if (parametros == NULL) { + errorLog(modulo, 3, FALSE); + return (FALSE); + } + if(!tbl.Get("parametros",parametros)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + liberaMemoria(parametros); + return (FALSE); + } + if(!tbl.Get("idcomando",idcomando)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + + if(!insertaComando(db,idcomando,parametros,idprocedimiento,ambito,idambito,restrambito)) { + + liberaMemoria(parametros); + return(false); + } + liberaMemoria(parametros); + } + tbl.MoveNext(); + } + return(TRUE); +} +// ________________________________________________________________________________________________________ +// +// Función: ejecutarTarea +// +// Descripción: +// Ejecuta una tarea programada +// Parámetros: +// - db: Objeto base de datos (operativo) +// - idtarea: Identificador de la tarea +// - idprogramacion: Identificador de la programación +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +// ________________________________________________________________________________________________________ + +BOOLEAN ejecutarTarea(Database db, int idprogramacion, int idtarea) +{ + char msglog[LONSTD], sqlstr[LONSQL]; + Table tbl; + int tareaid,ambito,idambito,idprocedimiento,lonrestrambito; + char* restrambito; + char modulo[] = "ejecutarTarea()"; + + sprintf(sqlstr,"SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,"\ + " tareas.ambito,tareas.idambito,tareas.restrambito,length(tareas.restrambito) as lonrestrambito"\ + " FROM tareas"\ + " INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea"\ + " WHERE tareas_acciones.idtarea=%d ORDER BY tareas_acciones.orden",idtarea); + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + + if(tbl.ISEOF()){ + return(TRUE); // No existe tarea + } + + while(!tbl.ISEOF()){ + if(!tbl.Get("tareaid",tareaid)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(tareaid>0){ // Tarea recursiva + if(!ejecutarTarea(db,idprogramacion,tareaid)){ + return(false); + } + } + else{ + if(!tbl.Get("ambito",ambito)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("idambito",idambito)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("lonrestrambito",lonrestrambito)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + restrambito = reservaMemoria(lonrestrambito+1); + if (restrambito == NULL) { + errorLog(modulo, 3, FALSE); + return (FALSE); + } + if(!tbl.Get("restrambito",restrambito)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + liberaMemoria(restrambito); + return (FALSE); + } + liberaMemoria(restrambito); + RecopilaIpesMacs(db,ambito,idambito,restrambito); // Recopila Ipes del ámbito + if(!tbl.Get("idprocedimiento",idprocedimiento)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sesion=time(NULL); + + if(!ejecutarProcedimiento(db,idprocedimiento,ambito,idambito,restrambito)) + return(FALSE); + } + tbl.MoveNext(); + } + return(enviaPeticion(idprogramacion)); +} +// ________________________________________________________________________________________________________ +// +// Función: ejecutarTarea +// +// Descripción: +// Registra un procedimiento para un ambito concreto +// Parámetros: +// - db: Objeto base de datos (operativo) +// - idcomando: Identificador del comando +// - idprocedimiento: Identificador del procedimiento +// - ambito: Ámbito de aplicación +// - idambito: Identificador del ámbito +// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción +// Devuelve: +// TRUE: Si el proceso es correcto +// FALSE: En caso de ocurrir algún error +//________________________________________________________________________________________________________ +BOOLEAN insertaComando(Database db,int idcomando,char*parametros,int idprocedimiento,int ambito,int idambito,char*restrambito) +{ + char msglog[LONSTD], sqlstr[LONSQL]; + struct tm* st; + char *auxID[MAXIMOS_CLIENTES],*auxIP[MAXIMOS_CLIENTES]; + char fechahorareg[24]; + int i; + char modulo[] = "insertaComando()"; + + if(concli==0) return(TRUE); // No hay ordenadores en el ámbito + + st = tomaHora(); + sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1, st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec); + + splitCadena(auxID,cadenaid,','); + splitCadena(auxIP,cadenaip,';'); + + for (i=0;i<concli;i++){ + sprintf(sqlstr,"INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,"\ + "sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,"\ + "restrambito,idprocedimiento,idcentro,idprogramacion)"\ + " VALUES (%s,%d,%d,'%s','%s',%d,%d,'%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d)",\ + auxID[i],tipoaccion,idtipoaccion,descriaccion,auxIP[i],sesion,idcomando,parametros,fechahorareg,\ + ACCION_INICIADA,ACCION_SINRESULTADO,ambito,idambito,restrambito,idprocedimiento,idcentro,idprogramacion); + if (!db.Execute(sqlstr)) { // Error al recuperar los datos + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + } + return(TRUE); +} +// _____________________________________________________________________________________________________________ +// Función: EjecutarReserva +// +// Descripción: +// Registra una acción (Tarea) y la envía para su ejecución +// Parámetros: +// - idreserva : Identificador de la reserva +// - db: una conexion ADO operativa +// - parametros: Parámetros de la acción +// _____________________________________________________________________________________________________________ +BOOLEAN EjecutarReserva(int idreserva,Database db ) +{ + + + return(true); +} +// _____________________________________________________________________________________________________________ +// Función: enviaPeticion +// +// Descripción: +// Hace una petición al servidor para que actualice los ordenadores implicados en la programación +// Parámetros: +// - idprogramacion: Identificador de la programación +// _____________________________________________________________________________________________________________ +BOOLEAN enviaPeticion(int idprogramacion) +{ + int lon; + TRAMA *ptrTrama; + SOCKET socket_c; + char modulo[] = "enviaPeticion()"; + + /* Envio de comandos a clientes */ + ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA)); + if (ptrTrama == NULL) { // No hay memoria suficiente para el bufer de las tramas + errorLog(modulo, 3, FALSE); + return(FALSE); + } + initParametros(ptrTrama,0); + lon=sprintf(ptrTrama->parametros,"nfn=envioProgramacion\r"); // Nombre de la función a ejecutar en el servidor + lon+=sprintf(ptrTrama->parametros+lon,"idp=%d\r",idprogramacion); // Configuración de los Sistemas Operativos del cliente + + if(!enviaMensaje(&socket_c,ptrTrama,MSG_PETICION)){ + errorLog(modulo,91,FALSE); + liberaMemoria(ptrTrama); + return(FALSE); + } + liberaMemoria(ptrTrama); + return(TRUE); +} +// _____________________________________________________________________________________________________________ +// +// Función: RecopilaIpesMacs +// +// Descripción : +// Recopila las IPes, las Macs y los identificadores de ordenadores de un ámbito determinado +// +// Especificaciones: +// Esta Función recibe tres parámatros: +// db : Un objeto Base de datos totalmente operativo +// ambito: Tipo de ámbito +// idambito: Identificador del ámbito +// Devuelve: +// Todas los identificadores de ordenadores , las ipes y las macs de los ordenadores que componen el ámbito +// Para ellos habrá que tener declarada tres variables globales : +// cadenaid,cadenaip y cadenamac +// _____________________________________________________________________________________________________________ + +BOOLEAN RecopilaIpesMacs(Database db,int ambito,int idambito,char *restrambito) +{ + char sqlstr[LONSQL]; + + concli=0; + /* Reserva memoria al meno para caracter nulo */ + cadenaid=(char*) reservaMemoria(1); + cadenaip=(char*) reservaMemoria(1); + cadenamac=(char*) reservaMemoria(1); + + switch(ambito){ + case AMBITO_CENTROS : + sprintf(sqlstr,"SELECT idcentro FROM centros WHERE idcentro=%d",idambito); + RecorreCentro(db,sqlstr); + break; + case AMBITO_GRUPOSAULAS : + sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idgrupo=%d AND tipo=%d",idambito,AMBITO_GRUPOSAULAS); + RecorreGruposAulas(db,sqlstr); + break; + case AMBITO_AULAS : + sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idaula=%d",idambito); + RecorreAulas(db,sqlstr); + break; + case AMBITO_GRUPOSORDENADORES : + sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idgrupo=%d",idambito); + RecorreGruposOrdenadores(db,sqlstr); + break; + case AMBITO_ORDENADORES : + sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador=%d",idambito); + RecorreOrdenadores(db,sqlstr); + break; + default: // Se trata de un conjunto aleatorio de ordenadores + sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador IN (%s)",restrambito); + RecorreOrdenadores(db,sqlstr); + + } + return (TRUE); +} +//________________________________________________________________________________________________________ + +BOOLEAN RecorreCentro(Database db, char* sqlstr) +{ + char msglog[LONSTD]; + Table tbl; + int idcentro; + char modulo[] = "RecorreCentro()"; + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.ISEOF()){ + if(!tbl.Get("idcentro",idcentro)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idcentro=%d AND grupoid=0 AND tipo=%d",idcentro,AMBITO_GRUPOSAULAS); + RecorreGruposAulas(db,sqlstr); + sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idcentro=%d AND grupoid=0",idcentro); + RecorreAulas(db,sqlstr); + } + return (TRUE); +} +//________________________________________________________________________________________________________ + +BOOLEAN RecorreGruposAulas(Database db, char* sqlstr) +{ + char msglog[LONSTD]; + Table tbl; + int idgrupo; + char modulo[] = "RecorreGruposAulas()"; + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + while(!tbl.ISEOF()){ + if(!tbl.Get("idgrupo",idgrupo)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE grupoid=%d AND tipo=%d",idgrupo,AMBITO_GRUPOSAULAS); + RecorreGruposAulas(db,sqlstr); + sprintf(sqlstr,"SELECT idaula FROM aulas WHERE grupoid=%d",idgrupo); + RecorreAulas(db,sqlstr); + tbl.MoveNext(); + } + return (TRUE); +} +//________________________________________________________________________________________________________ + +BOOLEAN RecorreAulas(Database db, char* sqlstr) +{ + char msglog[LONSTD]; + Table tbl; + int idaula; + char modulo[] = "RecorreAulas()"; + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + while(!tbl.ISEOF()){ + if(!tbl.Get("idaula",idaula)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idaula=%d AND grupoid=0",idaula); + RecorreGruposOrdenadores(db,sqlstr); + sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idaula=%d AND grupoid=0",idaula); + RecorreOrdenadores(db,sqlstr); + tbl.MoveNext(); + } + return (TRUE); +} +//________________________________________________________________________________________________________ + +BOOLEAN RecorreGruposOrdenadores(Database db, char* sqlstr) +{ + char msglog[LONSTD]; + Table tbl; + int idgrupo; + char modulo[] = "RecorreGruposOrdenadores()"; + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + while(!tbl.ISEOF()){ + if(!tbl.Get("idgrupo",idgrupo)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE grupoid=%d",idgrupo); + RecorreGruposOrdenadores(db,sqlstr); + sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE grupoid=%d",idgrupo); + RecorreOrdenadores(db,sqlstr); + tbl.MoveNext(); + } + return (TRUE); +} +//________________________________________________________________________________________________________ + +BOOLEAN RecorreOrdenadores(Database db, char* sqlstr) +{ + char msglog[LONSTD]; + Table tbl; + int idordenador,o,p,m,lon; + char ido[16],ip[LONIP],mac[LONMAC]; + char modulo[] = "RecorreOrdenadores()"; + + if (!db.Execute(sqlstr, tbl)) { // Error al leer + errorLog(modulo, 21, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + o=p=m=0; + while(!tbl.ISEOF()){ + if(!tbl.Get("idordenador",idordenador)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("ip",ip)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + if(!tbl.Get("mac",mac)){ + tbl.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + return (FALSE); + } + sprintf(ido,"%d",idordenador); + lon=strlen(ido); + if(lon>16) lon=16; + cadenaid=(char*) ampliaMemoria(cadenaid,o+lon+1); + memcpy(&cadenaid[o],ido,lon); + o+=lon; + cadenaid[o++]=','; + + lon=strlen(ip); + if(lon>16) lon=LONIP; + cadenaip=(char*) ampliaMemoria(cadenaip,p+lon+1); + memcpy(&cadenaip[p],ip,lon); + p+=lon; + cadenaip[p++]=';'; + + lon=strlen(mac); + if(lon>16) lon=LONMAC; + cadenamac=(char*) ampliaMemoria(cadenamac,m+lon+1); + memcpy(&cadenamac[m],mac,lon); + m+=lon; + cadenamac[m++]=';'; + + concli++; + tbl.MoveNext(); + } + if(o>0) o--; + if(p>0) p--; + if(m>0) m--; + cadenaid[o]='\0'; + cadenaip[p]='\0'; + cadenamac[m]='\0'; + + return (TRUE); +} +// ******************************************************************************************************** +// PROGRAMA PRINCIPAL (SERVICIO) +// ******************************************************************************************************** +int main(int argc, char *argv[]) +{ + int pseg; + char msglog[LONSTD]; + struct tm* st; + Database db; + char modulo[] = "main()"; + + /* Validación de parámetros de ejecución y lectura del fichero de configuración del servicio */ + + if (!validacionParametros(argc, argv, 5)) // Valida parámetros de ejecución + exit(EXIT_FAILURE); + + if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion + exit(EXIT_FAILURE); + } + + /* Bucle principal del servicio */ + + while (TRUE){ + st = tomaHora(); + pseg=65-st->tm_sec; // Calcula segundos de inactividad de la hebra + sleep(pseg); + + // Toma la hora + st = tomaHora(); + + if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion + errorLog(modulo, 20, FALSE); + db.GetErrorErrStr(msglog); + errorInfo(modulo, msglog); + exit(EXIT_FAILURE); + } + buscaAccion(db,st->tm_mday,st->tm_mon+1,st->tm_year+1900,st->tm_hour,st->tm_min,st->tm_wday ); + db.Close(); // Cierra conexión + } + exit(EXIT_SUCCESS); +} + + diff --git a/admin/Sources/Services/ogAdmBoot/Makefile b/admin/Sources/Services/ogAdmBoot/Makefile deleted file mode 100644 index 78a7e88d..00000000 --- a/admin/Sources/Services/ogAdmBoot/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# makefile - -# Nombre del proyecto -PROYECTO := ogAdmBoot - -# Directorio de instalación -INSTALL_DIR := /opt/opengnsys - -# Opciones de compilacion -CFLAGS := $(shell mysql_config --cflags) -CFLAGS += -O0 -g -Wall -I../../Includes # Depuracion -#CFLAGS += -O3 -I../../Includes # Optimizacion -CPPFLAGS := $(CFLAGS) - -# Opciones de linkado -LDFLAGS := -Wl,--no-as-needed $(shell mysql_config --libs) -lpthread - -# Ficheros objetos -OBJS := ../includes/Database.o sources/ogAdmBoot.o - - -all: $(PROYECTO) - -$(PROYECTO): $(OBJS) - g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO) -# strip $(PROYECTO) # Optimizacion - -install: $(PROYECTO) - cp $(PROYECTO) $(INSTALL_DIR)/sbin - cp $(PROYECTO).cfg $(INSTALL_DIR)/etc - -clean: - rm -f $(PROYECTO) $(OBJS) - -uninstall: clean - rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg - -sources/%.o: sources/%.cpp - g++ $(CPPFLAGS) -I ../includes -c -o"$@" "$<" - -sources/%.o: sources/%.c - gcc $(CFLAGS) -I ../includes -c -o"$@" "$<" - - diff --git a/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg b/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg deleted file mode 100644 index 5a33b513..00000000 --- a/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg +++ /dev/null @@ -1,8 +0,0 @@ -IPLocal=SERVERIP -USUARIO=usuog -PASSWORD=passusuog -datasource=localhost -CATALOG=ogAdmBD -router=10.1.12.1 -mascara=255.255.252.0 - diff --git a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp deleted file mode 100644 index 03468d5b..00000000 --- a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp +++ /dev/null @@ -1,1264 +0,0 @@ -// ******************************************************************************************************** -// Servicio: ogAdmBoot -// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creación: Julio-2010 -// Fecha Última modificación: Julio-2010 -// Nombre del fichero: ogAdmBoot.cpp -// Descripción :Este fichero implementa el servicio dhcp y tftp propios del sistema -// ******************************************************************************************************** -#include "ogAdmBoot.h" -#include "ogAdmLib.c" -//________________________________________________________________________________________________________ -// Función: tomaConfiguracion -// -// Descripción: -// Lee el fichero de configuración del servicio -// Parámetros: -// filecfg : Ruta completa al fichero de configuración -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -//________________________________________________________________________________________________________ -BOOLEAN tomaConfiguracion(char* filecfg) -{ - char modulo[] = "tomaConfiguracion()"; - - if (filecfg == NULL || strlen(filecfg) == 0) { - errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío - return (FALSE); - } - FILE *fcfg; - long lSize; - char * buffer, *lineas[MAXPRM], *dualparametro[2]; - int i, numlin, resul; - - fcfg = fopen(filecfg, "rt"); - if (fcfg == NULL) { - errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio - return (FALSE); - } - - fseek(fcfg, 0, SEEK_END); - lSize = ftell(fcfg); // Obtiene tamaño del fichero. - rewind(fcfg); - buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura. - if (buffer == NULL) { // No hay memoria suficiente para el buffer - errorLog(modulo, 3, FALSE); - return (FALSE); - } - fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero - buffer[lSize]=(char) NULL; - fclose(fcfg); - - IPlocal[0] = (char) NULL; //inicializar variables globales - usuario[0] = (char) NULL; - pasguor[0] = (char) NULL; - datasource[0] = (char) NULL; - catalog[0] = (char) NULL; - router[0] = (char) NULL; - mascara[0] = (char) NULL; - - numlin = splitCadena(lineas, buffer, '\n'); - for (i = 0; i < numlin; i++) { - splitCadena(dualparametro, lineas[i], '='); - resul = strcmp(StrToUpper(dualparametro[0]), "IPLOCAL"); - if (resul == 0) - strcpy(IPlocal, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO"); - if (resul == 0) - strcpy(usuario, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD"); - if (resul == 0) - strcpy(pasguor, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE"); - if (resul == 0) - strcpy(datasource, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG"); - if (resul == 0) - strcpy(catalog, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "ROUTER"); - if (resul == 0) - strcpy(router, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "MASCARA"); - if (resul == 0) - strcpy(mascara, dualparametro[1]); - } - if (IPlocal[0] == (char) NULL) { - errorLog(modulo, 4, FALSE); // Falta parámetro IPLOCAL - return (FALSE); - } - if (usuario[0] == (char) NULL) { - errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO - return (FALSE); - } - if (pasguor[0] == (char) NULL) { - errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD - return (FALSE); - } - if (datasource[0] == (char) NULL) { - errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE - return (FALSE); - } - if (catalog[0] == (char) NULL) { - errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG - return (FALSE); - } - return (TRUE); -} -// _____________________________________________________________________________________________________________ -// Función: ServicioDHCP -// -// Descripción: -// Esta hebra implementa el servicio DHCP -// _____________________________________________________________________________________________________________ - -LPVOID ServicioDHCP(LPVOID ipl) -{ - SOCKET socket_s; // Socket donde escucha el servidor - struct TramaDhcpBootp * trmInfo; - struct sockaddr_in local; - int ret,resul; - BOOLEAN bOpt; - pthread_t hThread; - char modulo[]="ServicioDHCP()"; - - socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP - if (socket_s == SOCKET_ERROR){ - errorLog(modulo,61, TRUE); - return(FALSE); - } - local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface - local.sin_family = AF_INET; - local.sin_port = htons(PUERTODHCPORIGEN); // Puerto - - // Enlaza socket - if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){ - errorLog(modulo,62, TRUE); - return(FALSE); - } - - bOpt=TRUE; // Pone el socket en modo "soportar Broadcast" - ret=setsockopt(socket_s,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt)); - if (ret == SOCKET_ERROR){ - errorLog(modulo,48, TRUE); - return(FALSE); - } - while(true){ - trmInfo = (struct TramaDhcpBootp*)malloc(sizeof(struct TramaDhcpBootp)); // Crea estructura de control para hebra - if (trmInfo == NULL){ - errorLog(modulo,64, FALSE); - return(FALSE); - } - // Inicializa parámetros - memset(trmInfo,0,sizeof(struct TramaDhcpBootp)); - trmInfo->sockaddrsize = sizeof(trmInfo->cliente); - trmInfo->sck=socket_s; - // Espera tramas DHCP - ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente, &trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,65, TRUE); - return(FALSE); - } - else{ - if (ret>0){ - resul=pthread_create(&hThread,NULL,GestionaServicioDHCP,(LPVOID)trmInfo); - if(resul!=0){ - errorLog(modulo,66,TRUE); - return(FALSE); - } - pthread_detach(hThread); - } - } - } - close(socket_s); -} -// _____________________________________________________________________________________________________________ -// Función: ServicioBOOTP -// -// Descripción: -// Esta hebra implementa el servicio BOOTP -// _____________________________________________________________________________________________________________ - -LPVOID ServicioBOOTP(LPVOID iplocal) -{ - SOCKET socket_s; // Socket donde escucha el servidor - struct TramaDhcpBootp * trmInfo; - struct sockaddr_in local; - int ret,resul; - pthread_t hThread; - char modulo[]="ServicioBOOTP()"; - - socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP - if (socket_s == SOCKET_ERROR){ - errorLog(modulo,67, TRUE); - return(FALSE); - } - local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface - local.sin_family = AF_INET; - local.sin_port = htons(PUERTOBOOTPORIGEN); // Puerto - - // Enlaza socket - if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){ - errorLog(modulo,68, TRUE); - return(FALSE); - } - while(true){ - trmInfo = (struct TramaDhcpBootp*)malloc(sizeof(struct TramaDhcpBootp)); // Crea estructura de control para hebra - if (trmInfo == NULL){ - errorLog(modulo,69, FALSE); - return(FALSE); - } - // Inicializa parámetros - memset(trmInfo,0,sizeof(struct TramaDhcpBootp)); - trmInfo->sockaddrsize = sizeof(trmInfo->cliente); - trmInfo->sck=socket_s; - // Espera tramas BOOTP - ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente, &trmInfo->sockaddrsize); - - if (ret == SOCKET_ERROR){ - errorLog(modulo,70, TRUE); - return(FALSE); - } - else{ - if (ret>0){ - resul=pthread_create(&hThread,NULL,GestionaServicioBOOTP,(LPVOID)trmInfo); - if(resul!=0){ - errorLog(modulo,71, TRUE); - return(FALSE); - } - pthread_detach(hThread); - } - } - } - close(socket_s); -} -// _____________________________________________________________________________________________________________ -// Función: ServicioTFTP -// -// Descripción: -// Esta hebra implementa el servicio TFTP -// _____________________________________________________________________________________________________________ - -LPVOID ServicioTFTP(LPVOID ipl) -{ - SOCKET socket_s; // Socket donde escucha el servidor - struct TramaTftp * trmInfo; - struct sockaddr_in local; - pthread_t hThread; - int ret,resul; - char modulo[]="ServicioTFTP()"; - - socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP - if (socket_s == SOCKET_ERROR){ - errorLog(modulo,72, TRUE); - return(FALSE); - } - local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface - local.sin_family = AF_INET; - local.sin_port = htons(PUERTOTFTPORIGEN); // Puerto - - // Enlaza socket - if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){ - errorLog(modulo,73, TRUE); - return(FALSE); - } - while(true){ - trmInfo = (struct TramaTftp*)malloc(sizeof(struct TramaTftp)); // Crea estructura de control para hebra - if (trmInfo == NULL){ - errorLog(modulo,74, FALSE); - return(FALSE); - } - memset(trmInfo,0,sizeof(struct TramaTftp)); - trmInfo->sockaddrsize = sizeof(trmInfo->cliente); - // Espera tramas TFTP - ret = recvfrom(socket_s,(char *)&trmInfo->pckTftp, sizeof(trmInfo->pckTftp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,75, TRUE); - return(FALSE); - } - else{ - if (ret>0){ - resul=pthread_create(&hThread,NULL,GestionaServicioTFTP,(LPVOID)trmInfo); - if(resul!=0){ - errorLog(modulo,76, TRUE); - return(FALSE); - } - pthread_detach(hThread); - } - } - - } - close(socket_s); -} -//________________________________________________________________________________________________________ -// Función: GestionaServicioDHCP -// -// Descripción: -// Gestiona la conexiónn con un cliente que sea Hidra para el servicio DHCP -// Parámetros: -// lpParam: Puntero a la estructura de control para la conversacion DHCP -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -//________________________________________________________________________________________________________ -LPVOID GestionaServicioDHCP(LPVOID lpParam) -{ - struct TramaDhcpBootp * trmInfo=(struct TramaDhcpBootp *)lpParam; - char IPCliente[16]; // Ip del cliente - char MACCliente[16]; // Mac del cliente - - if(!OpcionesPresentes(trmInfo->pckDchp.magiccookie)) // Comprueba que existen opciones en la trama Dhcp - return(false); - strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr)); - if(strcmp(IPCliente,"0.0.0.0")!=0){ // El cliente tiene una IP concreta distinta de 0.0.0.0 - if(!ClienteExistente(trmInfo,IPCliente,1)){ // Comprueba que se trata de un cliente Hidra - free(trmInfo); - return(false); - } - } - else{ - sprintf(MACCliente,"%02.2x%02.2x%02.2x%02.2x%02.2x%02.2x",(unsigned int)trmInfo->pckDchp.chaddr[0],(unsigned int)trmInfo->pckDchp.chaddr[1],(unsigned int)trmInfo->pckDchp.chaddr[2],(unsigned int)trmInfo->pckDchp.chaddr[3],(unsigned int)trmInfo->pckDchp.chaddr[4],(unsigned int)trmInfo->pckDchp.chaddr[5]); - if(!ClienteExistente(trmInfo,MACCliente,0)){ // Comprueba que se trata de un cliente Hidra (Por la Mac) - free(trmInfo); - return(false); - } - } - if(OpcionPXEClient(&trmInfo->pckDchp)) // Comprueba que sea un cliente PXE - ProcesaTramaClientePXE(trmInfo); // Procesa DHCP para el protocolo PXE - else - ProcesaTramaClienteDHCP(trmInfo); // Procesa DHCP de cliente Windows o Linux - - free(trmInfo); - return(false); -} -//_______________________________________________________________________________________________________________ -// -// Gestiona la conexion con un cliente que sea Hidra para el servicio BOOTP -// Parámetros: -// lpParam: Puntero a la estructura de control para la conversacion BOOTP -//_______________________________________________________________________________________________________________ -LPVOID GestionaServicioBOOTP(LPVOID lpParam) -{ - struct TramaDhcpBootp * trmInfo=(struct TramaDhcpBootp *)lpParam; - char IPCliente[16]; // Ip del cliente - - if(!OpcionesPresentes(trmInfo->pckDchp.magiccookie)) // Comprueba que existen opciones en la trama Dhcp - return(false); - - strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr)); - if(!ClienteExistente(trmInfo,IPCliente,1)) // Comprueba que se trata de un cliente Hidra - return(false); - - if(OpcionPXEClient(&trmInfo->pckDchp)) // Comprueba que sea un cliente PXE - ProcesaTramaClienteBOOTP(trmInfo); // Procesa DHCP para el protocolo PXE - - free(trmInfo); - return(trmInfo); -} -//_______________________________________________________________________________________________________________ -// -// Comprueba si la IP del cliente está en la base de datos de Hidra -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -// ipmac: IP o MAC del cliente que ha abierto la hebra -// sw: Si vale 1 o 2 o 3 el parámetro anterior ser una IP en caso contrario ser una MAC -// -// Devuelve: -// true: Si el cliente est en la base de datos -// false: En caso contrario -// -// Comentarios: -// Slo se procesarn mensages dhcp de clientes hidra. -//_______________________________________________________________________________________________________________ -int ClienteExistente(struct TramaDhcpBootp *trmInfo,char* ipmac,int sw) -{ - char sqlstr[1000],ErrStr[200]; - Database db; - Table tbl; - char wrouter[LONPRM]; - char wmascara[LONPRM]; - ///////////////////////////////////////////////////////////////////////// - // ACCESO atnico A TRAVEZ DE OBJETO MUTEX a este trozo de cnigo - pthread_mutex_lock(&guardia); - - // Abre conexion con base de datos - if(!db.Open(usuario,pasguor,datasource,catalog)){ // error de conexion - db.GetErrorErrStr(ErrStr); - return(false); - } - - if(sw==1 || sw==2){ // Bsqueda por IP - sprintf(sqlstr,"SELECT ip,router,mascara FROM ordenadores WHERE ip='%s' ",ipmac); - } - else{ // Bsqueda por MAC - sprintf(sqlstr,"SELECT ip,router,mascara FROM ordenadores WHERE mac='%s' ",ipmac); - } - if(!db.Execute(sqlstr,tbl)){ // Error al leer - db.GetErrorErrStr(ErrStr); - db.Close(); - pthread_mutex_unlock(&guardia); - return(false); - } - - if(tbl.ISEOF()){ // No existe el cliente - db.Close(); - pthread_mutex_unlock(&guardia); - return(false); - } - if(sw==1 || sw==0){ // Sólo para las tramas dhcp PXE y BOOTP - if(!tbl.Get("ip",trmInfo->bdIP)){ // Incorpora la IP a asignar al cliente a la estructura de control - tbl.GetErrorErrStr(ErrStr); // error al acceder al registro - db.Close(); - pthread_mutex_unlock(&guardia); - return(false); - } - if(!tbl.Get("router",wrouter)){ // Toma la configuración router del cliente - tbl.GetErrorErrStr(ErrStr); // error al acceder al registro - db.Close(); - pthread_mutex_unlock(&guardia); - return(false); - } - if(strlen(wrouter)>0) - strcpy(oProuter,wrouter); - else - strcpy(oProuter,router); - - if(!tbl.Get("mascara",wmascara)){ // Toma la configuración router del cliente - tbl.GetErrorErrStr(ErrStr); // error al acceder al registro - db.Close(); - pthread_mutex_unlock(&guardia); - return(false); - } - if(strlen(wmascara)>0) - strcpy(oPmascara,wmascara); - else - strcpy(oPmascara,mascara); - } - db.Close(); - pthread_mutex_unlock(&guardia); - //////////////////////////////////////////////////////////////////////////////// - return(true); -} -//_______________________________________________________________________________________________________________ -// -// Comprueba que existen opciones en el mensage dhcp analizando la magic cookie -// Parámetros: -// mc: Puntero al primer elemento de la magic cookie (primer campo de las opciones) -// -// Devuelve: -// true: Si esta presenta el valor 99..130.83.99 -// false: En caso contrario -//_______________________________________________________________________________________________________________ -int OpcionesPresentes(unsigned char *mc) -{ - if(mc[0]!=0x63) return(false); - if(mc[1]!=0x82) return(false); - if(mc[2]!=0x53) return(false); - if(mc[3]!=0x63) return(false); - - // Magic Cookie presente - return(true); -} -//_______________________________________________________________________________________________________________ -// -// Busca una determinada opción dentro de la trama dhcp -// Parámetros: -// dhcp_packet: Puntero a la estructura que contiene el mensaje dhcp -// codop: Cdigo de la opción a buscar -// -// Devuelve: -// Si existe, un puntero al primer elemento de la estructura de la opción (codigo,longitud,valor) -// en caso contrario devuelve null -//_______________________________________________________________________________________________________________ -unsigned char * BuscaOpcion(dhcp_packet* tDhcp,unsigned char codop) -{ - unsigned char wcodop; - unsigned char wlongitud; - unsigned char *ptrOp,*ptrDhcp; - - ptrDhcp=(unsigned char*)tDhcp; // Se toma el puntero al principio del mensage - ptrOp=(unsigned char*)&tDhcp->options[0]; // Se toma el puntero a las opciones - - while(ptrOp-ptrDhcp<DHCP_OPTION_LEN-4){ - wcodop = ptrOp[0]; - if(wcodop==DHCP_PAD) - ptrOp++; - else{ - if(wcodop==DHCP_END) // Fin de la cadena de opciones, no se encontr la opción - return(NULL); - else{ - - if (wcodop == codop) // Encuentra la opción - return(ptrOp); // Devuelve el puntero a la estructura variable opción - else{ - wlongitud = ptrOp[1]; - ptrOp+=wlongitud+2; // Avanza hasta la prxima opción - } - } - } - } - return(NULL); -} -//_______________________________________________________________________________________________________________ -// -// Comprueba si el mensaje recibido proviene de un cliente PXE -// Parámetros: -// dhcp_packet: Puntero a la estructura que contiene el mensaje dhcp -// -// Devuelve: -// true: Si el mensaje lo ha enviado un cliente PXE -// false: En caso contrario -//_______________________________________________________________________________________________________________ -int OpcionPXEClient(dhcp_packet* tDhcp) -{ - if(!BuscaOpcion(tDhcp,DHCP_CLASS_IDENTIFIER)) - return(false); - else - return(true); -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje DHCP recibido que proviene de un cliente PXE -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -//_______________________________________________________________________________________________________________ -void ProcesaTramaClientePXE(struct TramaDhcpBootp* trmInfo) -{ - unsigned char codop; - unsigned char longitud; - unsigned char *ptrOp; - unsigned char *msgDhcp; - char modulo[]="ProcesaTramaClientePXE()"; - - ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje - if(!ptrOp){ // No existe la opción DHCP - errorLog(modulo,77, FALSE); - return; - } - codop = ptrOp[0]; - longitud=ptrOp[1]; - msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje - switch(*msgDhcp){ - case DHCPDISCOVER: - dhcpDISCOVER_PXE(trmInfo); - break; - case DHCPREQUEST: - dhcpREQUEST_PXE(trmInfo); - break; - } -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje BOOTP recibido que proviene de un cliente PXE -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin BOOTP -//_______________________________________________________________________________________________________________ -void ProcesaTramaClienteBOOTP(struct TramaDhcpBootp* trmInfo) -{ - unsigned char codop; - unsigned char longitud; - unsigned char *ptrOp; - unsigned char *msgDhcp; - char modulo[]="ProcesaTramaClienteBOOTP()"; - - ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje - if(!ptrOp){ // No existe la opción DHCP - errorLog(modulo,77, FALSE); - return; - } - codop = ptrOp[0]; - longitud=ptrOp[1]; - msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje - switch(*msgDhcp){ - case DHCPREQUEST: - bootpREQUEST_PXE(trmInfo); - break; - } -} -//_______________________________________________________________________________________________________________ -// -// Gestiona la conexion con un cliente que sea Hidra para el servicio TFTP -// Parámetros: -// lpParam: Puntero a la estructura de control para la conversacion TFTP -//_______________________________________________________________________________________________________________ -LPVOID GestionaServicioTFTP(LPVOID lpParam) -{ - struct TramaTftp * trmInfo=(struct TramaTftp *)lpParam; - char IPCliente[16]; // Ip del cliente - - strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr)); - if(!ClienteExistente((struct TramaDhcpBootp*)trmInfo,IPCliente,2)) // Comprueba que se trata de un cliente Hidra - return(false); - - // Inicializa parámetros - trmInfo->sockaddrsize = sizeof(trmInfo->cliente); - trmInfo->sck=TomaSocketUser(); - if(trmInfo->sck==INVALID_SOCKET) return(false); // Ha habido algn problama para crear el socket de usuario - - trmInfo->currentopCode=0x0000; // Cdigo de operación para detectar errores de secuencia - trmInfo->bloquesize=512; // Tamao de bloque por defecto 512 - trmInfo->tsize=0; // Tamao del fichero - trmInfo->interval=0; // Intervalo - - ProcesaTramaClienteTFTP(trmInfo); // Procesa TFTP para el protocolo PXE - close(trmInfo->sck); - free(trmInfo); - return(trmInfo); -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje TFTP recibido que proviene de un cliente PXE -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin TFTP -//_______________________________________________________________________________________________________________ -void ProcesaTramaClienteTFTP(struct TramaTftp* trmInfo) -{ - char *ptr; - int bloque,lon,ret; - char tam[20]; - struct tftppacket_ack* ptrack; - char modulo[]="ProcesaTramaClienteTFTP()"; - - while(true){ - switch(ntohs(trmInfo->pckTftp.opcode)){ - case TFTPRRQ: // Read Request - if(trmInfo->currentopCode!=0x0000) return; // Error en la secuencia de operaciones - if(!PeticionFichero(trmInfo)) return; - fseek(trmInfo->fileboot,0,SEEK_SET); - trmInfo->pckTftp.opcode= htons(TFTPOACK); - trmInfo->currentopCode=TFTPOACK; - ptr=&trmInfo->pckTftp.buffer[0]; - if(trmInfo->tsize>0){ // opción tsize - strcpy(ptr,"tsize"); - ptr+=strlen(ptr)+1; - //itoa(trmInfo->tsize,tam,10); - sprintf(tam,"%d",trmInfo->tsize); - strcpy(ptr,tam); - ptr+=strlen(ptr)+1; - *ptr=0x00; - } - else{ - if(trmInfo->bloquesize>0){ // opción blksize - strcpy(ptr,"blksize"); - ptr+=strlen(ptr)+1; - //itoa(trmInfo->bloquesize,tam,10); - sprintf(tam,"%d",trmInfo->bloquesize); - strcpy(ptr,tam); - ptr+=strlen(ptr)+1; - *ptr=0x00; - } - else - trmInfo->bloquesize=512; - } - - lon=ptr-(char*)&trmInfo->pckTftp; - //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - //if (ret == SOCKET_ERROR){ - // RegistraLog("***connect() fallo:",true); - // return; - //} - ret=sendto(trmInfo->sck,(char*)&trmInfo->pckTftp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - //ret=send(trmInfo->sck,(char*)&trmInfo->pckTftp,lon,0); - if (ret == SOCKET_ERROR){ - errorLog(modulo,26, TRUE); - return; - } - break; - - case TFTPACK: // - if(trmInfo->currentopCode!=TFTPOACK && trmInfo->currentopCode!=TFTPDATA) return; // Error en la secuencia de operaciones - ptrack=(struct tftppacket_ack*)&trmInfo->pckTftp; - bloque=ntohs(ptrack->block); - trmInfo->currentopCode=TFTPDATA; - ptrack->opcode=htons(TFTPDATA); - bloque++; - ptrack->block=htons(bloque); - trmInfo->numblock=bloque; - lon=fread(ptrack->buffer,1,trmInfo->bloquesize,trmInfo->fileboot); - //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - //if (ret == SOCKET_ERROR){ - // RegistraLog("***connect() fallo:",true); - // return; - //} - ret=sendto(trmInfo->sck,(char*)&trmInfo->pckTftp,lon+4,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - //ret=send(trmInfo->sck,(char*)&trmInfo->pckTftp,lon+4,0); - if (ret == SOCKET_ERROR){ - errorLog(modulo,26, TRUE); - return; - } - if(lon==0) - return; // Fin de la trama tftp - break; - case TFTPERROR: - errorLog(modulo,78, TRUE); - } - ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckTftp, sizeof(trmInfo->pckTftp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,79, TRUE); - return; - } - else - if(ret==0) break; - } - return; -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje Tftp de peticin de fichero. Recupera datos de tamao de bloque y otros parámetros -// para gestionar la conversacin. -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin TFTP -//_______________________________________________________________________________________________________________ -int PeticionFichero(struct TramaTftp* trmInfo) -{ - char *ptr; - char nomfile[250]; - - if(strncmp(trmInfo->pckTftp.buffer,"pxelinux.cfg",12)==0) - strcpy(nomfile,"default"); - else - strcpy(nomfile,trmInfo->pckTftp.buffer); - - trmInfo->currentopCode=ntohs(trmInfo->pckTftp.opcode); // Guarda código de operación - // Localiza parámetros - ptr=&trmInfo->pckTftp.buffer[0]; - ptr+=strlen(ptr)+1; // Avanza al campo siguiente al del nombre de fichero - if(!strcmp(ptr,"octet")){ // Modo de apertura - //trmInfo->fileboot=fopen(trmInfo->pckTftp.buffer,"rb"); - trmInfo->fileboot=fopen(nomfile,"rb"); - } - else{ - //trmInfo->fileboot=fopen(trmInfo->pckTftp.buffer,"rt"); - trmInfo->fileboot=fopen(nomfile,"rt"); - } - if(trmInfo->fileboot==NULL) - return(false); // No existe el fichero boot - ptr+=strlen(ptr)+1; // Paso al parámetro siguiente - while(*ptr){ - if(strcmp(ptr,"blksize")==0){ // parámetro blksize - ptr+=strlen(ptr) + 1; - trmInfo->bloquesize=atoi(ptr); - if(trmInfo->bloquesize<512) trmInfo->bloquesize=512; - if(trmInfo->bloquesize>MAXBLOCK) trmInfo->bloquesize=512; - ptr+=strlen(ptr) + 1; - } - else{ - if(strcmp(ptr,"tsize")==0){ // parámetro tsize - ptr+=strlen(ptr) + 1; - fseek(trmInfo->fileboot,0,SEEK_END); - trmInfo->tsize=ftell(trmInfo->fileboot); - ptr+=strlen(ptr) + 1; - } - else{ - if(strcmp(ptr,"interval")==0){ // Tamao de los bloques - ptr+=strlen(ptr) + 1; - trmInfo->interval=atoi(ptr); - ptr+=strlen(ptr) + 1; - } - else - return(false); - } - - } - } - return(true); -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje recibido que proviene de un cliente Hidra pero no en el momento de arranque con PXE -// sino cuando arranca con algn S.O. como (Windows oLinux) -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -//_______________________________________________________________________________________________________________ -void ProcesaTramaClienteDHCP(struct TramaDhcpBootp* trmInfo) -{ - unsigned char codop; - unsigned char longitud; - unsigned char *ptrOp; - unsigned char *msgDhcp; - int ret; - char modulo[]="ProcesaTramaClienteDHCP()"; - - while(true){ - ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje - if(!ptrOp){ // No existe la opción DHCP - errorLog(modulo,77, FALSE); - return; - } - codop = ptrOp[0]; - longitud=ptrOp[1]; - msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje - - switch(*msgDhcp){ - case DHCPDISCOVER: - dhcpDISCOVER_PXE(trmInfo); - break; - case DHCPREQUEST: - dhcpREQUEST_PXE(trmInfo); - break; - } - ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,80, TRUE); - } - else - if(ret==0) break; - } -} -//_______________________________________________________________________________________________________________ -// -// Rellena el campo IP asignada(yiaddr) al cliente dentro del mensaje DHCP -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -//_______________________________________________________________________________________________________________ -void RellenaIPCLiente(struct TramaDhcpBootp* trmInfo) -{ - unsigned long aux; - - aux=inet_addr(trmInfo->bdIP); // Ip para el cliente - memcpy((void*)&trmInfo->pckDchp.yiaddr,&aux,sizeof(aux)); -} -//_______________________________________________________________________________________________________________ -// -// Rellena el campo IP del servidor(siaddr) dentro del mensaje DHCP -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -//_______________________________________________________________________________________________________________ -void RellenaIPServidor(struct TramaDhcpBootp* trmInfo) -{ - unsigned long aux; - - aux=inet_addr(IPlocal); // Ip del servidor - memcpy(&trmInfo->pckDchp.siaddr,&aux,sizeof(aux)); -} -//_______________________________________________________________________________________________________________ -// -// Rellena el campo nombre del servidor boot dentro del mensaje BOOTP -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin BOOTP -//_______________________________________________________________________________________________________________ -void RellenaNombreServidorBoot(struct TramaDhcpBootp* trmInfo) -{ - char aux[100]; - - strcpy(aux,"Hidra 2.0 PXE Boot Server"); - memcpy(&trmInfo->pckDchp.sname,&aux,25); -} -//_______________________________________________________________________________________________________________ -// -// Rellena el campo nombre del fichero boot dentro del mensaje BOOTP -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin BOOTP -//_______________________________________________________________________________________________________________ -void RellenaNombreFicheroBoot(struct TramaDhcpBootp* trmInfo) -{ - char aux[100]; - - strcpy(aux,"pxelinux.0"); - memcpy(&trmInfo->pckDchp.file,&aux,25); -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje DHCPDISCOVER -// -// Parámetros: -// trmInfo: Puntero a la estructura de control de la conversacin DHCP -// -// Devuelve: -// true: Si el mensaje se procesa correctamente -// false: En caso contrario -//_______________________________________________________________________________________________________________ -void dhcpDISCOVER_PXE(struct TramaDhcpBootp* trmInfo) -{ - unsigned char *ptrOp,*ptrDhcp; - int lon,ret; - char modulo[]="dhcpDISCOVER_PXE()"; - - ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage - ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones - lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie - - RellenaIPCLiente(trmInfo); - RellenaIPServidor(trmInfo); - *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas - - - AdjDHCPOFFER(&ptrOp,&lon); // Genera opción de Mensaje (0x35) dhcp valor 1 - AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp - AdjLEASETIME(&ptrOp,&lon); // Genera opción de Mensaje (0x33) Dhcp - AdjSUBNETMASK(&ptrOp,&lon); // Genera opción de Mensaje (0x01) Dhcp - AdjROUTERS(&ptrOp,&lon); // Genera opción de Mensaje (0x03) Dhcp - AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp - *ptrOp=DHCP_END; - lon++; - trmInfo->pckDchp.op=DHCPOFFER; - //MandaRespuesta(&trmInfo->pckDchp,htonl(INADDR_BROADCAST),lon,htons(PUERTODHCPDESTINO)); - trmInfo->cliente.sin_addr.s_addr=htonl(INADDR_BROADCAST); - ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,26, TRUE); - } -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje DHCPREQUEST (DHCP) -// -// Parámetros: -// trmInfo: Puntero a la estructura de control para la conversacin DHCP -// -// Devuelve: -// true: Si el mensaje se procesa correctamente -// false: En caso contrario -//_______________________________________________________________________________________________________________ -void dhcpREQUEST_PXE(struct TramaDhcpBootp* trmInfo) -{ - unsigned char * ptrOp,*ptrDhcp; - struct dhcp_opcion; - int lon,ret; - char modulo[]="dhcpREQUEST_PXE()"; - - ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage - ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones - lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie - - RellenaIPCLiente(trmInfo); - RellenaIPServidor(trmInfo); - *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas - - AdjDHCPACK(&ptrOp,&lon); // Ge db.Close();nera opción de Mensaje (0x35) dhcp valor 5 - AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp - AdjLEASETIME(&ptrOp,&lon); // Genera opción de Mensaje (0x33) Dhcp - AdjSUBNETMASK(&ptrOp,&lon); // Genera opción de Mensaje (0x01) Dhcp - AdjROUTERS(&ptrOp,&lon); // Genera opción de Mensaje (0x03) Dhcp - AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp - - *ptrOp=DHCP_END; - lon++; - - trmInfo->pckDchp.op=DHCPOFFER; - //MandaRespuesta(&trmInfo->pckDchp,htonl(INADDR_BROADCAST),lon,htons(PUERTODHCPDESTINO)); - trmInfo->cliente.sin_addr.s_addr=htonl(INADDR_BROADCAST); - ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,26, TRUE); - } -} -//_______________________________________________________________________________________________________________ -// -// Procesa un mensaje DHCPREQUEST (BOOTP) -// -// Parámetros: -// trmInfo: Puntero a la estructura de control para la conversacin BOOTP -// -// Devuelve: -// true: Si el mensaje se procesa correctamente -// false: En caso contrario -//_______________________________________________________________________________________________________________ -void bootpREQUEST_PXE(struct TramaDhcpBootp* trmInfo) -{ - unsigned char * ptrOp,*ptrDhcp; - struct dhcp_opcion; - int lon,ret; - unsigned long aux; - char modulo[]="bootpREQUEST_PXE()"; - - ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage - ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones - lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie - - aux=inet_addr("0.0.0.0"); // Borra Ip del cliente ( No se porqu pero en la trama aparece as) - memcpy(&trmInfo->pckDchp.ciaddr,&aux,4); - RellenaNombreServidorBoot(trmInfo); - RellenaNombreFicheroBoot(trmInfo); - - *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas - - AdjDHCPACK(&ptrOp,&lon); // Genera opción de Mensaje (0x35) dhcp valor 5 - AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp - AdjBOOTSIZE(&ptrOp,&lon); // Genera opción de Mensaje (0x0D) Dhcp - AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp - - *ptrOp=DHCP_END; - lon++; - - trmInfo->pckDchp.op=DHCPOFFER; - //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - //if (ret == SOCKET_ERROR){ - // RegistraLog("***connect() fallo:",true); - // return; - //} - //ret=send(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0); - ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize); - if (ret == SOCKET_ERROR){ - errorLog(modulo,26,TRUE); - return; - } -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x35(53) con el valor "Dhcp Offer" valor 2 -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Mensaje dhcp Offer -//_______________________________________________________________________________________________________________ -void AdjDHCPOFFER(unsigned char* *ptrOp,int*lon) -{ - **ptrOp=DHCP_MESSAGE_TYPE; - *ptrOp+=1; - **ptrOp=1; - *ptrOp+=1; - **ptrOp=DHCPOFFER; - *ptrOp+=1; - *lon+=3; -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x35(53) con el valor "Dhcp Ack" valor 5 -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Mensaje dhcp Ack -//_______________________________________________________________________________________________________________ -void AdjDHCPACK(unsigned char** ptrOp,int*lon) - -{ - **ptrOp=DHCP_MESSAGE_TYPE; - *ptrOp+=1; - **ptrOp=1; - *ptrOp+=1; - **ptrOp=DHCPACK; - *ptrOp+=1; - *lon+=3; -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x03(3) con la IP del router -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Ip del Routers -//_______________________________________________________________________________________________________________ -void AdjROUTERS(unsigned char** ptrOp,int*lon) -{ - unsigned long aux; - aux=inet_addr(oProuter); // Router - - **ptrOp=DHCP_ROUTERS; - *ptrOp+=1; - **ptrOp=4; - *ptrOp+=1; - memcpy(*ptrOp,&aux,4); // Copia la Ip del router en la estructura - *ptrOp+=4; - *lon+=6; - -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x01(1) con la mascara de red -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de mscara de red -//_______________________________________________________________________________________________________________ -void AdjSUBNETMASK(unsigned char** ptrOp,int*lon) -{ - unsigned long aux; - aux=inet_addr(oPmascara); // Mascara de red - - **ptrOp=DHCP_SUBNET_MASK; - *ptrOp+=1; - **ptrOp=4; - *ptrOp+=1; - memcpy(*ptrOp,&aux,4); // Copia la máscara de red - *ptrOp+=4; - *lon+=6; -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x3c(60) con el literal "PXECLient" para clientes PXE -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de clase de cliente -//_______________________________________________________________________________________________________________ -void AdjCLASSIDENTIFIER(unsigned char** ptrOp,int*lon) -{ - **ptrOp=DHCP_CLASS_IDENTIFIER; - *ptrOp+=1; - **ptrOp=9; - *ptrOp+=1; - memcpy(*ptrOp,"PXEClient",9); // Copia el literal PXClient - *ptrOp+=9; - *lon+=11; -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x36(54) con la IP del servidor -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Ip del servidor -//_______________________________________________________________________________________________________________ -void AdjSERVERIDENTIFIER(unsigned char** ptrOp,int*lon) -{ - unsigned long aux; - aux=inet_addr(IPlocal); // Ip del servidor - - **ptrOp=DHCP_SERVER_IDENTIFIER; - *ptrOp+=1; - **ptrOp=4; - *ptrOp+=1; - memcpy(*ptrOp,&aux,4); // Copia la Ip del ervidor en la estructura - *ptrOp+=4; - *lon+=6; - -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x33(51) con el tiempo de "lease" de la IP -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones del "Lease Time" -//_______________________________________________________________________________________________________________ -void AdjLEASETIME(unsigned char** ptrOp,int*lon) -{ - unsigned long aux; - aux=0x00006054; // tiempo en segundos - - **ptrOp=DHCP_LEASE_TIME; - *ptrOp+=1; - **ptrOp=4; - *ptrOp+=1; - memcpy(*ptrOp,&aux,4); // Copia el lease time en la estructura - *ptrOp+=4; - *lon+=6; -} -//_______________________________________________________________________________________________________________ -// -// Genera una opción del tipo 0x0D(13) con el tiempo tamao del fichero boot -// -// Devuelve: -// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones del "Lease Time" -//_______________________________________________________________________________________________________________ -void AdjBOOTSIZE(unsigned char** ptrOp,int*lon) -{ - unsigned short aux; - aux=0x0402; // Tamao en bytes - - **ptrOp=DHCP_BOOT_SIZE; - *ptrOp+=1; - **ptrOp=2; - *ptrOp+=1; - memcpy(*ptrOp,&aux,2); // Copia el tamao en la estructura - *ptrOp+=2; - *lon+=4; -} -//_______________________________________________________________________________________________________________ -// -// Crea un socket en un puerto determinado para la conversacin de las distintas hebras -// -//_______________________________________________________________________________________________________________ -SOCKET TomaSocketUser() -{ - SOCKET socket_c; // Socket para hebras (UDP) - struct sockaddr_in cliente; - int ret,puerto; - BOOLEAN bOpt; - char modulo[]="TomaSocketUser()"; - - socket_c = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP - - if (socket_c == SOCKET_ERROR){ - errorLog(modulo,81,TRUE); - return(false); - } - cliente.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface - cliente.sin_family = AF_INET; - puerto=PUERTOMINUSER; - while(puerto<PUERTOMAXUSER){ // Busca puerto libre - cliente.sin_port = htons(puerto); // Puerto asignado - if (bind(socket_c,(struct sockaddr *)&cliente,sizeof(cliente)) == SOCKET_ERROR) - puerto++; - else - break; - } - if(puerto>=PUERTOMAXUSER){ // No hay puertos libres - errorLog(modulo,63, TRUE); - return(INVALID_SOCKET); - } - - bOpt=TRUE; // Pone el socket en modo "soportar Broadcast" - ret=setsockopt(socket_c,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt)); - if (ret == SOCKET_ERROR){ - errorLog(modulo,48, TRUE); - return(INVALID_SOCKET); - } - return(socket_c); -} -//_______________________________________________________________________________________________________________ -void Pinta(dhcp_packet* tdp) -{ - return; - printf("\nop = %d htype = %d hlen = %d hops = %d",tdp -> op, tdp -> htype, tdp -> hlen, tdp -> hops); - //printf ("\nxid = %x secs = %d flags = %x",tdp -> xid, tdp -> secs, tdp -> flags); - printf ("\nciaddr = %s", inet_ntoa (tdp -> ciaddr)); - printf ("\nyiaddr = %s", inet_ntoa (tdp -> yiaddr)); - printf ("\nsiaddr = %s", inet_ntoa (tdp -> siaddr)); - printf ("\ngiaddr = %s", inet_ntoa (tdp -> giaddr)); - printf ("\nchaddr = %x:%x:%x:%x:%x:%x",((unsigned char *)(tdp -> chaddr)) [0],((unsigned char *)(tdp -> chaddr)) [1],((unsigned char *)(tdp -> chaddr)) [2],((unsigned char *)(tdp -> chaddr)) [3],((unsigned char *)(tdp -> chaddr)) [4],((unsigned char *)(tdp -> chaddr)) [5]); - printf ("\nfilename = %s", tdp -> file); - printf ("\nserver_name = %s", tdp -> sname); - - printf ("\n\n"); -} -//*************************************************************************************************************** -// PROGRAMA PRINCIPAL -//*************************************************************************************************************** -int main(int argc, char **argv) -{ - pthread_t hThreadDHCP,hThreadBOOTP,hThreadTFTP; - int resul; - char modulo[] = "main()"; - - /*-------------------------------------------------------------------------------------------------------- - Validación de parámetros de ejecución y lectura del fichero de configuración del servicio - ---------------------------------------------------------------------------------------------------------*/ - if (!validacionParametros(argc, argv,4)) // Valida parámetros de ejecución - exit(EXIT_FAILURE); - - if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion - exit(EXIT_FAILURE); - } - - infoLog(1); // Inicio de sesión - - // Hebra servicio DHCP --------------------------------- - resul=pthread_create(&hThreadDHCP,NULL,ServicioDHCP,(LPVOID)IPlocal); - if(resul!=0){ - errorLog(modulo, 58, TRUE); - exit(EXIT_FAILURE); - } - pthread_detach(hThreadDHCP); - - - // Hebra servicio BOOTP --------------------------------- - resul=pthread_create(&hThreadBOOTP,NULL,ServicioBOOTP,(LPVOID)IPlocal); - if(resul!=0){ - errorLog(modulo,59,TRUE); - exit(EXIT_FAILURE); - } - pthread_detach(hThreadBOOTP); - - // Hebra servicio TFTP ---------------------------------- - resul=pthread_create(&hThreadTFTP,NULL,ServicioTFTP,(LPVOID)IPlocal); - if(resul!=0){ - errorLog(modulo,60,TRUE); - exit(EXIT_FAILURE); - } - pthread_detach(hThreadTFTP); - - while (true) - sleep(1000); - -} diff --git a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h deleted file mode 100644 index ec6db36a..00000000 --- a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h +++ /dev/null @@ -1,262 +0,0 @@ -// ******************************************************************************************************** -// Servicio: ogAdmBoot -// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creación: Julio-2010 -// Fecha Última modificación: Julio-2010 -// Nombre del fichero: ogAdmBoot.cpp -// Descripción :Este fichero implementa el servicio dhcp y tftp propios del sistema -// ******************************************************************************************************** -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> -#include <errno.h> -#include <unistd.h> -#include <time.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include </usr/include/mysql/mysql.h> -#include <pthread.h> -#include "Database.h" -#include "ogAdmLib.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 -// _____________________________________________________________________________________________________________ -#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[LONPRM]; -char usuario[LONPRM]; -char pasguor[LONPRM]; -char datasource[LONPRM]; -char catalog[LONPRM]; -char router[LONPRM]; -char mascara[LONPRM]; - -char oProuter[LONPRM]; -char oPmascara[LONPRM]; - -// 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 ); diff --git a/admin/Sources/Services/ogAdmServer/Makefile b/admin/Sources/Services/ogAdmServer/Makefile index cfd06d4d..6af423f3 100644 --- a/admin/Sources/Services/ogAdmServer/Makefile +++ b/admin/Sources/Services/ogAdmServer/Makefile @@ -8,12 +8,11 @@ INSTALL_DIR := /opt/opengnsys # Opciones de compilacion CFLAGS := $(shell mysql_config --cflags) -CFLAGS += -O0 -g -Wall -I../../Includes # Depuracion -#CFLAGS += -O3 -I../../Includes # Optimizacion +CFLAGS += -g -Wall -I../../Includes CPPFLAGS := $(CFLAGS) # Opciones de linkado -LDFLAGS := -Wl,--no-as-needed $(shell mysql_config --libs) -lpthread +LDFLAGS := -Wl,--no-as-needed $(shell mysql_config --libs) -lev # Ficheros objetos OBJS := ../../Includes/Database.o sources/ogAdmServer.o @@ -23,7 +22,6 @@ all: $(PROYECTO) $(PROYECTO): $(OBJS) g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO) -# strip $(PROYECTO) # Optimizacion install: $(PROYECTO) cp $(PROYECTO) $(INSTALL_DIR)/sbin diff --git a/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg b/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg index 9273952f..07d7d972 100644 --- a/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg +++ b/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg @@ -4,3 +4,4 @@ USUARIO=DBUSER PASSWORD=DBPASSWORD datasource=localhost CATALOG=DATABASE +INTERFACE=eth0 diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp index 4aa68441..cf780797 100644 --- a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp +++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp @@ -8,6 +8,17 @@ // ******************************************************************************************************* #include "ogAdmServer.h" #include "ogAdmLib.c" +#include <ev.h> +#include <syslog.h> +#include <sys/ioctl.h> +#include <ifaddrs.h> + +static char usuario[LONPRM]; // Usuario de acceso a la base de datos +static char pasguor[LONPRM]; // Password del usuario +static char datasource[LONPRM]; // Dirección IP del gestor de base de datos +static char catalog[LONPRM]; // Nombre de la base de datos +static char interface[LONPRM]; // Interface name + //________________________________________________________________________________________________________ // Función: tomaConfiguracion // @@ -16,161 +27,112 @@ // Parámetros: // filecfg : Ruta completa al fichero de configuración // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error //________________________________________________________________________________________________________ -BOOLEAN tomaConfiguracion(char* filecfg) { - char modulo[] = "tomaConfiguracion()"; +static bool tomaConfiguracion(const char *filecfg) +{ + char buf[1024], *line; + char *key, *value; + FILE *fcfg; if (filecfg == NULL || strlen(filecfg) == 0) { - errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío - return (FALSE); + syslog(LOG_ERR, "No configuration file has been specified\n"); + return false; } - FILE *fcfg; - long lSize; - char * buffer, *lineas[MAXPRM], *dualparametro[2]; - int i, numlin, resul; fcfg = fopen(filecfg, "rt"); if (fcfg == NULL) { - errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio - return (FALSE); + syslog(LOG_ERR, "Cannot open configuration file `%s'\n", + filecfg); + return false; } - fseek(fcfg, 0, SEEK_END); - lSize = ftell(fcfg); // Obtiene tamaño del fichero. - rewind(fcfg); - buffer = (char*) reservaMemoria(lSize + 1); // Toma memoria para el buffer de lectura. - if (buffer == NULL) { // No hay memoria suficiente para el buffer - errorLog(modulo, 3, FALSE); - return (FALSE); + servidoradm[0] = (char) NULL; //inicializar variables globales + + line = fgets(buf, sizeof(buf), fcfg); + while (line != NULL) { + const char *delim = "="; + + line[strlen(line) - 1] = '\0'; + + key = strtok(line, delim); + value = strtok(NULL, delim); + + if (!strcmp(StrToUpper(key), "SERVIDORADM")) + snprintf(servidoradm, sizeof(servidoradm), "%s", value); + else if (!strcmp(StrToUpper(key), "PUERTO")) + snprintf(puerto, sizeof(puerto), "%s", value); + else if (!strcmp(StrToUpper(key), "USUARIO")) + snprintf(usuario, sizeof(usuario), "%s", value); + else if (!strcmp(StrToUpper(key), "PASSWORD")) + snprintf(pasguor, sizeof(pasguor), "%s", value); + else if (!strcmp(StrToUpper(key), "DATASOURCE")) + snprintf(datasource, sizeof(datasource), "%s", value); + else if (!strcmp(StrToUpper(key), "CATALOG")) + snprintf(catalog, sizeof(catalog), "%s", value); + else if (!strcmp(StrToUpper(key), "INTERFACE")) + snprintf(interface, sizeof(interface), "%s", value); + + + line = fgets(buf, sizeof(buf), fcfg); } - fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero - buffer[lSize] = (char) NULL; - fclose(fcfg); - servidoradm[0] = (char) NULL; //inicializar variables globales - usuario[0] = (char) NULL; - pasguor[0] = (char) NULL; - datasource[0] = (char) NULL; - catalog[0] = (char) NULL; - aulaup[0] = (char) NULL; - - numlin = splitCadena(lineas, buffer, '\n'); - for (i = 0; i < numlin; i++) { - splitCadena(dualparametro, lineas[i], '='); - resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM"); - if (resul == 0) - strcpy(servidoradm, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO"); - if (resul == 0) - strcpy(puerto, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO"); - if (resul == 0) - strcpy(usuario, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD"); - if (resul == 0) - strcpy(pasguor, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE"); - if (resul == 0) - strcpy(datasource, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG"); - if (resul == 0) - strcpy(catalog, dualparametro[1]); - resul = strcmp(StrToUpper(dualparametro[0]), "AULAUP"); - if (resul == 0) - strcpy(catalog, dualparametro[1]); - } - if (servidoradm[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 4, FALSE); // Falta parámetro SERVIDORADM - return (FALSE); + if (!servidoradm[0]) { + syslog(LOG_ERR, "Missing SERVIDORADM in configuration file\n"); + return false; } - if (puerto[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO - return (FALSE); + if (!puerto[0]) { + syslog(LOG_ERR, "Missing PUERTO in configuration file\n"); + return false; } - if (usuario[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO - return (FALSE); + if (!usuario[0]) { + syslog(LOG_ERR, "Missing USUARIO in configuration file\n"); + return false; } - if (pasguor[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD - return (FALSE); + if (!pasguor[0]) { + syslog(LOG_ERR, "Missing PASSWORD in configuration file\n"); + return false; } - if (datasource[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE - return (FALSE); + if (!datasource[0]) { + syslog(LOG_ERR, "Missing DATASOURCE in configuration file\n"); + return false; } - if (catalog[0] == (char) NULL) { - liberaMemoria(buffer); - errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG - return (FALSE); + if (!catalog[0]) { + syslog(LOG_ERR, "Missing CATALOG in configuration file\n"); + return false; } - if (aulaup[0] == (char) NULL) { - strcpy(aulaup, "0"); // Por defecto el conmutador de registro automático esta en off + if (!interface[0]) + syslog(LOG_ERR, "Missing INTERFACE in configuration file\n"); - } - liberaMemoria(buffer); - return (TRUE); + return true; } -// ________________________________________________________________________________________________________ -// Función: gestionaTrama -// -// Descripción: -// Procesa las tramas recibidas . -// Parametros: -// - s : Socket usado para comunicaciones -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -// ________________________________________________________________________________________________________ -BOOLEAN gestionaTrama(SOCKET *socket_c) -{ - TRAMA* ptrTrama; - int i, res; - char *nfn; - char modulo[] = "gestionaTrama()"; - ptrTrama=recibeTrama(socket_c); - - if (ptrTrama){ - INTROaFINCAD(ptrTrama); - nfn = copiaParametro("nfn",ptrTrama); // Toma nombre de la función +enum og_client_state { + OG_CLIENT_RECEIVING_HEADER = 0, + OG_CLIENT_RECEIVING_PAYLOAD, + OG_CLIENT_PROCESSING_REQUEST, +}; - for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas - res = strcmp(tbfuncionesServer[i].nf, nfn); - if (res == 0) { // Encontrada la función que procesa el mensaje - liberaMemoria(nfn); - res=tbfuncionesServer[i].fptr(socket_c, ptrTrama); // Invoca la función - liberaMemoria(ptrTrama->parametros); - liberaMemoria(ptrTrama); - return(res); - } - } - liberaMemoria(nfn); - liberaMemoria(ptrTrama->parametros); - liberaMemoria(ptrTrama); - /* - Sólo puede ser un comando personalizado o su notificación - if (ptrTrama->tipo == MSG_COMANDO) - return (Comando(socket_c, ptrTrama)); - else { - if (ptrTrama->tipo == MSG_NOTIFICACION) - return (RESPUESTA_Comando(socket_c, ptrTrama)); - else - errorLog(modulo, 18, FALSE); // No se reconoce el mensaje - } - */ - } - else - errorLog(modulo, 17, FALSE); // Error en la recepción - return (TRUE); +/* Shut down connection if there is no complete message after 10 seconds. */ +#define OG_CLIENT_TIMEOUT 10 + +struct og_client { + struct ev_io io; + struct ev_timer timer; + struct sockaddr_in addr; + enum og_client_state state; + char buf[4096]; + unsigned int buf_len; + unsigned int msg_len; + int keepalive_idx; +}; + +static inline int og_client_socket(const struct og_client *cli) +{ + return cli->io.fd; } + // ________________________________________________________________________________________________________ // Función: Sondeo // @@ -180,21 +142,17 @@ BOOLEAN gestionaTrama(SOCKET *socket_c) // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Sondeo(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Sondeo()"; - +static bool Sondeo(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: respuestaSondeo @@ -205,22 +163,23 @@ BOOLEAN Sondeo(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN respuestaSondeo(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool respuestaSondeo(TRAMA* ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); int i; long lSize; char *iph, *Ipes; - char modulo[] = "respuestaSondeo()"; iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP lSize = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S Ipes = (char*) reservaMemoria(lSize + 1); if (Ipes == NULL) { liberaMemoria(iph); - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } strcpy(Ipes, iph); // Copia cadena de IPES liberaMemoria(iph); @@ -238,11 +197,13 @@ BOOLEAN respuestaSondeo(SOCKET *socket_c, TRAMA* ptrTrama) { } strcat(ptrTrama->parametros, "\r"); liberaMemoria(Ipes); - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: Actualizar @@ -253,20 +214,16 @@ BOOLEAN respuestaSondeo(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Actualizar(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Actualizar()"; +static bool Actualizar(TRAMA* ptrTrama, struct og_client *cli) +{ + if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) + return false; - if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - return (FALSE); - } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: Purgar @@ -277,20 +234,16 @@ BOOLEAN Actualizar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Purgar(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Purgar()"; +static bool Purgar(TRAMA* ptrTrama, struct og_client *cli) +{ + if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) + return false; - if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - return (FALSE); - } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: ConsolaRemota @@ -301,21 +254,18 @@ BOOLEAN Purgar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN ConsolaRemota(SOCKET *socket_c, TRAMA* ptrTrama) +static bool ConsolaRemota(TRAMA* ptrTrama, struct og_client *cli) { - char *iph,fileco[LONPRM],msglog[LONSTD],*ptrIpes[MAXIMOS_CLIENTES];; + char *iph, fileco[LONPRM], *ptrIpes[MAXIMOS_CLIENTES];; FILE* f; int i,lon; - char modulo[] = "ConsolaRemota()"; if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } INTROaFINCAD(ptrTrama); /* Destruye contenido del fichero de eco anterior */ @@ -327,8 +277,8 @@ BOOLEAN ConsolaRemota(SOCKET *socket_c, TRAMA* ptrTrama) fclose(f); } liberaMemoria(iph); - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: EcoConsola @@ -339,14 +289,14 @@ BOOLEAN ConsolaRemota(SOCKET *socket_c, TRAMA* ptrTrama) // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN EcoConsola(SOCKET *socket_c, TRAMA* ptrTrama) +static bool EcoConsola(TRAMA* ptrTrama, struct og_client *cli) { + int socket_c = og_client_socket(cli); char *iph,fileco[LONPRM],*buffer; int lSize; - char modulo[] = "EcoConsola()"; INTROaFINCAD(ptrTrama); // Lee archivo de eco de consola @@ -365,11 +315,13 @@ BOOLEAN EcoConsola(SOCKET *socket_c, TRAMA* ptrTrama) sprintf(ptrTrama->parametros,"res=\r"); } ptrTrama->tipo=MSG_RESPUESTA; // Tipo de mensaje - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: clienteDisponible @@ -380,28 +332,29 @@ BOOLEAN EcoConsola(SOCKET *socket_c, TRAMA* ptrTrama) // - ip : La ip del cliente a buscar // - idx: (Salida) Indice que ocupa el cliente, de estar ya registrado // Devuelve: -// TRUE: Si el cliente está disponible -// FALSE: En caso contrario +// true: Si el cliente está disponible +// false: En caso contrario // ________________________________________________________________________________________________________ -BOOLEAN clienteDisponible(char *ip, int* idx) { +bool clienteDisponible(char *ip, int* idx) +{ int estado; if (clienteExistente(ip, idx)) { estado = strcmp(tbsockets[*idx].estado, CLIENTE_OCUPADO); // Cliente ocupado if (estado == 0) - return (FALSE); + return false; estado = strcmp(tbsockets[*idx].estado, CLIENTE_APAGADO); // Cliente apagado if (estado == 0) - return (FALSE); + return false; estado = strcmp(tbsockets[*idx].estado, CLIENTE_INICIANDO); // Cliente en proceso de inclusión if (estado == 0) - return (FALSE); + return false; - return (TRUE); // En caso contrario el cliente está disponible + return true; // En caso contrario el cliente está disponible } - return (FALSE); // Cliente no está registrado en el sistema + return false; // Cliente no está registrado en el sistema } // ________________________________________________________________________________________________________ // Función: clienteExistente @@ -412,40 +365,42 @@ BOOLEAN clienteDisponible(char *ip, int* idx) { // - ip : La ip del cliente a buscar // - idx:(Salida) Indice que ocupa el cliente, de estar ya registrado // Devuelve: -// TRUE: Si el cliente está registrado -// FALSE: En caso contrario +// true: Si el cliente está registrado +// false: En caso contrario // ________________________________________________________________________________________________________ -BOOLEAN clienteExistente(char *ip, int* idx) { +bool clienteExistente(char *ip, int* idx) +{ int i; for (i = 0; i < MAXIMOS_CLIENTES; i++) { if (contieneIP(ip, tbsockets[i].ip)) { // Si existe la IP en la cadena *idx = i; - return (TRUE); + return true; } } - return (FALSE); + return false; } // ________________________________________________________________________________________________________ // Función: hayHueco // // Descripción: -// Esta función devuelve TRUE o FALSE dependiendo de que haya hueco en la tabla de sockets para un nuevo cliente. +// Esta función devuelve true o false dependiendo de que haya hueco en la tabla de sockets para un nuevo cliente. // Parametros: // - idx: Primer indice libre que se podrn utilizar // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN hayHueco(int *idx) { +static bool hayHueco(int *idx) +{ int i; for (i = 0; i < MAXIMOS_CLIENTES; i++) { if (strncmp(tbsockets[i].ip, "\0", 1) == 0) { // Hay un hueco *idx = i; - return (TRUE); + return true; } } - return (FALSE); + return false; } // ________________________________________________________________________________________________________ // Función: InclusionClienteWin @@ -456,17 +411,18 @@ BOOLEAN hayHueco(int *idx) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN InclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama) - { - char modulo[] = "InclusionClienteWinLnx()"; +static bool InclusionClienteWinLnx(TRAMA *ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); int res,idordenador,lon; char nombreordenador[LONFIL]; - - res=procesoInclusionClienteWinLnx(socket_c, ptrTrama,&idordenador,nombreordenador); - + + res = procesoInclusionClienteWinLnx(socket_c, ptrTrama, &idordenador, + nombreordenador); + // Prepara la trama de respuesta initParametros(ptrTrama,0); @@ -475,12 +431,14 @@ BOOLEAN InclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama) lon += sprintf(ptrTrama->parametros + lon, "ido=%d\r", idordenador); lon += sprintf(ptrTrama->parametros + lon, "npc=%s\r", nombreordenador); lon += sprintf(ptrTrama->parametros + lon, "res=%d\r", res); - - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: procesoInclusionClienteWinLnx @@ -496,24 +454,22 @@ BOOLEAN InclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama) // Devuelve: // Código del error producido en caso de ocurrir algún error, 0 si el proceso es correcto // ________________________________________________________________________________________________________ -BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *idordenador,char* nombreordenador) +bool procesoInclusionClienteWinLnx(int socket_c, TRAMA *ptrTrama, int *idordenador, char *nombreordenador) { char msglog[LONSTD], sqlstr[LONSQL]; Database db; Table tbl; - char *iph; - char modulo[] = "procesoInclusionClienteWinLnx()"; - + // Toma parámetros iph = copiaParametro("iph",ptrTrama); // Toma ip - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD + if (!db.Open(usuario, pasguor, datasource, catalog)) { liberaMemoria(iph); - errorLog(modulo, 20, FALSE); db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (20); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } // Recupera los datos del cliente @@ -521,53 +477,52 @@ BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *ido "SELECT idordenador,nombreordenador FROM ordenadores " " WHERE ordenadores.ip = '%s'", iph); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos + if (!db.Execute(sqlstr, tbl)) { liberaMemoria(iph); - errorLog(modulo, 21, FALSE); db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); db.Close(); - return (21); + return false; } - if (tbl.ISEOF()) { // Si no existe el cliente + if (tbl.ISEOF()) { liberaMemoria(iph); - errorLog(modulo, 22, FALSE); + syslog(LOG_ERR, "client does not exist in database (%s:%d)\n", + __func__, __LINE__); db.liberaResult(tbl); db.Close(); - return (22); + return false; } - if (ndebug == DEBUG_ALTO) { - sprintf(msglog, "%s IP:%s", tbMensajes[2], iph); - infoDebug(msglog); - } + syslog(LOG_DEBUG, "Client %s requesting inclusion\n", iph); + if (!tbl.Get("idordenador", *idordenador)) { liberaMemoria(iph); db.liberaResult(tbl); tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); db.Close(); - return (FALSE); + return false; } if (!tbl.Get("nombreordenador", nombreordenador)) { liberaMemoria(iph); db.liberaResult(tbl); tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); db.Close(); - return (FALSE); + return false; } db.liberaResult(tbl); db.Close(); - + if (!registraCliente(iph)) { // Incluyendo al cliente en la tabla de sokets liberaMemoria(iph); - errorLog(modulo, 25, FALSE); - return (25); + syslog(LOG_ERR, "client table is full\n"); + return false; } liberaMemoria(iph); - return(0); + return true; } // ________________________________________________________________________________________________________ // Función: InclusionCliente @@ -579,22 +534,25 @@ BOOLEAN procesoInclusionClienteWinLnx(SOCKET *socket_c, TRAMA *ptrTrama,int *ido // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN InclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { - char modulo[] = "InclusionCliente()"; +static bool InclusionCliente(TRAMA *ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); - if (!procesoInclusionCliente(socket_c, ptrTrama)) { // Ha habido algún error... + if (!procesoInclusionCliente(cli, ptrTrama)) { initParametros(ptrTrama,0); strcpy(ptrTrama->parametros, "nfn=RESPUESTA_InclusionCliente\rres=0\r"); - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } } - return (TRUE); -} + return true; +} // ________________________________________________________________________________________________________ // Función: procesoInclusionCliente // @@ -604,10 +562,12 @@ BOOLEAN InclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { +bool procesoInclusionCliente(struct og_client *cli, TRAMA *ptrTrama) +{ + int socket_c = og_client_socket(cli); char msglog[LONSTD], sqlstr[LONSQL]; Database db; Table tbl; @@ -615,19 +575,18 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { char *iph, *cfg; char nombreordenador[LONFIL]; int lon, resul, idordenador, idmenu, cache, idproautoexec, idaula, idcentro; - char modulo[] = "procesoInclusionCliente()"; // Toma parámetros iph = copiaParametro("iph",ptrTrama); // Toma ip cfg = copiaParametro("cfg",ptrTrama); // Toma configuracion - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD + if (!db.Open(usuario, pasguor, datasource, catalog)) { liberaMemoria(iph); liberaMemoria(cfg); - errorLog(modulo, 20, FALSE); db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } // Recupera los datos del cliente @@ -637,56 +596,55 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { " INNER JOIN centros ON centros.idcentro=aulas.idcentro" " WHERE ordenadores.ip = '%s'", iph); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - if (tbl.ISEOF()) { // Si no existe el cliente - errorLog(modulo, 22, FALSE); - return (FALSE); + if (tbl.ISEOF()) { + syslog(LOG_ERR, "client does not exist in database (%s:%d)\n", + __func__, __LINE__); + return false; } - if (ndebug == DEBUG_ALTO) { - sprintf(msglog, "%s IP:%s", tbMensajes[2], iph); - infoDebug(msglog); - } + syslog(LOG_DEBUG, "Client %s requesting inclusion\n", iph); + if (!tbl.Get("idordenador", idordenador)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("nombreordenador", nombreordenador)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("idmenu", idmenu)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("cache", cache)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("idproautoexec", idproautoexec)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("idaula", idaula)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("idcentro", idcentro)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } resul = actualizaConfiguracion(db, tbl, cfg, idordenador); // Actualiza la configuración del ordenador @@ -695,14 +653,14 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { if (!resul) { liberaMemoria(iph); - errorLog(modulo, 29, FALSE); - return (FALSE); + syslog(LOG_ERR, "Cannot add client to database\n"); + return false; } if (!registraCliente(iph)) { // Incluyendo al cliente en la tabla de sokets liberaMemoria(iph); - errorLog(modulo, 25, FALSE); - return (FALSE); + syslog(LOG_ERR, "client table is full\n"); + return false; } /*------------------------------------------------------------------------------------------------------------------------------ @@ -719,12 +677,14 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { lon += sprintf(ptrTrama->parametros + lon, "idc=%d\r", idcentro); lon += sprintf(ptrTrama->parametros + lon, "res=%d\r", 1); // Confirmación proceso correcto - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } liberaMemoria(iph); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: actualizaConfiguracion @@ -737,8 +697,8 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { // - cfg: cadena con una Configuración // - ido: Identificador del ordenador cliente // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // Especificaciones: // Los parametros de la configuración son: // par= Número de partición @@ -747,13 +707,12 @@ BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) { // soi= Nombre del sistema de ficheros instalado en la partición // tam= Tamaño de la partición // ________________________________________________________________________________________________________ -BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) +bool actualizaConfiguracion(Database db, Table tbl, char *cfg, int ido) { char msglog[LONSTD], sqlstr[LONSQL]; int lon, p, c,i, dato, swu, idsoi, idsfi,k; char *ptrPar[MAXPAR], *ptrCfg[6], *ptrDual[2], tbPar[LONSTD]; char *ser, *disk, *par, *cpt, *sfi, *soi, *tam, *uso; // Parametros de configuración. - char modulo[] = "actualizaConfiguracion()"; lon = 0; p = splitCadena(ptrPar, cfg, '\n'); @@ -771,8 +730,8 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) ser, ido); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } continue; @@ -826,11 +785,11 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) ido, disk, par); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (tbl.ISEOF()) { // Si no existe el registro sprintf(sqlstr, "INSERT INTO ordenadores_particiones(idordenador,numdisk,numpar,codpar,tamano,uso,idsistemafichero,idnombreso,idimagen)" @@ -840,36 +799,36 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } else { // Existe el registro - swu = TRUE; // Se supone que algún dato ha cambiado + swu = true; // Se supone que algún dato ha cambiado if (!tbl.Get("codpar", dato)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (strtol(cpt, NULL, 16) == dato) {// Parámetro tipo de partición (hexadecimal) igual al almacenado (decimal) if (!tbl.Get("tamano", dato)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (atoi(tam) == dato) {// Parámetro tamaño igual al almacenado if (!tbl.Get("idsistemafichero", dato)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (idsfi == dato) {// Parámetro sistema de fichero igual al almacenado if (!tbl.Get("idnombreso", dato)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (idsoi == dato) {// Parámetro sistema de fichero distinto al almacenado - swu = FALSE; // Todos los parámetros de la partición son iguales, no se actualiza + swu = false; // Todos los parámetros de la partición son iguales, no se actualiza } } } @@ -892,11 +851,11 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) " WHERE idordenador=%d AND numdisk=%s AND numpar=%s", uso, ido, disk, par); } - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } } } @@ -904,13 +863,13 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) // Eliminar particiones almacenadas que ya no existen sprintf(sqlstr, "DELETE FROM ordenadores_particiones WHERE idordenador=%d AND (numdisk, numpar) NOT IN (%s)", ido, tbPar); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: checkDato @@ -932,10 +891,10 @@ BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido) // En caso de producirse algún error se devuelve el valor 0 // ________________________________________________________________________________________________________ -int checkDato(Database db, Table tbl, char *dato, const char*tabla, - const char* nomdato, const char *nomidentificador) { +int checkDato(Database db, Table tbl, char *dato, const char *tabla, + const char *nomdato, const char *nomidentificador) +{ char msglog[LONSTD], sqlstr[LONSQL]; - char modulo[] = "checkDato()"; int identificador; if (strlen(dato) == 0) @@ -944,37 +903,37 @@ int checkDato(Database db, Table tbl, char *dato, const char*tabla, tabla, nomdato, dato); // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); return (0); } if (tbl.ISEOF()) { // Software NO existente sprintf(sqlstr, "INSERT INTO %s (%s) VALUES('%s')", tabla, nomdato, dato); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); + og_info(msglog); return (0); } // Recupera el identificador del software sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador"); if (!db.Execute(sqlstr, tbl)) { // Error al leer db.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); + og_info(msglog); return (0); } if (!tbl.ISEOF()) { // Si existe registro if (!tbl.Get("identificador", identificador)) { tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); + og_info(msglog); return (0); } } } else { if (!tbl.Get(nomidentificador, identificador)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); + og_info(msglog); return (0); } } @@ -988,20 +947,21 @@ int checkDato(Database db, Table tbl, char *dato, const char*tabla, // Parámetros: // - iph: Dirección ip del cliente // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN registraCliente(char *iph) { +bool registraCliente(char *iph) +{ int idx; if (!clienteExistente(iph, &idx)) { // Si no existe la IP ... if (!hayHueco(&idx)) { // Busca hueco para el nuevo cliente - return (FALSE); // No hay huecos + return false; // No hay huecos } } strcpy(tbsockets[idx].ip, iph); // Copia IP strcpy(tbsockets[idx].estado, CLIENTE_INICIANDO); // Actualiza el estado del cliente - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: AutoexecCliente @@ -1012,17 +972,18 @@ BOOLEAN registraCliente(char *iph) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN AutoexecCliente(SOCKET *socket_c, TRAMA *ptrTrama) { +static bool AutoexecCliente(TRAMA *ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); int lon; char *iph, *exe, msglog[LONSTD]; Database db; FILE *fileexe; char fileautoexec[LONPRM]; char parametros[LONGITUD_PARAMETROS]; - char modulo[] = "AutoexecCliente()"; iph = copiaParametro("iph",ptrTrama); // Toma dirección IP del cliente exe = copiaParametro("exe",ptrTrama); // Toma identificador del procedimiento inicial @@ -1031,15 +992,15 @@ BOOLEAN AutoexecCliente(SOCKET *socket_c, TRAMA *ptrTrama) { liberaMemoria(iph); fileexe = fopen(fileautoexec, "wb"); // Abre fichero de script if (fileexe == NULL) { - errorLog(modulo, 52, FALSE); - return (FALSE); + syslog(LOG_ERR, "cannot create temporary file\n"); + return false; } - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } initParametros(ptrTrama,0); if (recorreProcedimientos(db, parametros, fileexe, exe)) { @@ -1054,13 +1015,15 @@ BOOLEAN AutoexecCliente(SOCKET *socket_c, TRAMA *ptrTrama) { db.Close(); fclose(fileexe); - if (!mandaTrama(socket_c, ptrTrama)) { + if (!mandaTrama(&socket_c, ptrTrama)) { liberaMemoria(exe); - errorLog(modulo, 26, FALSE); - return (FALSE); + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } liberaMemoria(exe); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: recorreProcedimientos @@ -1070,43 +1033,42 @@ BOOLEAN AutoexecCliente(SOCKET *socket_c, TRAMA *ptrTrama) { // Parámetros: // Database db,char* parametros,FILE* fileexe,char* idp // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN recorreProcedimientos(Database db, char* parametros, FILE* fileexe, - char* idp) { +bool recorreProcedimientos(Database db, char *parametros, FILE *fileexe, char *idp) +{ int procedimientoid, lsize; char idprocedimiento[LONPRM], msglog[LONSTD], sqlstr[LONSQL]; Table tbl; - char modulo[] = "recorreProcedimientos()"; /* Busca procedimiento */ sprintf(sqlstr, "SELECT procedimientoid,parametros FROM procedimientos_acciones" " WHERE idprocedimiento=%s ORDER BY orden", idp); // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } while (!tbl.ISEOF()) { // Recorre procedimientos if (!tbl.Get("procedimientoid", procedimientoid)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (procedimientoid > 0) { // Procedimiento recursivo sprintf(idprocedimiento, "%d", procedimientoid); if (!recorreProcedimientos(db, parametros, fileexe, idprocedimiento)) { - return (FALSE); + return false; } } else { if (!tbl.Get("parametros", parametros)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } strcat(parametros, "@"); lsize = strlen(parametros); @@ -1114,7 +1076,7 @@ BOOLEAN recorreProcedimientos(Database db, char* parametros, FILE* fileexe, } tbl.MoveNext(); } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: ComandosPendientes @@ -1125,14 +1087,14 @@ BOOLEAN recorreProcedimientos(Database db, char* parametros, FILE* fileexe, // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN ComandosPendientes(SOCKET *socket_c, TRAMA *ptrTrama) +static bool ComandosPendientes(TRAMA *ptrTrama, struct og_client *cli) { + int socket_c = og_client_socket(cli); char *ido,*iph,pids[LONPRM]; int ids, idx; - char modulo[] = "ComandosPendientes()"; iph = copiaParametro("iph",ptrTrama); // Toma dirección IP ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador @@ -1140,8 +1102,8 @@ BOOLEAN ComandosPendientes(SOCKET *socket_c, TRAMA *ptrTrama) if (!clienteExistente(iph, &idx)) { // Busca índice del cliente liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 47, FALSE); - return (FALSE); + syslog(LOG_ERR, "client does not exist\n"); + return false; } if (buscaComandos(ido, ptrTrama, &ids)) { // Existen comandos pendientes ptrTrama->tipo = MSG_COMANDO; @@ -1152,15 +1114,17 @@ BOOLEAN ComandosPendientes(SOCKET *socket_c, TRAMA *ptrTrama) initParametros(ptrTrama,0); strcpy(ptrTrama->parametros, "nfn=NoComandosPtes\r"); } - if (!mandaTrama(socket_c, ptrTrama)) { + if (!mandaTrama(&socket_c, ptrTrama)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 26, FALSE); - return (FALSE); + liberaMemoria(ido); + syslog(LOG_ERR, "failed to send response to %s:%hu reason=%s\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + return false; } liberaMemoria(iph); liberaMemoria(ido); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: buscaComandos @@ -1172,59 +1136,57 @@ BOOLEAN ComandosPendientes(SOCKET *socket_c, TRAMA *ptrTrama) // - cmd: Parámetros del comando (Salida) // - ids: Identificador de la sesion(Salida) // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN buscaComandos(char *ido, TRAMA *ptrTrama, int *ids) +bool buscaComandos(char *ido, TRAMA *ptrTrama, int *ids) { char msglog[LONSTD], sqlstr[LONSQL]; Database db; Table tbl; int lonprm; - char modulo[] = "buscaComandos()"; - - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } sprintf(sqlstr,"SELECT sesion,parametros,length( parametros) as lonprm"\ " FROM acciones WHERE idordenador=%s AND estado='%d' ORDER BY idaccion", ido, ACCION_INICIADA); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (tbl.ISEOF()) { db.Close(); - return (FALSE); // No hay comandos pendientes + return false; // No hay comandos pendientes } else { // Busca entre todas las acciones de diversos ambitos if (!tbl.Get("sesion", *ids)) { // Toma identificador de la sesion tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("lonprm", lonprm)) { // Toma parámetros del comando tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if(!initParametros(ptrTrama,lonprm+LONGITUD_PARAMETROS)){ db.Close(); - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } if (!tbl.Get("parametros", ptrTrama->parametros)) { // Toma parámetros del comando tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } db.Close(); - return (TRUE); // Hay comandos pendientes, se toma el primero de la cola + return true; // Hay comandos pendientes, se toma el primero de la cola } // ________________________________________________________________________________________________________ // Función: DisponibilidadComandos @@ -1235,41 +1197,27 @@ BOOLEAN buscaComandos(char *ido, TRAMA *ptrTrama, int *ids) // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ // -BOOLEAN DisponibilidadComandos(SOCKET *socket_c, TRAMA *ptrTrama) +static bool DisponibilidadComandos(TRAMA *ptrTrama, struct og_client *cli) { char *iph, *tpc; - int idx,port_old=0,port_new; - char modulo[] = "DisponibilidadComandos()"; - - + int idx; iph = copiaParametro("iph",ptrTrama); // Toma ip if (!clienteExistente(iph, &idx)) { // Busca índice del cliente liberaMemoria(iph); - errorLog(modulo, 47, FALSE); - return (FALSE); + syslog(LOG_ERR, "client does not exist\n"); + return false; } tpc = copiaParametro("tpc",ptrTrama); // Tipo de cliente (Plataforma y S.O.) strcpy(tbsockets[idx].estado, tpc); - - port_new=tomaPuerto(*socket_c); - - if(tbsockets[idx].sock!=INVALID_SOCKET){ - port_old=tomaPuerto(tbsockets[idx].sock); - if(port_old!=port_new){ - close(tbsockets[idx].sock); // Cierra el socket si ya existia uno - } - } - - tbsockets[idx].sock = *socket_c; - swcSocket = TRUE; // El socket permanece abierto para recibir comandos desde el servidor + cli->keepalive_idx = idx; liberaMemoria(iph); liberaMemoria(tpc); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: respuestaEstandar @@ -1285,26 +1233,26 @@ BOOLEAN DisponibilidadComandos(SOCKET *socket_c, TRAMA *ptrTrama) // - db: Objeto base de datos (operativo) // - tbl: Objeto tabla // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db, - Table tbl) { +static bool respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db, + Table tbl) +{ char msglog[LONSTD], sqlstr[LONSQL]; char *res, *ids, *der; char fechafin[LONPRM]; struct tm* st; int idaccion; - char modulo[] = "respuestaEstandar()"; ids = copiaParametro("ids",ptrTrama); // Toma identificador de la sesión if (ids == NULL) // No existe seguimiento de la acción - return (TRUE); - + return true; + if (atoi(ids) == 0){ // No existe seguimiento de la acción liberaMemoria(ids); - return (TRUE); + return true; } sprintf(sqlstr, @@ -1313,20 +1261,20 @@ BOOLEAN respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db, liberaMemoria(ids); - if (!db.Execute(sqlstr, tbl)) { // Error al consultar - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - if (tbl.ISEOF()) { // No existe registro de acciones - errorLog(modulo, 31, FALSE); - return (TRUE); + if (tbl.ISEOF()) { + syslog(LOG_ERR, "no actions available\n"); + return true; } if (!tbl.Get("idaccion", idaccion)) { // Toma identificador de la accion tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } st = tomaHora(); sprintf(fechafin, "%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1, @@ -1345,19 +1293,19 @@ BOOLEAN respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db, liberaMemoria(res); liberaMemoria(der); db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } liberaMemoria(der); if (atoi(res) == ACCION_FALLIDA) { liberaMemoria(res); - return (FALSE); // Error en la ejecución del comando + return false; // Error en la ejecución del comando } liberaMemoria(res); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: enviaComando @@ -1368,21 +1316,20 @@ BOOLEAN respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db, // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // - estado: Estado en el se deja al cliente mientras se ejecuta el comando // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN enviaComando(TRAMA* ptrTrama, const char *estado) - { +bool enviaComando(TRAMA* ptrTrama, const char *estado) +{ char *iph, *Ipes, *ptrIpes[MAXIMOS_CLIENTES]; int i, idx, lon; - char modulo[] = "enviaComando()"; iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP lon = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S Ipes = (char*) reservaMemoria(lon + 1); if (Ipes == NULL) { - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } strcpy(Ipes, iph); // Copia cadena de IPES @@ -1392,16 +1339,19 @@ BOOLEAN enviaComando(TRAMA* ptrTrama, const char *estado) FINCADaINTRO(ptrTrama); for (i = 0; i < lon; i++) { if (clienteDisponible(ptrIpes[i], &idx)) { // Si el cliente puede recibir comandos + int sock = tbsockets[idx].cli ? tbsockets[idx].cli->io.fd : -1; + strcpy(tbsockets[idx].estado, estado); // Actualiza el estado del cliente - if (!mandaTrama(&tbsockets[idx].sock, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&sock, ptrTrama)) { + syslog(LOG_ERR, "failed to send response to %s:%s\n", + ptrIpes[i], strerror(errno)); + return false; } //close(tbsockets[idx].sock); // Cierra el socket del cliente hasta nueva disponibilidad } } liberaMemoria(Ipes); - return (TRUE); + return true; } //______________________________________________________________________________________________________ // Función: respuestaConsola @@ -1412,18 +1362,19 @@ BOOLEAN enviaComando(TRAMA* ptrTrama, const char *estado) // - socket_c: (Salida) Socket utilizado para el envío // - res: Resultado del envío del comando // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN respuestaConsola(SOCKET *socket_c, TRAMA *ptrTrama, int res) { - char modulo[] = "respuestaConsola()"; +bool respuestaConsola(int socket_c, TRAMA *ptrTrama, int res) +{ initParametros(ptrTrama,0); sprintf(ptrTrama->parametros, "res=%d\r", res); - if (!mandaTrama(socket_c, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&socket_c, ptrTrama)) { + syslog(LOG_ERR, "%s:%d failed to send response: %s\n", + __func__, __LINE__, strerror(errno)); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: Arrancar @@ -1434,13 +1385,13 @@ BOOLEAN respuestaConsola(SOCKET *socket_c, TRAMA *ptrTrama, int res) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { - char *iph,*mac,*mar, msglog[LONSTD]; - BOOLEAN res; - char modulo[] = "Arrancar()"; +static bool Arrancar(TRAMA* ptrTrama, struct og_client *cli) +{ + char *iph,*mac,*mar; + bool res; iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP mac = copiaParametro("mac",ptrTrama); // Toma dirección/es MAC @@ -1453,20 +1404,16 @@ BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(mar); if(!res){ - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: Levanta @@ -1478,50 +1425,116 @@ BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { // - mac: Cadena de direcciones mac separadas por ";" // - mar: Método de arranque (1=Broadcast, 2=Unicast) // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Levanta(char* iph,char *mac, char* mar) +bool Levanta(char *iph, char *mac, char *mar) { char *ptrIP[MAXIMOS_CLIENTES],*ptrMacs[MAXIMOS_CLIENTES]; - int i, lon, res; - SOCKET s; - BOOLEAN bOpt; + unsigned int on = 1; sockaddr_in local; - char modulo[] = "Levanta()"; + int i, lon, res; + int s; /* Creación de socket para envío de magig packet */ s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if (s == SOCKET_ERROR) { // Error al crear el socket del servicio - errorLog(modulo, 13, TRUE); - return (FALSE); + if (s < 0) { + syslog(LOG_ERR, "cannot create socket for magic packet\n"); + return false; } - bOpt = TRUE; // Pone el socket en modo Broadcast - res = setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char *) &bOpt, sizeof(bOpt)); - if (res == SOCKET_ERROR) { - errorLog(modulo, 48, TRUE); - return (FALSE); + res = setsockopt(s, SOL_SOCKET, SO_BROADCAST, (unsigned int *) &on, + sizeof(on)); + if (res < 0) { + syslog(LOG_ERR, "cannot set broadcast socket\n"); + return false; } + memset(&local, 0, sizeof(local)); local.sin_family = AF_INET; - local.sin_port = htons((short) PUERTO_WAKEUP); - local.sin_addr.s_addr = htonl(INADDR_ANY); // cualquier interface - if (bind(s, (sockaddr *) &local, sizeof(local)) == SOCKET_ERROR) { - errorLog(modulo, 14, TRUE); - exit(EXIT_FAILURE); - } - /* fin creación de socket */ + local.sin_port = htons(PUERTO_WAKEUP); + local.sin_addr.s_addr = htonl(INADDR_ANY); + lon = splitCadena(ptrIP, iph, ';'); lon = splitCadena(ptrMacs, mac, ';'); for (i = 0; i < lon; i++) { - if (!WakeUp(&s,ptrIP[i],ptrMacs[i],mar)) { - errorLog(modulo, 49, TRUE); + if (!WakeUp(s, ptrIP[i], ptrMacs[i], mar)) { + syslog(LOG_ERR, "problem sending magic packet\n"); close(s); - return (FALSE); + return false; } } close(s); - return (TRUE); + return true; } + +#define OG_WOL_SEQUENCE 6 +#define OG_WOL_MACADDR_LEN 6 +#define OG_WOL_REPEAT 16 + +struct wol_msg { + char secuencia_FF[OG_WOL_SEQUENCE]; + char macbin[OG_WOL_REPEAT][OG_WOL_MACADDR_LEN]; +}; + +static bool wake_up_broadcast(int sd, struct sockaddr_in *client, + const struct wol_msg *msg) +{ + struct sockaddr_in *broadcast_addr; + struct ifaddrs *ifaddr, *ifa; + int ret; + + if (getifaddrs(&ifaddr) < 0) { + syslog(LOG_ERR, "cannot get list of addresses\n"); + return false; + } + + client->sin_addr.s_addr = htonl(INADDR_BROADCAST); + + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr == NULL || + ifa->ifa_addr->sa_family != AF_INET || + strcmp(ifa->ifa_name, interface) != 0) + continue; + + broadcast_addr = + (struct sockaddr_in *)ifa->ifa_ifu.ifu_broadaddr; + client->sin_addr.s_addr = broadcast_addr->sin_addr.s_addr; + break; + } + free(ifaddr); + + ret = sendto(sd, msg, sizeof(*msg), 0, + (sockaddr *)client, sizeof(*client)); + if (ret < 0) { + syslog(LOG_ERR, "failed to send broadcast wol\n"); + return false; + } + + return true; +} + +static bool wake_up_unicast(int sd, struct sockaddr_in *client, + const struct wol_msg *msg, + const struct in_addr *addr) +{ + int ret; + + client->sin_addr.s_addr = addr->s_addr; + + ret = sendto(sd, msg, sizeof(*msg), 0, + (sockaddr *)client, sizeof(*client)); + if (ret < 0) { + syslog(LOG_ERR, "failed to send unicast wol\n"); + return false; + } + + return true; +} + +enum wol_delivery_type { + OG_WOL_BROADCAST = 1, + OG_WOL_UNICAST = 2 +}; + //_____________________________________________________________________________________________________________ // Función: WakeUp // @@ -1533,25 +1546,29 @@ BOOLEAN Levanta(char* iph,char *mac, char* mar) // - mac : Cadena con la dirección mac en formato XXXXXXXXXXXX // - mar: Método de arranque (1=Broadcast, 2=Unicast) // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error //_____________________________________________________________________________________________________________ // -BOOLEAN WakeUp(SOCKET *s, char* iph,char *mac,char* mar) +bool WakeUp(int s, char* iph, char *mac, char *mar) { - int i, res; - char HDaddress_bin[6]; - struct { - BYTE secuencia_FF[6]; - char macbin[16][6]; - } Trama_WakeUp; - sockaddr_in WakeUpCliente; - char modulo[] = "WakeUp()"; + char HDaddress_bin[OG_WOL_MACADDR_LEN]; + struct sockaddr_in WakeUpCliente; + struct wol_msg Trama_WakeUp; + struct in_addr addr; + bool ret; + int i; for (i = 0; i < 6; i++) // Primera secuencia de la trama Wake Up (0xFFFFFFFFFFFF) Trama_WakeUp.secuencia_FF[i] = 0xFF; - PasaHexBin(mac, HDaddress_bin); // Pasa a binario la MAC + sscanf(mac, "%02x%02x%02x%02x%02x%02x", + (unsigned int *)&HDaddress_bin[0], + (unsigned int *)&HDaddress_bin[1], + (unsigned int *)&HDaddress_bin[2], + (unsigned int *)&HDaddress_bin[3], + (unsigned int *)&HDaddress_bin[4], + (unsigned int *)&HDaddress_bin[5]); for (i = 0; i < 16; i++) // Segunda secuencia de la trama Wake Up , repetir 16 veces su la MAC memcpy(&Trama_WakeUp.macbin[i][0], &HDaddress_bin, 6); @@ -1559,52 +1576,25 @@ BOOLEAN WakeUp(SOCKET *s, char* iph,char *mac,char* mar) /* Creación de socket del cliente que recibe la trama magic packet */ WakeUpCliente.sin_family = AF_INET; WakeUpCliente.sin_port = htons((short) PUERTO_WAKEUP); - if(atoi(mar)==2) - WakeUpCliente.sin_addr.s_addr = inet_addr(iph); // Para hacerlo con IP - else - WakeUpCliente.sin_addr.s_addr = htonl(INADDR_BROADCAST); // Para hacerlo con broadcast - res = sendto(*s, (char *) &Trama_WakeUp, sizeof(Trama_WakeUp), 0, - (sockaddr *) &WakeUpCliente, sizeof(WakeUpCliente)); - if (res == SOCKET_ERROR) { - errorLog(modulo, 26, FALSE); - return (FALSE); - } - return (TRUE); -} -//_____________________________________________________________________________________________________________ -// Función: PasaHexBin -// -// Descripción: -// Convierte a binario una dirección mac desde una cadena con formato XXXXXXXXXXXX -// -// Parámetros de entrada: -// - cadena : Cadena con el contenido de la mac -// - numero : la dirección mac convertida a binario (6 bytes) -//_____________________________________________________________________________________________________________ -void PasaHexBin(char *cadena, char *numero) { - int i, j, p; - char matrizHex[] = "0123456789ABCDEF"; - char Ucadena[12], aux; - - for (i = 0; i < 12; i++) - Ucadena[i] = toupper(cadena[i]); - p = 0; - for (i = 0; i < 12; i++) { - for (j = 0; j < 16; j++) { - if (Ucadena[i] == matrizHex[j]) { - if (i % 2) { - aux = numero[p]; - aux = (aux << 4); - numero[p] = j; - numero[p] = numero[p] | aux; - p++; - } else - numero[p] = j; - break; - } + switch (atoi(mar)) { + case OG_WOL_BROADCAST: + ret = wake_up_broadcast(s, &WakeUpCliente, &Trama_WakeUp); + break; + case OG_WOL_UNICAST: + if (inet_aton(iph, &addr) < 0) { + syslog(LOG_ERR, "bad IP address for unicast wol\n"); + ret = false; + break; } + ret = wake_up_unicast(s, &WakeUpCliente, &Trama_WakeUp, &addr); + break; + default: + syslog(LOG_ERR, "unknown wol type\n"); + ret = false; + break; } + return ret; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_Arrancar @@ -1615,23 +1605,23 @@ void PasaHexBin(char *cadena, char *numero) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_Arrancar(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; int i; char *iph, *ido; char *tpc; - char modulo[] = "RESPUESTA_Arrancar()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -1640,8 +1630,8 @@ BOOLEAN RESPUESTA_Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + syslog(LOG_ERR, "failed to register notification\n"); + return false; } tpc = copiaParametro("tpc",ptrTrama); // Tipo de cliente (Plataforma y S.O.) @@ -1653,73 +1643,7 @@ BOOLEAN RESPUESTA_Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(tpc); db.Close(); // Cierra conexión - return (TRUE); -} -// ________________________________________________________________________________________________________ -// Función: Comando -// -// Descripción: -// Procesa un comando personalizado -// Parámetros: -// - socket_c: Socket de la consola al envió el mensaje -// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -// ________________________________________________________________________________________________________ -BOOLEAN Comando(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Comando()"; - - if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); - } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); -} -// ________________________________________________________________________________________________________ -// Función: RESPUESTA_Comando -// -// Descripción: -// Respuesta del cliente al un comando personalizado -// Parámetros: -// - socket_c: Socket del cliente que envió el mensaje -// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -// ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_Comando(SOCKET *socket_c, TRAMA* ptrTrama) - { - char msglog[LONSTD]; - Database db; - Table tbl; - char *iph, *ido; - char modulo[] = "RESPUESTA_Comando()"; - - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); - db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); - } - - iph = copiaParametro("iph",ptrTrama); // Toma dirección ip - ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador - - if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { - liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion - } - liberaMemoria(iph); - liberaMemoria(ido); - db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: Apagar @@ -1730,21 +1654,17 @@ BOOLEAN RESPUESTA_Comando(SOCKET *socket_c, TRAMA* ptrTrama) // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Apagar()"; - +static bool Apagar(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_Apagar @@ -1755,22 +1675,22 @@ BOOLEAN Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_Apagar(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; int i; char *iph, *ido; - char modulo[] = "RESPUESTA_Apagar()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -1779,8 +1699,8 @@ BOOLEAN RESPUESTA_Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + syslog(LOG_ERR, "failed to register notification\n"); + return false; // Error al registrar notificacion } if (clienteExistente(iph, &i)) // Actualiza estado @@ -1790,7 +1710,7 @@ BOOLEAN RESPUESTA_Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(ido); db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: Reiniciar @@ -1801,21 +1721,17 @@ BOOLEAN RESPUESTA_Apagar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Reiniciar()"; - +static bool Reiniciar(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_Reiniciar @@ -1826,22 +1742,22 @@ BOOLEAN Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_Reiniciar(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; int i; char *iph, *ido; - char modulo[] = "RESPUESTA_Reiniciar()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -1850,8 +1766,8 @@ BOOLEAN RESPUESTA_Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + syslog(LOG_ERR, "failed to register notification\n"); + return false; // Error al registrar notificacion } if (clienteExistente(iph, &i)) // Actualiza estado @@ -1861,7 +1777,7 @@ BOOLEAN RESPUESTA_Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(ido); db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: IniciarSesion @@ -1872,21 +1788,17 @@ BOOLEAN RESPUESTA_Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "IniciarSesion()"; - +static bool IniciarSesion(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_IniciarSesion @@ -1897,22 +1809,22 @@ BOOLEAN IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_IniciarSesion(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; int i; char *iph, *ido; - char modulo[] = "RESPUESTA_IniciarSesion()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -1921,8 +1833,8 @@ BOOLEAN RESPUESTA_IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + syslog(LOG_ERR, "failed to register notification\n"); + return false; // Error al registrar notificacion } if (clienteExistente(iph, &i)) // Actualiza estado @@ -1932,7 +1844,7 @@ BOOLEAN RESPUESTA_IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(ido); db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: CrearImagen @@ -1943,21 +1855,17 @@ BOOLEAN RESPUESTA_IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "CrearImagen()"; - +static bool CrearImagen(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_CrearImagen @@ -1968,24 +1876,23 @@ BOOLEAN CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) +static bool RESPUESTA_CrearImagen(TRAMA* ptrTrama, struct og_client *cli) { char msglog[LONSTD]; Database db; Table tbl; char *iph, *dsk, *par, *cpt, *ipr, *ido; char *idi; - BOOLEAN res; - char modulo[] = "RESPUESTA_CrearImagen()"; + bool res; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -1994,8 +1901,8 @@ BOOLEAN RESPUESTA_CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + syslog(LOG_ERR, "failed to register notification\n"); + return false; // Error al registrar notificacion } // Acciones posteriores @@ -2011,15 +1918,15 @@ BOOLEAN RESPUESTA_CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) liberaMemoria(par); liberaMemoria(cpt); liberaMemoria(ipr); - + if(!res){ - errorLog(modulo, 94, FALSE); - db.Close(); // Cierra conexión - return (FALSE); + syslog(LOG_ERR, "Problem processing update\n"); + db.Close(); + return false; } db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: actualizaCreacionImagen @@ -2036,13 +1943,13 @@ BOOLEAN RESPUESTA_CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) // - ipr: Ip del repositorio // - ido: Identificador del ordenador modelo // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, - char* par, char* cpt, char* ipr, char *ido) { +bool actualizaCreacionImagen(Database db, Table tbl, char *idi, char *dsk, + char *par, char *cpt, char *ipr, char *ido) +{ char msglog[LONSTD], sqlstr[LONSQL]; - char modulo[] = "actualizaCreacionImagen()"; int idr,ifs; /* Toma identificador del repositorio correspondiente al ordenador modelo */ @@ -2052,16 +1959,16 @@ BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, " LEFT JOIN ordenadores USING (idrepositorio)" " WHERE repositorios.ip='%s' AND ordenadores.idordenador=%s", ipr, ido); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (!tbl.Get("idrepositorio", idr)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } /* Toma identificador del perfilsoftware */ @@ -2070,16 +1977,16 @@ BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, " FROM ordenadores_particiones" " WHERE idordenador=%s AND numdisk=%s AND numpar=%s", ido, dsk, par); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (!tbl.Get("idperfilsoft", ifs)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } /* Actualizar los datos de la imagen */ @@ -2090,11 +1997,11 @@ BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, " fechacreacion=NOW(), revision=revision+1" " WHERE idimagen=%s", ido, dsk, par, cpt, ifs, idr, idi); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } /* Actualizar los datos en el cliente */ snprintf(sqlstr, LONSQL, @@ -2103,13 +2010,13 @@ BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, " fechadespliegue=NOW()" " WHERE idordenador=%s AND numdisk=%s AND numpar=%s", idi, idi, ido, dsk, par); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: CrearImagenBasica @@ -2120,21 +2027,17 @@ BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* dsk, // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN CrearImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "CrearImagenBasica()"; - +static bool CrearImagenBasica(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_CrearImagenBasica @@ -2145,11 +2048,13 @@ BOOLEAN CrearImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_CrearImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { - return(RESPUESTA_CrearImagen(socket_c,ptrTrama)); // La misma respuesta que la creación de imagen monolítica +static bool RESPUESTA_CrearImagenBasica(TRAMA* ptrTrama, struct og_client *cli) +{ + // La misma respuesta que la creación de imagen monolítica + return RESPUESTA_CrearImagen(ptrTrama, cli); } // ________________________________________________________________________________________________________ // Función: CrearSoftIncremental @@ -2161,21 +2066,17 @@ BOOLEAN RESPUESTA_CrearImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN CrearSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "CrearSoftIncremental()"; - +static bool CrearSoftIncremental(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_CrearSoftIncremental @@ -2186,23 +2087,22 @@ BOOLEAN CrearSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_CrearSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) +static bool RESPUESTA_CrearSoftIncremental(TRAMA* ptrTrama, struct og_client *cli) { Database db; Table tbl; char *iph,*par,*ido,*idf; int ifs; char msglog[LONSTD],sqlstr[LONSQL]; - char modulo[] = "RESPUESTA_CrearSoftIncremental()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -2210,9 +2110,9 @@ BOOLEAN RESPUESTA_CrearSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } par = copiaParametro("par",ptrTrama); @@ -2223,75 +2123,32 @@ BOOLEAN RESPUESTA_CrearSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) liberaMemoria(iph); liberaMemoria(ido); liberaMemoria(par); - - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (!tbl.Get("idperfilsoft", ifs)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } /* Actualizar los datos de la imagen */ idf = copiaParametro("idf",ptrTrama); sprintf(sqlstr,"UPDATE imagenes SET idperfilsoft=%d WHERE idimagen=%s",ifs,idf); liberaMemoria(idf); - - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); - db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); - } - db.Close(); // Cierra conexión - return (TRUE); -} -// ________________________________________________________________________________________________________ -// Función: actualizaCreacionSoftIncremental -// -// Descripción: -// Esta función actualiza la base de datos con el resultado de la creación de software incremental -// Parámetros: -// - db: Objeto base de datos (ya operativo) -// - tbl: Objeto tabla -// - idi: Identificador de la imagen -// - idf: Identificador del software incremental -// Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error -// ________________________________________________________________________________________________________ -BOOLEAN actualizaCreacionSoftIncremental(Database db, Table tbl, char* idi,char* idf) -{ - char msglog[LONSTD], sqlstr[LONSQL]; - char modulo[] = "actualizaCreacionSoftIncremental()"; - - - /* Comprueba si existe ya relación entre la imagen y el software incremental */ - sprintf(sqlstr, "SELECT * FROM imagenes_softincremental" - " WHERE idimagen=%s AND idsoftincremental=%s", idi,idf); - - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); - db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); - } - if (!tbl.ISEOF()) - return (TRUE); // Ya existe relación - // Crea relación entre la imagen y el software incremental - sprintf(sqlstr,"INSERT INTO imagenes_softincremental (idimagen,idsoftincremental) VALUES (%s,%s)",idi,idf); - if (!db.Execute(sqlstr, tbl)) { // Error al ejecutar la sentencia - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - return (TRUE); + db.Close(); // Cierra conexión + return true; } // ________________________________________________________________________________________________________ // Función: RestaurarImagen @@ -2302,21 +2159,17 @@ BOOLEAN actualizaCreacionSoftIncremental(Database db, Table tbl, char* idi,char* // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "RestaurarImagen()"; - +static bool RestaurarImagen(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RestaurarImagenBasica @@ -2327,21 +2180,17 @@ BOOLEAN RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RestaurarImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "RestaurarImagenBasica()"; - +static bool RestaurarImagenBasica(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RestaurarSoftIncremental @@ -2352,21 +2201,17 @@ BOOLEAN RestaurarImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RestaurarSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "RestaurarSoftIncremental()"; - +static bool RestaurarSoftIncremental(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_RestaurarImagen @@ -2377,24 +2222,23 @@ BOOLEAN RestaurarSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ // -BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) +static bool RESPUESTA_RestaurarImagen(TRAMA* ptrTrama, struct og_client *cli) { char msglog[LONSTD]; Database db; Table tbl; - BOOLEAN res; + bool res; char *iph, *ido, *idi, *dsk, *par, *ifs, *cfg; - char modulo[] = "RESPUESTA_RestaurarImagen()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -2402,9 +2246,9 @@ BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } // Acciones posteriores @@ -2426,13 +2270,13 @@ BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) liberaMemoria(ifs); if(!res){ - errorLog(modulo, 95, FALSE); - db.Close(); // Cierra conexión - return (FALSE); + syslog(LOG_ERR, "Problem after restoring image\n"); + db.Close(); + return false; } db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // @@ -2444,12 +2288,13 @@ BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ // -BOOLEAN RESPUESTA_RestaurarImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { - return(RESPUESTA_RestaurarImagen(socket_c,ptrTrama)); +static bool RESPUESTA_RestaurarImagenBasica(TRAMA* ptrTrama, struct og_client *cli) +{ + return RESPUESTA_RestaurarImagen(ptrTrama, cli); } // ________________________________________________________________________________________________________ // Función: RESPUESTA_RestaurarSoftIncremental @@ -2460,11 +2305,12 @@ BOOLEAN RESPUESTA_RestaurarImagenBasica(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_RestaurarSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { - return(RESPUESTA_RestaurarImagen(socket_c,ptrTrama)); +static bool RESPUESTA_RestaurarSoftIncremental(TRAMA* ptrTrama, struct og_client *cli) +{ + return RESPUESTA_RestaurarImagen(ptrTrama, cli); } // ________________________________________________________________________________________________________ // Función: actualizaRestauracionImagen @@ -2480,13 +2326,13 @@ BOOLEAN RESPUESTA_RestaurarSoftIncremental(SOCKET *socket_c, TRAMA* ptrTrama) { // - ido: Identificador del cliente donde se restauró // - ifs: Identificador del perfil software contenido en la imagen // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN actualizaRestauracionImagen(Database db, Table tbl, char* idi, - char* dsk, char* par, char* ido, char* ifs) { +bool actualizaRestauracionImagen(Database db, Table tbl, char *idi, + char *dsk, char *par, char *ido, char *ifs) +{ char msglog[LONSTD], sqlstr[LONSQL]; - char modulo[] = "actualizaRestauracionImagen()"; /* Actualizar los datos de la imagen */ snprintf(sqlstr, LONSQL, @@ -2496,13 +2342,13 @@ BOOLEAN actualizaRestauracionImagen(Database db, Table tbl, char* idi, " idnombreso=IFNULL((SELECT idnombreso FROM perfilessoft WHERE idperfilsoft=%s),0)" " WHERE idordenador=%s AND numdisk=%s AND numpar=%s", idi, ifs, idi, ifs, ido, dsk, par); - if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: Configurar @@ -2513,21 +2359,17 @@ BOOLEAN actualizaRestauracionImagen(Database db, Table tbl, char* idi, // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN Configurar(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "Configurar()"; - +static bool Configurar(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_Configurar @@ -2538,24 +2380,23 @@ BOOLEAN Configurar(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ // -BOOLEAN RESPUESTA_Configurar(SOCKET *socket_c, TRAMA* ptrTrama) +static bool RESPUESTA_Configurar(TRAMA* ptrTrama, struct og_client *ci) { char msglog[LONSTD]; Database db; Table tbl; - BOOLEAN res; + bool res; char *iph, *ido,*cfg; - char modulo[] = "RESPUESTA_Configurar()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -2563,9 +2404,9 @@ BOOLEAN RESPUESTA_Configurar(SOCKET *socket_c, TRAMA* ptrTrama) if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } cfg = copiaParametro("cfg",ptrTrama); // Toma configuración de particiones @@ -2574,14 +2415,14 @@ BOOLEAN RESPUESTA_Configurar(SOCKET *socket_c, TRAMA* ptrTrama) liberaMemoria(iph); liberaMemoria(ido); liberaMemoria(cfg); - - if(!res){ - errorLog(modulo, 24, FALSE); - return (FALSE); // Error al registrar notificacion + + if(!res){ + syslog(LOG_ERR, "Problem updating client configuration\n"); + return false; } - + db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: EjecutarScript @@ -2592,21 +2433,17 @@ BOOLEAN RESPUESTA_Configurar(SOCKET *socket_c, TRAMA* ptrTrama) // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "EjecutarScript()"; - +static bool EjecutarScript(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_EjecutarScript @@ -2617,23 +2454,21 @@ BOOLEAN EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) +static bool RESPUESTA_EjecutarScript(TRAMA* ptrTrama, struct og_client *cli) { char msglog[LONSTD]; Database db; Table tbl; char *iph, *ido,*cfg; - char modulo[] = "RESPUESTA_EjecutarScript()"; - - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -2641,9 +2476,9 @@ BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } cfg = copiaParametro("cfg",ptrTrama); // Toma configuración de particiones @@ -2657,7 +2492,7 @@ BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: InventarioHardware @@ -2668,21 +2503,17 @@ BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "InventarioHardware()"; - +static bool InventarioHardware(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_InventarioHardware @@ -2693,22 +2524,22 @@ BOOLEAN InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_InventarioHardware(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; - BOOLEAN res; + bool res; char *iph, *ido, *idc, *npc, *hrd, *buffer; - char modulo[] = "RESPUESTA_InventarioHardware()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente @@ -2716,9 +2547,9 @@ BOOLEAN RESPUESTA_InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } // Lee archivo de inventario enviado anteriormente hrd = copiaParametro("hrd",ptrTrama); @@ -2737,12 +2568,12 @@ BOOLEAN RESPUESTA_InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(buffer); if(!res){ - errorLog(modulo, 53, FALSE); - return (FALSE); + syslog(LOG_ERR, "Problem updating client configuration\n"); + return false; } db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: actualizaHardware @@ -2758,7 +2589,8 @@ BOOLEAN RESPUESTA_InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) { // - idc: Identificador del centro o Unidad organizativa // ________________________________________________________________________________________________________ // -BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, char *idc) +bool actualizaHardware(Database db, Table tbl, char *hrd, char *ido, char *npc, + char *idc) { char msglog[LONSTD], sqlstr[LONSQL]; int idtipohardware, idperfilhard; @@ -2767,25 +2599,24 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, char *whard; int tbidhardware[MAXHARDWARE]; char *tbHardware[MAXHARDWARE],*dualHardware[2], descripcion[250], strInt[LONINT], *idhardwares; - char modulo[] = "actualizaHardware()"; /* Toma Centro (Unidad Organizativa) */ sprintf(sqlstr, "SELECT * FROM ordenadores WHERE idordenador=%s", ido); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (!tbl.Get("idperfilhard", idperfilhard)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } whard=escaparCadena(hrd); // Codificar comillas simples if(!whard) - return (FALSE); + return false; /* Recorre componentes hardware*/ lon = splitCadena(tbHardware, whard, '\n'); if (lon > MAXHARDWARE) @@ -2793,49 +2624,48 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, /* for (i=0;i<lon;i++){ sprintf(msglog,"Linea de inventario: %s",tbHardware[i]); - RegistraLog(msglog,FALSE); + RegistraLog(msglog,false); } */ for (i = 0; i < lon; i++) { splitCadena(dualHardware, rTrim(tbHardware[i]), '='); //sprintf(msglog,"nemonico: %s",dualHardware[0]); - //RegistraLog(msglog,FALSE); + //RegistraLog(msglog,false); //sprintf(msglog,"valor: %s",dualHardware[1]); - //RegistraLog(msglog,FALSE); + //RegistraLog(msglog,false); sprintf(sqlstr, "SELECT idtipohardware,descripcion FROM tipohardwares " " WHERE nemonico='%s'", dualHardware[0]); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (tbl.ISEOF()) { // Tipo de Hardware NO existente sprintf(msglog, "%s: %s)", tbErrores[54], dualHardware[0]); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } else { // Tipo de Hardware Existe if (!tbl.Get("idtipohardware", idtipohardware)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.Get("descripcion", descripcion)) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } sprintf(sqlstr, "SELECT idhardware FROM hardwares " " WHERE idtipohardware=%d AND descripcion='%s'", idtipohardware, dualHardware[1]); - // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (tbl.ISEOF()) { // Hardware NO existente @@ -2844,29 +2674,29 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, dualHardware[1], idc); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } // Recupera el identificador del hardware sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador"); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (!tbl.ISEOF()) { // Si existe registro if (!tbl.Get("identificador", tbidhardware[i])) { tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } } else { if (!tbl.Get("idhardware", tbidhardware[i])) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } } @@ -2887,8 +2717,8 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, aux = strlen(strInt); // Calcula longitud de cadena para reservar espacio a todos los perfiles idhardwares = reservaMemoria(sizeof(aux) * lon + lon); if (idhardwares == NULL) { - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } aux = sprintf(idhardwares, "%d", tbidhardware[0]); for (i = 1; i < lon; i++) @@ -2896,12 +2726,11 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, if (!cuestionPerfilHardware(db, tbl, idc, ido, idperfilhard, idhardwares, npc, tbidhardware, lon)) { - errorLog(modulo, 55, FALSE); - errorInfo(modulo, msglog); - retval=FALSE; + syslog(LOG_ERR, "Problem updating client hardware\n"); + retval=false; } else { - retval=TRUE; + retval=true; } liberaMemoria(whard); liberaMemoria(idhardwares); @@ -2921,19 +2750,18 @@ BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,char* npc, // - con: Número de componentes detectados para configurar un el perfil hardware // - npc: Nombre del cliente // ________________________________________________________________________________________________________ -BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, - int idperfilhardware, char*idhardwares, char *npc, int *tbidhardware, +bool cuestionPerfilHardware(Database db, Table tbl, char *idc, char *ido, + int idperfilhardware, char *idhardwares, char *npc, int *tbidhardware, int lon) { char msglog[LONSTD], *sqlstr; int i; int nwidperfilhard; - char modulo[] = "cuestionPerfilHardware()"; sqlstr = reservaMemoria(strlen(idhardwares)+LONSQL); // Reserva para escribir sentencia SQL if (sqlstr == NULL) { - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } // Busca perfil hard del ordenador que contenga todos los componentes hardware encontrados sprintf(sqlstr, "SELECT idperfilhard FROM" @@ -2943,37 +2771,37 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, " FROM perfileshard_hardwares" " GROUP BY perfileshard_hardwares.idperfilhard) AS temp" " WHERE idhardwares LIKE '%s'", idhardwares); - // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); liberaMemoria(sqlstr); - return (false); + return false; } if (tbl.ISEOF()) { // No existe un perfil hardware con esos componentes de componentes hardware, lo crea sprintf(sqlstr, "INSERT perfileshard (descripcion,idcentro,grupoid)" " VALUES('Perfil hardware (%s) ',%s,0)", npc, idc); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } // Recupera el identificador del nuevo perfil hardware sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador"); if (!db.Execute(sqlstr, tbl)) { // Error al leer db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } if (!tbl.ISEOF()) { // Si existe registro if (!tbl.Get("identificador", nwidperfilhard)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } // Crea la relación entre perfiles y componenetes hardware @@ -2982,17 +2810,17 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, " VALUES(%d,%d)", nwidperfilhard, tbidhardware[i]); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } } else { // Existe un perfil con todos esos componentes if (!tbl.Get("idperfilhard", nwidperfilhard)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } if (idperfilhardware != nwidperfilhard) { // No coinciden los perfiles @@ -3001,9 +2829,9 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, " WHERE idordenador=%s", nwidperfilhard, ido); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } /* Eliminar Relación de hardwares con Perfiles hardware que quedan húerfanos */ @@ -3012,9 +2840,9 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, " (SELECT DISTINCT idperfilhard from ordenadores))"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } /* Eliminar Perfiles hardware que quedan húerfanos */ @@ -3022,21 +2850,21 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, " (SELECT DISTINCT idperfilhard FROM ordenadores)"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } /* Eliminar Relación de hardwares con Perfiles hardware que quedan húerfanos */ sprintf(sqlstr, "DELETE FROM perfileshard_hardwares WHERE idperfilhard NOT IN" " (SELECT idperfilhard FROM perfileshard)"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } liberaMemoria(sqlstr); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: InventarioSoftware @@ -3047,21 +2875,17 @@ BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido, // - socket_c: Socket de la consola al envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { - char msglog[LONSTD]; - char modulo[] = "InventarioSoftware()"; - +static bool InventarioSoftware(TRAMA* ptrTrama, struct og_client *cli) +{ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - respuestaConsola(socket_c, ptrTrama, FALSE); - return (FALSE); + respuestaConsola(og_client_socket(cli), ptrTrama, false); + return false; } - respuestaConsola(socket_c, ptrTrama, TRUE); - return (TRUE); + respuestaConsola(og_client_socket(cli), ptrTrama, true); + return true; } // ________________________________________________________________________________________________________ // Función: RESPUESTA_InventarioSoftware @@ -3072,22 +2896,22 @@ BOOLEAN InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN RESPUESTA_InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { +static bool RESPUESTA_InventarioSoftware(TRAMA* ptrTrama, struct og_client *cli) +{ char msglog[LONSTD]; Database db; Table tbl; - BOOLEAN res; + bool res; char *iph, *ido, *npc, *idc, *par, *sft, *buffer; - char modulo[] = "RESPUESTA_InventarioSoftware()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } iph = copiaParametro("iph",ptrTrama); // Toma dirección ip @@ -3095,11 +2919,11 @@ BOOLEAN RESPUESTA_InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) { liberaMemoria(iph); - liberaMemoria(ido); - errorLog(modulo, 30, FALSE); - return (FALSE); // Error al registrar notificacion + liberaMemoria(ido); + syslog(LOG_ERR, "failed to register notification\n"); + return false; } - + npc = copiaParametro("npc",ptrTrama); idc = copiaParametro("idc",ptrTrama); // Toma identificador del Centro par = copiaParametro("par",ptrTrama); @@ -3117,12 +2941,12 @@ BOOLEAN RESPUESTA_InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { liberaMemoria(sft); if(!res){ - errorLog(modulo, 82, FALSE); - return (FALSE); - } - + syslog(LOG_ERR, "cannot update software\n"); + return false; + } + db.Close(); // Cierra conexión - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: actualizaSoftware @@ -3138,43 +2962,43 @@ BOOLEAN RESPUESTA_InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) { // - npc: Nombre del ordenador // - idc: Identificador del centro o Unidad organizativa // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // // Versión 1.1.0: Se incluye el sistema operativo. Autora: Irina Gómez - ETSII Universidad Sevilla // ________________________________________________________________________________________________________ -BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido, char* npc, char* idc) +bool actualizaSoftware(Database db, Table tbl, char *sft, char *par,char *ido, + char *npc, char *idc) { int i, j, lon, aux, idperfilsoft, idnombreso; bool retval; char *wsft; int tbidsoftware[MAXSOFTWARE]; char *tbSoftware[MAXSOFTWARE],msglog[LONSTD], sqlstr[LONSQL], strInt[LONINT], *idsoftwares; - char modulo[] = "actualizaSoftware()"; /* Toma Centro (Unidad Organizativa) y perfil software */ sprintf(sqlstr, "SELECT idperfilsoft,numpar" " FROM ordenadores_particiones" " WHERE idordenador=%s", ido); - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } idperfilsoft = 0; // Por defecto se supone que el ordenador no tiene aún detectado el perfil software while (!tbl.ISEOF()) { // Recorre particiones if (!tbl.Get("numpar", aux)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (aux == atoi(par)) { // Se encuentra la partición if (!tbl.Get("idperfilsoft", idperfilsoft)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } break; } @@ -3182,13 +3006,13 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido } wsft=escaparCadena(sft); // Codificar comillas simples if(!wsft) - return (FALSE); + return false; /* Recorre componentes software*/ lon = splitCadena(tbSoftware, wsft, '\n'); if (lon == 0) - return (true); // No hay lineas que procesar + return true; // No hay lineas que procesar if (lon > MAXSOFTWARE) lon = MAXSOFTWARE; // Limita el número de componentes software @@ -3203,12 +3027,11 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido "SELECT idsoftware FROM softwares WHERE descripcion ='%s'", rTrim(tbSoftware[i])); - // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } if (tbl.ISEOF()) { // Software NO existente @@ -3217,28 +3040,28 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } // Recupera el identificador del software sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador"); if (!db.Execute(sqlstr, tbl)) { // Error al leer db.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } if (!tbl.ISEOF()) { // Si existe registro if (!tbl.Get("identificador", tbidsoftware[i])) { tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } } else { if (!tbl.Get("idsoftware", tbidsoftware[i])) { // Toma dato tbl.GetErrorErrStr(msglog); // Error al acceder al registro - errorInfo(modulo, msglog); - return (FALSE); + og_info(msglog); + return false; } } } @@ -3259,8 +3082,8 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido aux = strlen(strInt); // Calcula longitud de cadena para reservar espacio a todos los perfiles idsoftwares = reservaMemoria((sizeof(aux)+1) * lon + lon); if (idsoftwares == NULL) { - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } aux = sprintf(idsoftwares, "%d", tbidsoftware[0]); for (i = 1; i < lon; i++) @@ -3269,12 +3092,12 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido // Comprueba existencia de perfil software y actualización de éste para el ordenador if (!cuestionPerfilSoftware(db, tbl, idc, ido, idperfilsoft, idnombreso, idsoftwares, npc, par, tbidsoftware, lon)) { - errorLog(modulo, 83, FALSE); - errorInfo(modulo, msglog); - retval=FALSE; + syslog(LOG_ERR, "cannot update software\n"); + og_info(msglog); + retval=false; } else { - retval=TRUE; + retval=true; } liberaMemoria(wsft); liberaMemoria(idsoftwares); @@ -3295,22 +3118,23 @@ BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,char* ido // - tbidsoftware: Array con los identificadores de componentes software // - lon: Número de componentes // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // // Versión 1.1.0: Se incluye el sistema operativo. Autora: Irina Gómez - ETSII Universidad Sevilla //_________________________________________________________________________________________________________ -BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, - int idperfilsoftware, int idnombreso, char *idsoftwares, char *npc, char *par, - int *tbidsoftware, int lon) { +bool cuestionPerfilSoftware(Database db, Table tbl, char *idc, char *ido, + int idperfilsoftware, int idnombreso, + char *idsoftwares, char *npc, char *par, + int *tbidsoftware, int lon) +{ char *sqlstr, msglog[LONSTD]; int i, nwidperfilsoft; - char modulo[] = "cuestionPerfilSoftware()"; sqlstr = reservaMemoria(strlen(idsoftwares)+LONSQL); // Reserva para escribir sentencia SQL if (sqlstr == NULL) { - errorLog(modulo, 3, FALSE); - return (FALSE); + syslog(LOG_ERR, "%s:%d OOM\n", __FILE__, __LINE__); + return false; } // Busca perfil soft del ordenador que contenga todos los componentes software encontrados sprintf(sqlstr, "SELECT idperfilsoft FROM" @@ -3320,36 +3144,36 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, " FROM perfilessoft_softwares" " GROUP BY perfilessoft_softwares.idperfilsoft) AS temp" " WHERE idsoftwares LIKE '%s'", idsoftwares); - // Ejecuta consulta - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); liberaMemoria(sqlstr); - return (false); + return false; } if (tbl.ISEOF()) { // No existe un perfil software con esos componentes de componentes software, lo crea sprintf(sqlstr, "INSERT perfilessoft (descripcion, idcentro, grupoid, idnombreso)" " VALUES('Perfil Software (%s, Part:%s) ',%s,0,%i)", npc, par, idc,idnombreso); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (false); + og_info(msglog); + return false; } // Recupera el identificador del nuevo perfil software sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador"); if (!db.Execute(sqlstr, tbl)) { // Error al leer tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } if (!tbl.ISEOF()) { // Si existe registro if (!tbl.Get("identificador", nwidperfilsoft)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } // Crea la relación entre perfiles y componenetes software @@ -3358,17 +3182,17 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, " VALUES(%d,%d)", nwidperfilsoft, tbidsoftware[i]); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } } else { // Existe un perfil con todos esos componentes if (!tbl.Get("idperfilsoft", nwidperfilsoft)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } @@ -3378,9 +3202,9 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, " WHERE idordenador=%s AND numpar=%s", nwidperfilsoft, ido, par); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } } @@ -3393,9 +3217,9 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, " (SELECT DISTINCT idperfilsoft from imagenes))"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } /* Eliminar Perfiles software que quedan húerfanos */ sprintf(sqlstr, "DELETE FROM perfilessoft WHERE idperfilsoft NOT IN" @@ -3404,21 +3228,21 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, " (SELECT DISTINCT idperfilsoft from imagenes)"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } /* Eliminar Relación de softwares con Perfiles software que quedan húerfanos */ sprintf(sqlstr, "DELETE FROM perfilessoft_softwares WHERE idperfilsoft NOT IN" " (SELECT idperfilsoft from perfilessoft)"); if (!db.Execute(sqlstr, tbl)) { // Error al insertar db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); + og_info(msglog); liberaMemoria(sqlstr); - return (false); + return false; } liberaMemoria(sqlstr); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: enviaArchivo @@ -3429,22 +3253,23 @@ BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido, // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN enviaArchivo(SOCKET *socket_c, TRAMA *ptrTrama) { +static bool enviaArchivo(TRAMA *ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); char *nfl; - char modulo[] = "enviaArchivo()"; // Toma parámetros nfl = copiaParametro("nfl",ptrTrama); // Toma nombre completo del archivo - if (!sendArchivo(socket_c, nfl)) { + if (!sendArchivo(&socket_c, nfl)) { liberaMemoria(nfl); - errorLog(modulo, 57, FALSE); - return (FALSE); + syslog(LOG_ERR, "Problem sending file\n"); + return false; } liberaMemoria(nfl); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: enviaArchivo @@ -3455,24 +3280,25 @@ BOOLEAN enviaArchivo(SOCKET *socket_c, TRAMA *ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN recibeArchivo(SOCKET *socket_c, TRAMA *ptrTrama) { +static bool recibeArchivo(TRAMA *ptrTrama, struct og_client *cli) +{ + int socket_c = og_client_socket(cli); char *nfl; - char modulo[] = "recibeArchivo()"; // Toma parámetros nfl = copiaParametro("nfl",ptrTrama); // Toma nombre completo del archivo ptrTrama->tipo = MSG_NOTIFICACION; - enviaFlag(socket_c, ptrTrama); - if (!recArchivo(socket_c, nfl)) { + enviaFlag(&socket_c, ptrTrama); + if (!recArchivo(&socket_c, nfl)) { liberaMemoria(nfl); - errorLog(modulo, 58, FALSE); - return (FALSE); + syslog(LOG_ERR, "Problem receiving file\n"); + return false; } liberaMemoria(nfl); - return (TRUE); + return true; } // ________________________________________________________________________________________________________ // Función: envioProgramacion @@ -3484,23 +3310,22 @@ BOOLEAN recibeArchivo(SOCKET *socket_c, TRAMA *ptrTrama) { // - socket_c: Socket del cliente que envió el mensaje // - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros // Devuelve: -// TRUE: Si el proceso es correcto -// FALSE: En caso de ocurrir algún error +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error // ________________________________________________________________________________________________________ -BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama) +static bool envioProgramacion(TRAMA *ptrTrama, struct og_client *cli) { char sqlstr[LONSQL], msglog[LONSTD]; char *idp,iph[LONIP],mac[LONMAC]; Database db; Table tbl; int idx,idcomando; - char modulo[] = "envioProgramacion()"; - if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion - errorLog(modulo, 20, FALSE); + if (!db.Open(usuario, pasguor, datasource, catalog)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot open connection database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } idp = copiaParametro("idp",ptrTrama); // Toma identificador de la programación de la tabla acciones @@ -3510,16 +3335,16 @@ BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama) " WHERE acciones.idprogramacion=%s",idp); liberaMemoria(idp); - - if (!db.Execute(sqlstr, tbl)) { // Error al leer - errorLog(modulo, 21, FALSE); + + if (!db.Execute(sqlstr, tbl)) { db.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "failed to query database (%s:%d) %s\n", + __func__, __LINE__, msglog); + return false; } db.Close(); if(tbl.ISEOF()) - return (TRUE); // No existen registros + return true; // No existen registros /* Prepara la trama de actualizacion */ @@ -3530,198 +3355,386 @@ BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama) while (!tbl.ISEOF()) { // Recorre particiones if (!tbl.Get("ip", iph)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot find ip column in table: %s\n", + msglog); + return false; } if (!tbl.Get("idcomando", idcomando)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot find idcomando column in table: %s\n", + msglog); + return false; } if(idcomando==1){ // Arrancar if (!tbl.Get("mac", mac)) { tbl.GetErrorErrStr(msglog); - errorInfo(modulo, msglog); - return (FALSE); + syslog(LOG_ERR, "cannot find mac column in table: %s\n", + msglog); + return false; } // Se manda por broadcast y por unicast - if (!Levanta(iph, mac, (char*)"1")) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - return (FALSE); - } + if (!Levanta(iph, mac, (char*)"1")) + return false; - if (!Levanta(iph, mac, (char*)"2")) { - sprintf(msglog, "%s:%s", tbErrores[32], modulo); - errorInfo(modulo, msglog); - return (FALSE); - } + if (!Levanta(iph, mac, (char*)"2")) + return false; } if (clienteDisponible(iph, &idx)) { // Si el cliente puede recibir comandos + int sock = tbsockets[idx].cli ? tbsockets[idx].cli->io.fd : -1; + strcpy(tbsockets[idx].estado, CLIENTE_OCUPADO); // Actualiza el estado del cliente - if (!mandaTrama(&tbsockets[idx].sock, ptrTrama)) { - errorLog(modulo, 26, FALSE); - return (FALSE); + if (!mandaTrama(&sock, ptrTrama)) { + syslog(LOG_ERR, "failed to send response: %s\n", + strerror(errno)); + return false; } //close(tbsockets[idx].sock); // Cierra el socket del cliente hasta nueva disponibilidad } tbl.MoveNext(); } - return (TRUE); // No existen registros + return true; // No existen registros +} + +// This object stores function handler for messages +static struct { + const char *nf; // Nombre de la función + bool (*fcn)(TRAMA *, struct og_client *cli); +} tbfuncionesServer[] = { + { "Sondeo", Sondeo, }, + { "respuestaSondeo", respuestaSondeo, }, + { "ConsolaRemota", ConsolaRemota, }, + { "EcoConsola", EcoConsola, }, + { "Actualizar", Actualizar, }, + { "Purgar", Purgar, }, + { "InclusionCliente", InclusionCliente, }, + { "InclusionClienteWinLnx", InclusionClienteWinLnx, }, + { "AutoexecCliente", AutoexecCliente, }, + { "ComandosPendientes", ComandosPendientes, }, + { "DisponibilidadComandos", DisponibilidadComandos, }, + { "Arrancar", Arrancar, }, + { "RESPUESTA_Arrancar", RESPUESTA_Arrancar, }, + { "Apagar", Apagar, }, + { "RESPUESTA_Apagar", RESPUESTA_Apagar, }, + { "Reiniciar", Reiniciar, }, + { "RESPUESTA_Reiniciar", RESPUESTA_Reiniciar, }, + { "IniciarSesion", IniciarSesion, }, + { "RESPUESTA_IniciarSesion", RESPUESTA_IniciarSesion, }, + { "CrearImagen", CrearImagen, }, + { "RESPUESTA_CrearImagen", RESPUESTA_CrearImagen, }, + { "CrearImagenBasica", CrearImagenBasica, }, + { "RESPUESTA_CrearImagenBasica", RESPUESTA_CrearImagenBasica, }, + { "CrearSoftIncremental", CrearSoftIncremental, }, + { "RESPUESTA_CrearSoftIncremental", RESPUESTA_CrearSoftIncremental, }, + { "RestaurarImagen", RestaurarImagen, }, + { "RESPUESTA_RestaurarImagen", RESPUESTA_RestaurarImagen }, + { "RestaurarImagenBasica", RestaurarImagenBasica, }, + { "RESPUESTA_RestaurarImagenBasica", RESPUESTA_RestaurarImagenBasica, }, + { "RestaurarSoftIncremental", RestaurarSoftIncremental, }, + { "RESPUESTA_RestaurarSoftIncremental", RESPUESTA_RestaurarSoftIncremental, }, + { "Configurar", Configurar, }, + { "RESPUESTA_Configurar", RESPUESTA_Configurar, }, + { "EjecutarScript", EjecutarScript, }, + { "RESPUESTA_EjecutarScript", RESPUESTA_EjecutarScript, }, + { "InventarioHardware", InventarioHardware, }, + { "RESPUESTA_InventarioHardware", RESPUESTA_InventarioHardware, }, + { "InventarioSoftware", InventarioSoftware }, + { "RESPUESTA_InventarioSoftware", RESPUESTA_InventarioSoftware, }, + { "enviaArchivo", enviaArchivo, }, + { "recibeArchivo", recibeArchivo, }, + { "envioProgramacion", envioProgramacion, }, + { NULL, NULL, }, +}; + +// ________________________________________________________________________________________________________ +// Función: gestionaTrama +// +// Descripción: +// Procesa las tramas recibidas . +// Parametros: +// - s : Socket usado para comunicaciones +// Devuelve: +// true: Si el proceso es correcto +// false: En caso de ocurrir algún error +// ________________________________________________________________________________________________________ +static void gestionaTrama(TRAMA *ptrTrama, struct og_client *cli) +{ + int i, res; + char *nfn; + + if (ptrTrama){ + INTROaFINCAD(ptrTrama); + nfn = copiaParametro("nfn",ptrTrama); // Toma nombre de la función + + for (i = 0; tbfuncionesServer[i].fcn; i++) { + if (!strncmp(tbfuncionesServer[i].nf, nfn, + strlen(tbfuncionesServer[i].nf))) { + res = tbfuncionesServer[i].fcn(ptrTrama, cli); + if (!res) { + syslog(LOG_ERR, "Failed handling of %s for client %s:%hu\n", + tbfuncionesServer[i].nf, + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + } else { + syslog(LOG_DEBUG, "Successful handling of %s for client %s:%hu\n", + tbfuncionesServer[i].nf, + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + } + break; + } + } + if (!tbfuncionesServer[i].fcn) + syslog(LOG_ERR, "unknown request %s from client %s:%hu\n", + nfn, inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + + liberaMemoria(nfn); + } } -// ******************************************************************************************************** -// PROGRAMA PRINCIPAL (SERVICIO) -// ******************************************************************************************************** -int main(int argc, char *argv[]) { - int i; - SOCKET socket_s; // Socket donde escucha el servidor - SOCKET socket_c; // Socket de los clientes que se conectan - socklen_t iAddrSize; - struct sockaddr_in local, cliente; - char modulo[] = "main()"; - int activo=1; - /*-------------------------------------------------------------------------------------------------------- - Validación de parámetros de ejecución y lectura del fichero de configuración del servicio - ---------------------------------------------------------------------------------------------------------*/ - if (!validacionParametros(argc, argv, 1)) // Valida parámetros de ejecución - exit(EXIT_FAILURE); +static void og_client_release(struct ev_loop *loop, struct og_client *cli) +{ + if (cli->keepalive_idx >= 0) { + syslog(LOG_DEBUG, "closing keepalive connection for %s:%hu in slot %d\n", + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port), cli->keepalive_idx); + tbsockets[cli->keepalive_idx].cli = NULL; + } - if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion - exit(EXIT_FAILURE); + ev_io_stop(loop, &cli->io); + close(cli->io.fd); + free(cli); +} + +static void og_client_keepalive(struct ev_loop *loop, struct og_client *cli) +{ + struct og_client *old_cli; + + old_cli = tbsockets[cli->keepalive_idx].cli; + if (old_cli && old_cli != cli) { + syslog(LOG_DEBUG, "closing old keepalive connection for %s:%hu\n", + inet_ntoa(old_cli->addr.sin_addr), + ntohs(old_cli->addr.sin_port)); + + og_client_release(loop, old_cli); } - /*-------------------------------------------------------------------------------------------------------- - Carga del catálogo de funciones que procesan las tramas (referencia directa por puntero a función) - ---------------------------------------------------------------------------------------------------------*/ - int cf = 0; - - strcpy(tbfuncionesServer[cf].nf, "Sondeo"); - tbfuncionesServer[cf++].fptr = &Sondeo; - strcpy(tbfuncionesServer[cf].nf, "respuestaSondeo"); - tbfuncionesServer[cf++].fptr = &respuestaSondeo; + tbsockets[cli->keepalive_idx].cli = cli; +} - strcpy(tbfuncionesServer[cf].nf, "ConsolaRemota"); - tbfuncionesServer[cf++].fptr = &ConsolaRemota; +static void og_client_reset_state(struct og_client *cli) +{ + cli->state = OG_CLIENT_RECEIVING_HEADER; + cli->buf_len = 0; +} - strcpy(tbfuncionesServer[cf].nf, "EcoConsola"); - tbfuncionesServer[cf++].fptr = &EcoConsola; +static void og_client_read_cb(struct ev_loop *loop, struct ev_io *io, int events) +{ + char hdrlen[LONHEXPRM]; + struct og_client *cli; + TRAMA *ptrTrama; + int ret, len; + char *data; + + cli = container_of(io, struct og_client, io); + + if (events & EV_ERROR) { + syslog(LOG_ERR, "unexpected error event from client %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + goto close; + } + + ret = recv(io->fd, cli->buf + cli->buf_len, + sizeof(cli->buf) - cli->buf_len, 0); + if (ret <= 0) { + if (ret < 0) { + syslog(LOG_ERR, "error reading from client %s:%hu (%s)\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port), + strerror(errno)); + } else { + syslog(LOG_DEBUG, "closed connection by %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port)); + } + goto close; + } - strcpy(tbfuncionesServer[cf].nf, "Actualizar"); - tbfuncionesServer[cf++].fptr = &Actualizar; + if (cli->keepalive_idx >= 0) + return; - strcpy(tbfuncionesServer[cf].nf, "Purgar"); - tbfuncionesServer[cf++].fptr = &Purgar; + ev_timer_again(loop, &cli->timer); - strcpy(tbfuncionesServer[cf].nf, "InclusionCliente"); - tbfuncionesServer[cf++].fptr = &InclusionCliente; + cli->buf_len += ret; - strcpy(tbfuncionesServer[cf].nf, "InclusionClienteWinLnx"); - tbfuncionesServer[cf++].fptr = &InclusionClienteWinLnx; + switch (cli->state) { + case OG_CLIENT_RECEIVING_HEADER: + /* Still too short to validate protocol fingerprint and message + * length. + */ + if (cli->buf_len < 15 + LONHEXPRM) + return; - strcpy(tbfuncionesServer[cf].nf, "AutoexecCliente"); - tbfuncionesServer[cf++].fptr = &AutoexecCliente; + if (strncmp(cli->buf, "@JMMLCAMDJ_MCDJ", 15)) { + syslog(LOG_ERR, "bad fingerprint from client %s:%hu, closing\n", + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + goto close; + } - strcpy(tbfuncionesServer[cf].nf, "ComandosPendientes"); - tbfuncionesServer[cf++].fptr = &ComandosPendientes; + memcpy(hdrlen, &cli->buf[LONGITUD_CABECERATRAMA], LONHEXPRM); + cli->msg_len = strtol(hdrlen, NULL, 16); - strcpy(tbfuncionesServer[cf].nf, "DisponibilidadComandos"); - tbfuncionesServer[cf++].fptr = &DisponibilidadComandos; + /* Header announces more that we can fit into buffer. */ + if (cli->msg_len >= sizeof(cli->buf)) { + syslog(LOG_ERR, "too large message %u bytes from %s:%hu\n", + cli->msg_len, inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + goto close; + } - strcpy(tbfuncionesServer[cf].nf, "Arrancar"); - tbfuncionesServer[cf++].fptr = &Arrancar; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Arrancar"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_Arrancar; + cli->state = OG_CLIENT_RECEIVING_PAYLOAD; + /* Fall through. */ + case OG_CLIENT_RECEIVING_PAYLOAD: + /* Still not enough data to process request. */ + if (cli->buf_len < cli->msg_len) + return; + + cli->state = OG_CLIENT_PROCESSING_REQUEST; + /* fall through. */ + case OG_CLIENT_PROCESSING_REQUEST: + syslog(LOG_DEBUG, "processing request from %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + + len = cli->msg_len - (LONGITUD_CABECERATRAMA + LONHEXPRM); + data = &cli->buf[LONGITUD_CABECERATRAMA + LONHEXPRM]; + + ptrTrama = (TRAMA *)reservaMemoria(sizeof(TRAMA)); + if (!ptrTrama) { + syslog(LOG_ERR, "OOM\n"); + goto close; + } - strcpy(tbfuncionesServer[cf].nf, "Apagar"); - tbfuncionesServer[cf++].fptr = &Apagar; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Apagar"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_Apagar; + initParametros(ptrTrama, len); + memcpy(ptrTrama, cli->buf, LONGITUD_CABECERATRAMA); + memcpy(ptrTrama->parametros, data, len); + ptrTrama->lonprm = len; - strcpy(tbfuncionesServer[cf].nf, "Reiniciar"); - tbfuncionesServer[cf++].fptr = &Reiniciar; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Reiniciar"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_Reiniciar; + gestionaTrama(ptrTrama, cli); - strcpy(tbfuncionesServer[cf].nf, "IniciarSesion"); - tbfuncionesServer[cf++].fptr = &IniciarSesion; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_IniciarSesion"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_IniciarSesion; + liberaMemoria(ptrTrama->parametros); + liberaMemoria(ptrTrama); - strcpy(tbfuncionesServer[cf].nf, "CrearImagen"); - tbfuncionesServer[cf++].fptr = &CrearImagen; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_CrearImagen"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_CrearImagen; + if (cli->keepalive_idx < 0) { + syslog(LOG_DEBUG, "server closing connection to %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port)); + goto close; + } else { + syslog(LOG_DEBUG, "leaving client %s:%hu in keepalive mode\n", + inet_ntoa(cli->addr.sin_addr), + ntohs(cli->addr.sin_port)); + og_client_keepalive(loop, cli); + og_client_reset_state(cli); + } + break; + default: + syslog(LOG_ERR, "unknown state, critical internal error\n"); + goto close; + } + return; +close: + ev_timer_stop(loop, &cli->timer); + og_client_release(loop, cli); +} - strcpy(tbfuncionesServer[cf].nf, "CrearImagenBasica"); - tbfuncionesServer[cf++].fptr = &CrearImagenBasica; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_CrearImagenBasica"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_CrearImagenBasica; +static void og_client_timer_cb(struct ev_loop *loop, ev_timer *timer, int events) +{ + struct og_client *cli; - strcpy(tbfuncionesServer[cf].nf, "CrearSoftIncremental"); - tbfuncionesServer[cf++].fptr = &CrearSoftIncremental; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_CrearSoftIncremental"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_CrearSoftIncremental; + cli = container_of(timer, struct og_client, timer); + if (cli->keepalive_idx >= 0) { + ev_timer_again(loop, &cli->timer); + return; + } + syslog(LOG_ERR, "timeout request for client %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port)); - strcpy(tbfuncionesServer[cf].nf, "RestaurarImagen"); - tbfuncionesServer[cf++].fptr = &RestaurarImagen; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_RestaurarImagen"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_RestaurarImagen; + og_client_release(loop, cli); +} - strcpy(tbfuncionesServer[cf].nf, "RestaurarImagenBasica"); - tbfuncionesServer[cf++].fptr = &RestaurarImagenBasica; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_RestaurarImagenBasica"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_RestaurarImagenBasica; +static void og_server_accept_cb(struct ev_loop *loop, struct ev_io *io, + int events) +{ + struct sockaddr_in client_addr; + socklen_t addrlen = sizeof(client_addr); + struct og_client *cli; + int client_sd; - strcpy(tbfuncionesServer[cf].nf, "RestaurarSoftIncremental"); - tbfuncionesServer[cf++].fptr = &RestaurarSoftIncremental; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_RestaurarSoftIncremental"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_RestaurarSoftIncremental; + if (events & EV_ERROR) + return; - strcpy(tbfuncionesServer[cf].nf, "Configurar"); - tbfuncionesServer[cf++].fptr = &Configurar; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Configurar"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_Configurar; + client_sd = accept(io->fd, (struct sockaddr *)&client_addr, &addrlen); + if (client_sd < 0) { + syslog(LOG_ERR, "cannot accept client connection\n"); + return; + } - strcpy(tbfuncionesServer[cf].nf, "EjecutarScript"); - tbfuncionesServer[cf++].fptr = &EjecutarScript; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_EjecutarScript"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_EjecutarScript; + cli = (struct og_client *)calloc(1, sizeof(struct og_client)); + if (!cli) { + close(client_sd); + return; + } + memcpy(&cli->addr, &client_addr, sizeof(client_addr)); + cli->keepalive_idx = -1; - strcpy(tbfuncionesServer[cf].nf, "InventarioHardware"); - tbfuncionesServer[cf++].fptr = &InventarioHardware; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_InventarioHardware"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_InventarioHardware; + syslog(LOG_DEBUG, "connection from client %s:%hu\n", + inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port)); - strcpy(tbfuncionesServer[cf].nf, "InventarioSoftware"); - tbfuncionesServer[cf++].fptr = &InventarioSoftware; - strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_InventarioSoftware"); - tbfuncionesServer[cf++].fptr = &RESPUESTA_InventarioSoftware; + ev_io_init(&cli->io, og_client_read_cb, client_sd, EV_READ); + ev_io_start(loop, &cli->io); + ev_timer_init(&cli->timer, og_client_timer_cb, OG_CLIENT_TIMEOUT, 0.); + ev_timer_start(loop, &cli->timer); +} - strcpy(tbfuncionesServer[cf].nf, "enviaArchivo"); - tbfuncionesServer[cf++].fptr = &enviaArchivo; +int main(int argc, char *argv[]) +{ + struct ev_loop *loop = ev_default_loop(0); + struct ev_io ev_io_server; + struct sockaddr_in local; + int socket_s; + int activo=1; + int i; - strcpy(tbfuncionesServer[cf].nf, "recibeArchivo"); - tbfuncionesServer[cf++].fptr = &recibeArchivo; + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) + exit(EXIT_FAILURE); + + openlog("ogAdmServer", LOG_PID, LOG_DAEMON); + + /*-------------------------------------------------------------------------------------------------------- + Validación de parámetros de ejecución y lectura del fichero de configuración del servicio + ---------------------------------------------------------------------------------------------------------*/ + if (!validacionParametros(argc, argv, 1)) // Valida parámetros de ejecución + exit(EXIT_FAILURE); - strcpy(tbfuncionesServer[cf].nf, "envioProgramacion"); - tbfuncionesServer[cf++].fptr = &envioProgramacion; + if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion + exit(EXIT_FAILURE); + } /*-------------------------------------------------------------------------------------------------------- // Inicializa array de información de los clientes ---------------------------------------------------------------------------------------------------------*/ for (i = 0; i < MAXIMOS_CLIENTES; i++) { tbsockets[i].ip[0] = '\0'; - tbsockets[i].sock = INVALID_SOCKET; + tbsockets[i].cli = NULL; } /*-------------------------------------------------------------------------------------------------------- Creación y configuración del socket del servicio ---------------------------------------------------------------------------------------------------------*/ socket_s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Crea socket del servicio setsockopt(socket_s, SOL_SOCKET, SO_REUSEPORT, &activo, sizeof(int)); - if (socket_s == SOCKET_ERROR) { // Error al crear el socket del servicio - errorLog(modulo, 13, TRUE); + if (socket_s < 0) { + syslog(LOG_ERR, "cannot create main socket\n"); exit(EXIT_FAILURE); } @@ -3729,36 +3742,25 @@ int main(int argc, char *argv[]) { local.sin_family = AF_INET; local.sin_port = htons(atoi(puerto)); - if (bind(socket_s, (struct sockaddr *) &local, sizeof(local)) - == SOCKET_ERROR) { // Enlaza socket - errorLog(modulo, 14, TRUE); + if (bind(socket_s, (struct sockaddr *) &local, sizeof(local)) < 0) { + syslog(LOG_ERR, "cannot bind socket\n"); exit(EXIT_FAILURE); } listen(socket_s, 250); // Pone a escuchar al socket - iAddrSize = sizeof(cliente); - /*-------------------------------------------------------------------------------------------------------- - Bucle para acceptar conexiones - ---------------------------------------------------------------------------------------------------------*/ + + ev_io_init(&ev_io_server, og_server_accept_cb, socket_s, EV_READ); + ev_io_start(loop, &ev_io_server); + infoLog(1); // Inicio de sesión - while (TRUE) { - socket_c = accept(socket_s, (struct sockaddr *) &cliente, &iAddrSize); - if (socket_c == INVALID_SOCKET) { - errorLog(modulo, 15, TRUE); - exit(EXIT_FAILURE); - } - swcSocket = FALSE; // Por defecto se cerrara el socket de cliente después del anális de la trama - if (!gestionaTrama(&socket_c)) { - errorLog(modulo, 39, TRUE); - //close(socket_c);/tmp/ - //break; - } - if (!swcSocket) // Sólo se cierra cuando el cliente NO espera comandos ineractivos - close(socket_c); - } - /*-------------------------------------------------------------------------------------------------------- - Fin del servicio - ---------------------------------------------------------------------------------------------------------*/ - close(socket_s); + + /* old log file has been deprecated. */ + og_log(97, false); + + syslog(LOG_INFO, "Waiting for connections\n"); + + while (1) + ev_loop(loop, 0); + exit(EXIT_SUCCESS); } diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h index 48f0be3a..1812d83e 100644 --- a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h +++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h @@ -17,6 +17,7 @@ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <stdbool.h> #include </usr/include/mysql/mysql.h> #include "Database.h" #include "ogAdmLib.h" @@ -25,105 +26,34 @@ // ________________________________________________________________________________________________________ char servidoradm[LONPRM]; // Dirección IP del servidor de administración char puerto[LONPRM]; // Puerto de comunicación -char usuario[LONPRM]; // Usuario de acceso a la base de datos -char pasguor[LONPRM]; // Password del usuario -char datasource[LONPRM]; // Dirección IP del gestor de base de datos -char catalog[LONPRM]; // Nombre de la base de datos -char aulaup[LONPRM]; // Conmutador para registro automático de clientes + +struct og_client; typedef struct{ // Estructura usada para guardar información de los clientes char ip[LONIP]; // IP del cliente char estado[4]; // Tipo de Sistema Operativo en que se encuentra el cliente - SOCKET sock; // Socket por el que se comunica + struct og_client *cli; }SOCKETCL; SOCKETCL tbsockets[MAXIMOS_CLIENTES]; -BOOLEAN swcSocket; // Switch para indicar si se debe cerrar el socket del cliente - -typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas - char nf[LONFUN]; // Nombre de la función - BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama -}MSGFUN; -MSGFUN tbfuncionesServer[MAXIMAS_FUNCIONES]; -// ________________________________________________________________________________________________________ -// Prototipo de funciones -// ________________________________________________________________________________________________________ - -BOOLEAN tomaConfiguracion(char*); -BOOLEAN gestionaTrama(SOCKET*); -BOOLEAN Sondeo(SOCKET*,TRAMA*); -BOOLEAN respuestaSondeo(SOCKET *,TRAMA*); -BOOLEAN InclusionClienteWinLnx(SOCKET*,TRAMA*); -BOOLEAN InclusionCliente(SOCKET*,TRAMA*); -BOOLEAN registraCliente(char *); - -BOOLEAN procesoInclusionClienteWinLnx(SOCKET*,TRAMA*,int*,char*); -BOOLEAN procesoInclusionCliente(SOCKET*,TRAMA*); -BOOLEAN clienteExistente(char *,int *); -BOOLEAN clienteDisponible(char *,int *); -BOOLEAN hayHueco(int *); -BOOLEAN actualizaConfiguracion(Database , Table ,char* ,int); -BOOLEAN AutoexecCliente(SOCKET *, TRAMA *); -BOOLEAN recorreProcedimientos(Database ,char* ,FILE*,char*); - -BOOLEAN tomaRepositorio(Database ,Table ,char*,int*); -BOOLEAN buscaComandos(char *,TRAMA *,int *); -BOOLEAN DisponibilidadComandos(SOCKET*,TRAMA*); -BOOLEAN respuestaEstandar(TRAMA *,char **,char **,char ** ,Database *,Table *); -BOOLEAN respuestaConsola(SOCKET *,TRAMA *,int); -BOOLEAN enviaComando(TRAMA *ptrTrama,const char*); - -BOOLEAN Actualizar(SOCKET *, TRAMA* ); -BOOLEAN Purgar(SOCKET *, TRAMA* ); - -BOOLEAN ConsolaRemota(SOCKET *,TRAMA*); -BOOLEAN RESPUESTA_ConsolaRemota(SOCKET *,TRAMA*); -BOOLEAN EcoConsola(SOCKET *,TRAMA*); - -BOOLEAN Comando(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_Comando(SOCKET *,TRAMA *); - -BOOLEAN Arrancar(SOCKET *,TRAMA *); -BOOLEAN Levanta(char*,char*,char*); -BOOLEAN WakeUp(SOCKET *,char*,char*,char*); +bool registraCliente(char *); +bool procesoInclusionClienteWinLnx(int socket, TRAMA*,int*,char*); +bool procesoInclusionCliente(struct og_client *, TRAMA*); +bool clienteExistente(char *,int *); +bool clienteDisponible(char *,int *); +bool actualizaConfiguracion(Database , Table ,char* ,int); +bool recorreProcedimientos(Database ,char* ,FILE*,char*); +bool buscaComandos(char *,TRAMA *,int *); +bool respuestaConsola(int socket, TRAMA *,int); +bool enviaComando(TRAMA *ptrTrama,const char*); +bool Levanta(char*,char*,char*); +bool WakeUp(int,char*,char*,char*); void PasaHexBin(char *,char *); -BOOLEAN RESPUESTA_Arrancar(SOCKET *,TRAMA*); -BOOLEAN Apagar(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_Apagar(SOCKET *,TRAMA *); -BOOLEAN Reiniciar(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_Reiniciar(SOCKET *,TRAMA *); -BOOLEAN IniciarSesion(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_IniciarSesion(SOCKET *,TRAMA *); -BOOLEAN CrearImagen(SOCKET *,TRAMA *); -BOOLEAN CrearImagenBasica(SOCKET *,TRAMA *); -BOOLEAN CrearSoftIncremental(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_CrearImagen(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_CrearImagenBasica(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_CrearSoftIncremental(SOCKET *,TRAMA *); -BOOLEAN actualizaCreacionImagen(Database,Table,char*,char*,char*,char*,char*,char*); -BOOLEAN actualizaCreacionSoftIncremental(Database,Table,char*,char*); -BOOLEAN RestaurarImagen(SOCKET *,TRAMA *); -BOOLEAN RestaurarImagenBasica(SOCKET *,TRAMA *); -BOOLEAN RestaurarSoftIncremental(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_RestaurarImagenBasica(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_RestaurarSoftIncremental(SOCKET *,TRAMA *); -BOOLEAN actualizaRestauracionImagen(Database,Table,char*,char*,char*,char*,char*); -BOOLEAN Configurar(SOCKET *,TRAMA* ); -BOOLEAN RESPUESTA_Configurar(SOCKET *,TRAMA* ); -BOOLEAN actualizaConfigurar(Database , Table , char* ); -BOOLEAN InventarioHardware(SOCKET *,TRAMA *); -BOOLEAN RESPUESTA_InventarioHardware(SOCKET *,TRAMA *); -BOOLEAN actualizaHardware(Database, Table,char* ,char*,char*,char*); -BOOLEAN cuestionPerfilHardware(Database,Table,char*,char*,int,char*,char*,int *,int); -BOOLEAN actualizaSoftware(Database , Table , char* , char* , char*,char*,char*); -BOOLEAN cuestionPerfilSoftware(Database, Table, char*, char*,int,int,char*,char*,char*,int *,int); - -BOOLEAN enviaArchivo(SOCKET *, TRAMA *); -BOOLEAN recibeArchivo(SOCKET *, TRAMA *); -BOOLEAN envioProgramacion(SOCKET *, TRAMA *); +bool actualizaCreacionImagen(Database,Table,char*,char*,char*,char*,char*,char*); +bool actualizaRestauracionImagen(Database,Table,char*,char*,char*,char*,char*); +bool actualizaHardware(Database, Table,char* ,char*,char*,char*); +bool cuestionPerfilHardware(Database,Table,char*,char*,int,char*,char*,int *,int); +bool actualizaSoftware(Database , Table , char* , char* , char*,char*,char*); +bool cuestionPerfilSoftware(Database, Table, char*, char*,int,int,char*,char*,char*,int *,int); int checkDato(Database,Table,char*,const char*,const char*,const char*); - - - diff --git a/admin/Sources/Services/opengnsys.default b/admin/Sources/Services/opengnsys.default index 9af83e29..c0196537 100644 --- a/admin/Sources/Services/opengnsys.default +++ b/admin/Sources/Services/opengnsys.default @@ -1,12 +1,17 @@ # RUN_OGADMSERVER defined as OpenGnsys Admin Server # RUN_OGADMREPO defined as OpenGnsys Repository Manager -# RUN_OGADMAGENT run task scheduler service -# RUN_BTTRACKER run Bittorrent Tracker -# RUN_BTSEEDER start seeding of selected torrent files +# RUN_OGADMAGENT run task scheduler service, only if Admin Server is enabled +# RUN_BTTRACKER run Bittorrent Tracker, only if Repository is enabled +# RUN_BTSEEDER start seeding of selected torrent files, only if Repository is enabled +# BTSEEDER_PRIORITY nice priority to seed torrent files; recommended values: +# 8 for Admin Server or Repo without Torrent +# 0 for Admin Server and Repo with Torrent +# -8 for Repo with Torrent # RUN_CRON run Cron script to check started processes RUN_OGADMSERVER="yes" RUN_OGADMREPO="yes" RUN_OGADMAGENT="yes" RUN_BTTRACKER="yes" RUN_BTSEEDER="yes" +BTSEEDER_PRIORITY=0 RUN_CRONJOB="yes" diff --git a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php index 9947dcf7..c803a6bb 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php +++ b/admin/WebConsole/asistentes/includes/asistentes/AyudanteFormularios.php @@ -458,4 +458,4 @@ function pintaParticionesAsistenteDeployImage($cmd,$configuraciones,$idordenador echo '<TR height=5><TD colspan='.$colums.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </TD></TR>';
}
-?>
+
diff --git a/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php b/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php index 0b0282b9..4caff0ae 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formCloneRemotePartition.php @@ -4,7 +4,7 @@ <tr> <td class="op_basic"> <?php echo $TbMsg["WCRP32"] ?> - <select name="ipMaster" id="ipMaster" style="width:220" onChange="ListarOrigenesMaster(this.value);"> + <select name="ipMaster" id="ipMaster" style="width:220px" onChange="ListarOrigenesMaster(this.value);"> <option value=""> -- <?php echo $TbMsg["WCRP32"] ?> -- </option> <?php echo ''.htmlOPTION_equipos($cmd,$ambito,$idambito).''; ?> </select> @@ -14,7 +14,7 @@ <div id="ajaxDiv"></div> <br /> <?php echo $TbMsg["WCRP34"] ?> - <select name="targetpart" id="targetpart" style="width:220;"> + <select name="targetpart" id="targetpart" style="width:220px;"> <option value="1 1"> 1er disco - 1ª particion </option> <option value="1 2"> 1er disco - 2ª particion </option> <option value="1 3"> 1er disco - 3ª particion </option> @@ -22,19 +22,19 @@ </select> <br /> <?php echo $TbMsg["WCRP35"] ?> - <select name="idmetodo" id="idmetodo" style="width:220;"> + <select name="idmetodo" id="idmetodo" style="width:220px;"> <option value="MULTICAST"> MULTICAST </option> <option value="UNICAST"> UNICAST </option> </select> <br /> <?php echo $TbMsg["WCRP36"] ?> - <select name="tool" id="tool" style="width:220;"> + <select name="tool" id="tool" style="width:220px;"> <option value="partclone"> partclone </option> <!-- <option value="partimage"> partimage </option> --> </select> <br /> <?php echo $TbMsg["WCRP37"] ?> - <select name="compresor" id="compresor" style="width:220;"> + <select name="compresor" id="compresor" style="width:220px;"> <option value="lzop"> lzop </option> <option value="gzip"> gzip </option> </select> diff --git a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php index 4aece176..57a77e28 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formDeployImage.php @@ -25,21 +25,16 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){ <td class="op_basic"> <?php echo $TbMsg["WDI20"] ?> - <select name="idparticion" id="idparticion" style="WIDTH:220"> + <select name="idparticion" id="idparticion" style="width:220px"> <?php foreach($disksPartitions as $diskPartition){ echo "<option value='".$diskPartition["value"]."'>".$diskPartition["text"]." </option>"; } ?> - <!-- - <option value="1"> 1 </option> - <option value="2"> 2 </option> - <option value="3"> 3 </option> - --> </select> <br /> <?php echo $TbMsg["WDI21"] ?> - <select name="idimagen" id="idimagen" style="WIDTH:220"> + <select name="idimagen" id="idimagen" style="width:220px"> <option value=""> <?php echo $TbMsg["WDI22"] ?></option> <?php echo ''. htmlOPTION_images($cmd,$ambito,$idambito) .''; ?> </select> @@ -47,7 +42,7 @@ for($cfgIndex = 0; $cfgIndex < $conKeys; $cfgIndex++){ <?php echo $TbMsg["WDI23"] ?> <br /> - <select name="idmetodo" id="idmetodo" style="WIDTH:220;"> + <select name="idmetodo" id="idmetodo" style="width:220px;"> <option value="TORRENT"> TORRENT </option> <option value="MULTICAST"> MULTICAST </option> <option value="MULTICAST-DIRECT"> MULTICAST-DIRECT </option> diff --git a/admin/WebConsole/asistentes/includes/asistentes/formParticionado_gpt.php b/admin/WebConsole/asistentes/includes/asistentes/formParticionado_gpt.php index 9069815f..43f1d4e7 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formParticionado_gpt.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formParticionado_gpt.php @@ -15,7 +15,7 @@ for ($p=1; $p<4; $p++) { <td> <input type="checkbox" id="checkGPT'.$p.'" name="checkGPT'.$p.'" value="checkGPT'.$p.'" onclick="clickPartitionCheckbox(this.form, '.$p.',true);" /> '.$TbMsg[20].' '.$p.'</td> <td> -<select name="partGPT'.$p.'" id="partGPT'.$p.'" style="width:220" disabled="true" onclick=" +<select name="partGPT'.$p.'" id="partGPT'.$p.'" style="width:220px" disabled="true" onclick=" //if (this.form.part'.$p.'.options[this.form.part'.$p.'.selectedIndex].value == \'CUSTOM\') { if (this.options[this.selectedIndex].value == \'CUSTOM\') { this.form.partGPT'.$p.'custom.disabled=false; @@ -24,10 +24,10 @@ for ($p=1; $p<4; $p++) { }">'.htmlForm_typepart($cmd,$p).'<option value="CUSTOM"> '.$TbMsg[39].' </option> </select> <br> -<select name="partGPT'.$p.'custom" id="partGPT'.$p.'custom" style="width:220" disabled="true" >'. htmlForm_typepartnotcacheGPT($p) .'</select> +<select name="partGPT'.$p.'custom" id="partGPT'.$p.'custom" style="width:220px" disabled="true" >'. htmlForm_typepartnotcacheGPT($p) .'</select> </td> <td> -<select name="sizeGPT'.$p.'" id="sizeGPT'.$p.'" style="width:220" disabled="true" onclick=" +<select name="sizeGPT'.$p.'" id="sizeGPT'.$p.'" style="width:220px" disabled="true" onclick=" if (this.form.sizeGPT'.$p.'.options[this.form.sizeGPT'.$p.'.selectedIndex].value == \'CUSTOM\') { this.form.sizeGPT'.$p.'custom.disabled=false; } else { @@ -37,7 +37,7 @@ for ($p=1; $p<4; $p++) { <option value="CUSTOM"> '.$TbMsg[39].'</option> </select> <br /> -<input type="text" style="width:100" id="sizeGPT'.$p.'custom" name="sizeGPT'.$p.'custom" value="0" disabled="true" onchange="calculateFreeDisk(this.form);" /> +<input type="text" style="width:100px" id="sizeGPT'.$p.'custom" name="sizeGPT'.$p.'custom" value="0" disabled="true" onchange="calculateFreeDisk(this.form);" /> </td> </tr> '; @@ -47,15 +47,15 @@ for ($p=1; $p<4; $p++) { <tr id="trPartition4"> <td><input type="checkbox" name="checkGPT4" value="checkGPT4" onclick="clickPartitionCheckbox(this.form, 4,true);" /> <?php echo $TbMsg[20].' '.$p;?> </td> <td> -<select name="partGPT4" id="partGPT4" style="width:220" disabled="true" onchange="checkExtendedPartition(form);"><?php echo htmlForm_typepartnotcacheGPT(4) ?></select> +<select name="partGPT4" id="partGPT4" style="width:220px" disabled="disabled" onchange="checkExtendedPartition(form);"><?php echo htmlForm_typepartnotcacheGPT(4) ?></select> </td> -<td><select name="sizeGPT4" id="sizeGPT4" style="width:220" disabled="true" onclick="if (this.form.sizeGPT4.options[this.form.sizeGPT4.selectedIndex].value == 'CUSTOM') { this.form.sizeGPT4custom.disabled=false } else { this.form.sizeGPT4custom.disabled=true }" onchange="calculateFreeGPTDisk(this.form);" /> +<td><select name="sizeGPT4" id="sizeGPT4" style="width:220px" disabled="disabled" onclick="if (this.form.sizeGPT4.options[this.form.sizeGPT4.selectedIndex].value == 'CUSTOM') { this.form.sizeGPT4custom.disabled=false } else { this.form.sizeGPT4custom.disabled=true }" onchange="calculateFreeGPTDisk(this.form);"> <option value="0"> <?php echo $TbMsg[40];?> </option> <?php echo ''. htmlForm_sizepart($cmd,4) .''; ?> <option value="CUSTOM"> <?php echo $TbMsg[39];?> </option> </select> <br /> -<input type="text" style="width:100" name="sizeGPT4custom" value="0" disabled="true" onchange="calculateFreeGPTDisk(this.form);" /></td> +<input type="text" style="width:100px" name="sizeGPT4custom" value="0" disabled="disabled" onchange="calculateFreeGPTDisk(this.form);" /></td> </tr> </table> </td> @@ -76,5 +76,3 @@ for ($p=1; $p<4; $p++) { </th> </tr> -</td> - diff --git a/admin/WebConsole/asistentes/includes/asistentes/formParticionado_msdos.php b/admin/WebConsole/asistentes/includes/asistentes/formParticionado_msdos.php index b1d6b079..08162326 100644 --- a/admin/WebConsole/asistentes/includes/asistentes/formParticionado_msdos.php +++ b/admin/WebConsole/asistentes/includes/asistentes/formParticionado_msdos.php @@ -59,15 +59,15 @@ for ($p=1; $p<4; $p++) { </select> <br /> --> -<select name="part4" id="part4" style="width:220" disabled="true" onchange="checkExtendedPartition(form);"><?php echo htmlForm_typepartnotcacheEngine10(4) ?></select> +<select name="part4" id="part4" style="width:220px" disabled="disabled" onchange="checkExtendedPartition(form);"><?php echo htmlForm_typepartnotcacheEngine10(4) ?></select> </td> -<td><select name="size4" id="size4" style="width:220" disabled="true" onclick="if (this.form.size4.options[this.form.size4.selectedIndex].value == 'CUSTOM') { this.form.size4custom.disabled=false } else { this.form.size4custom.disabled=true }" onchange="calculateFreeDisk(this.form);" /> +<td><select name="size4" id="size4" style="width:220px" disabled="disabled" onclick="if (this.form.size4.options[this.form.size4.selectedIndex].value == 'CUSTOM') { this.form.size4custom.disabled=false } else { this.form.size4custom.disabled=true }" onchange="calculateFreeDisk(this.form);"> <option value="0"> <?php echo $TbMsg[40];?> </option> <?php echo ''. htmlForm_sizepart($cmd,4) .''; ?> <option value="CUSTOM"> <?php echo $TbMsg[39];?> </option> </select> <br /> -<input type="text" style="width:100" name="size4custom" value="0" disabled="true" onchange="calculateFreeDisk(this.form);" /></td> +<input type="text" style="width:100px" name="size4custom" value="0" disabled="disabled" onchange="calculateFreeDisk(this.form);" /></td> </tr> </table> @@ -132,5 +132,3 @@ for ($p=5; $p<=9; $p++) { <?php echo $TbMsg[38];?>: <input type="text" id="freedisk" width="15" disabled="true" /> </th> </tr> - - diff --git a/admin/WebConsole/asistentes/includes/capturaacciones.php b/admin/WebConsole/asistentes/includes/capturaacciones.php index a6fa089d..3c24bce0 100644 --- a/admin/WebConsole/asistentes/includes/capturaacciones.php +++ b/admin/WebConsole/asistentes/includes/capturaacciones.php @@ -27,5 +27,5 @@ if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"]; if (isset($_POST["funcion"])) $funcion=$_POST["funcion"]; if (isset($_POST["atributos"])) $atributos=$_POST["atributos"]; if (isset($_POST["gestor"])) $gestor=$_POST["gestor"]; -?> + diff --git a/admin/WebConsole/asistentes/includes/opcionesacciones.php b/admin/WebConsole/asistentes/includes/opcionesacciones.php index a598b090..31601278 100644 --- a/admin/WebConsole/asistentes/includes/opcionesacciones.php +++ b/admin/WebConsole/asistentes/includes/opcionesacciones.php @@ -63,9 +63,9 @@ <TD> </TD> <TD> </TD> <TD><?php echo $TbMsgAux[8] ?> </TD> - <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordprocedimiento type=text value=""></TD></TR> + <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordprocedimiento type=text value=""></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> - <TR HEIGHT=10><TD colspan=4> <HR></TD></TR> + <TR><TD colspan=4 height="10px"> <HR></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> <TR> <TD><INPUT onclick="clic_mktarea(this)" name=sw_mktarea type=checkbox></TD> @@ -87,7 +87,7 @@ <TD> </TD> <TD> </TD> <TD><?php echo $TbMsgAux[12] ?> </TD> - <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordtarea type=text value=""></TD></TR> + <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordtarea type=text value=""></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> diff --git a/admin/WebConsole/asistentes/jscripts/asistentes.js b/admin/WebConsole/asistentes/jscripts/asistentes.js index 59446868..24390703 100644 --- a/admin/WebConsole/asistentes/jscripts/asistentes.js +++ b/admin/WebConsole/asistentes/jscripts/asistentes.js @@ -18,7 +18,7 @@ // *********************************************************************************************************** function codeCloneRemotePartition(form){ -var command ; +var protocol; switch (form.idmetodo.value) { case "MULTICAST": @@ -29,7 +29,7 @@ switch (form.idmetodo.value) break; } //form.codigo.value="cloneRemoteFromMaster " + form.ipMaster.value + " 1 " + form.PartOrigen.value + " " + form.mcastpuerto.value + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " 1 " + form.PartOrigen.value + " " + form.tool.value + " " + form.compresor.value; -command="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + " " + protocol + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value; +var command="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + " " + protocol + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value; form.codigo.value="\ ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command + "\"\n \ ogExecAndLog command " + command + " \n "; @@ -52,6 +52,10 @@ function enableDirect(form){ function codeDeployImage(form){ +var diskPart; +var imagen; +var command; + switch (form.idmetodo.value) { case "MULTICAST": @@ -72,14 +76,14 @@ switch (form.idmetodo.value) } // Datos imagen -var imagen = form.idimagen.value.split("_"); +imagen = form.idimagen.value.split("_"); //form.codigo.value="deployImage REPO /"; if (form.modo[0].checked) { // UHU - Distinguimos entre disco y particion, el valor de idparticion sera disco;particion. eje. 1;1 - var diskPart = form.idparticion.value.split(";"); - var imagen = form.idimagen.value.split("_"); + diskPart = form.idparticion.value.split(";"); + imagen = form.idimagen.value.split("_"); command="deployImage " + imagen[0] + " /" + imagen[1] + " "+diskPart[0]+" " + diskPart[1] + " " + protocol ; form.codigo.value="\ ogEcho log session \"[0] $MSG_SCRIPTS_TASK_START " + command + "\"\n \ " + @@ -109,9 +113,11 @@ function modificarCodigo() { function codeParticionado(form){ var n_disk = form.n_disk.value; var tipo_part_table = form.tipo_part_table.value; + var freedisk; + var freediskGPT; // Comprobamos si la opcion elejida es GPT o MSDOS para llamar a una funcion u otra - if(tipo_part_table == "GPT"){ - var freediskGPT = parseInt(document.getElementById("freediskGPT").value); + if(tipo_part_table === "GPT"){ + freediskGPT = parseInt(document.getElementById("freediskGPT").value); // Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso if(freediskGPT < 0){ alert(TbMsg['NODISKSIZE']); @@ -124,7 +130,7 @@ function codeParticionado(form){ } } else{ - var freedisk = parseInt(document.getElementById("freedisk").value); + freedisk = parseInt(document.getElementById("freedisk").value); // Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso if(freedisk < 0){ alert(TbMsg['NODISKSIZE']); @@ -136,7 +142,6 @@ function codeParticionado(form){ codeParticionadoMSDOS(form); } } - } @@ -150,19 +155,23 @@ function codeParticionadoMSDOS (form) { var n_disk = form.n_disk.value; var tipo_part_table = form.tipo_part_table.value; var maxParts = 4; - var swapPart = new Array(); + var swapPart = []; var swapCode = ""; - + var partCheck; + var partType; + var partTypeCustom; + var partSize; + var partSizeCustom; // Comprobamos si esta seleccionada la cuarta particion y no es CACHE - if(form.check4.checked && form.part4.value != "CACHE") - maxParts = 5; + if(form.check4.checked && form.part4.value !== "CACHE") + maxParts = 5; for (var nPart=1; nPart<maxParts; nPart++) { - var partCheck=eval("form.check"+nPart); + partCheck=eval("form.check"+nPart); if (partCheck.checked) { - var partType=eval("form.part"+nPart); - if (partType.value == "CUSTOM" ) { - var partTypeCustom=eval("form.part"+nPart+"custom"); + partType=eval("form.part"+nPart); + if (partType.value === "CUSTOM" ) { + partTypeCustom=eval("form.part"+nPart+"custom"); partCode += " " + partTypeCustom.value; switch(partTypeCustom.value) { case "EXTENDED": @@ -184,9 +193,9 @@ function codeParticionadoMSDOS (form) { break; } } - var partSize=eval("form.size"+nPart); - if (partSize.value == "CUSTOM" ) { - var partSizeCustom=eval("form.size"+nPart+"custom"); + partSize=eval("form.size"+nPart); + if (partSize.value === "CUSTOM" ) { + partSizeCustom=eval("form.size"+nPart+"custom"); partCode += ":" + partSizeCustom.value; } else { partCode += ":" + partSize.value; @@ -195,19 +204,18 @@ function codeParticionadoMSDOS (form) { partCode += " EMPTY:0"; } } - var cacheCode=""; // Si se selecciono la particion 4 y es CACHE - if(form.part4.value == "CACHE"){ + if(form.part4.value === "CACHE"){ if (form.check4.checked) { - if (form.size4.value == "0") { + if (form.size4.value === "0") { sizecacheCode="\ ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \ -sizecache=`ogGetCacheSize` "; +sizecache=`ogGetCacheSize` \n "; cacheCode="\ initCache "+n_disk+" $sizecache NOMOUNT &>/dev/null \n "; } else { - if (form.size4.value == "CUSTOM") { + if (form.size4.value === "CUSTOM") { cacheSize = form.size4custom.value; } else { cacheSize = form.size4.value; @@ -215,40 +223,40 @@ initCache "+n_disk+" $sizecache NOMOUNT &>/dev/null \n "; cacheCode="\ initCache " + n_disk + " " + cacheSize + " NOMOUNT &>/dev/null \n "; } - cacheCode += "ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\" \n "; - cacheCode += "ogExecAndLog command session ogListPartitions "+n_disk+" \n "; + cacheCode += "ogEcho session \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\" \n "; + cacheCode += "ogExecAndLog command session ogListPartitions "+n_disk+" \n "; } else { -partCode += " EMPTY:0"; + partCode += " EMPTY:0"; } } if (extended) { var lastLogical=5; - for (var nPart=9; nPart>5; nPart--) { + for (nPart=9; nPart>5; nPart--) { if (eval ("form.check"+nPart+".checked")) { lastLogical = nPart; break; } } - for (var nPart=5; nPart<=lastLogical; nPart++) { - var partCheck=eval("form.check"+nPart); + for (nPart=5; nPart<=lastLogical; nPart++) { + partCheck=eval("form.check"+nPart); if (partCheck.checked) { - var partType=eval("form.part"+nPart); - if (partType.value == "CUSTOM" ) { - var partTypeCustom=eval("form.part"+nPart+"custom"); + partType=eval("form.part"+nPart); + if (partType.value === "CUSTOM" ) { + partTypeCustom=eval("form.part"+nPart+"custom"); logicalCode += " " + partTypeCustom.value; // Partición swap - if (partTypeCustom.value == "LINUX-SWAP") + if (partTypeCustom.value === "LINUX-SWAP") swapPart.push(nPart); } else { logicalCode += " " + partType.value; // Partición swap - if (partType.value == "LINUX-SWAP") + if (partType.value === "LINUX-SWAP") swapPart.push(nPart); } - var partSize=eval("form.size"+nPart); - if (partSize.value == "CUSTOM" ) { - var partSizeCustom=eval("form.size"+nPart+"custom"); + partSize=eval("form.size"+nPart); + if (partSize.value === "CUSTOM" ) { + partSizeCustom=eval("form.size"+nPart+"custom"); logicalCode += ":" + partSizeCustom.value; } else { logicalCode += ":" + partSize.value; @@ -270,17 +278,20 @@ partCode += " EMPTY:0"; } form.codigo.value="\ -" + sizecacheCode + " \n \ +ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions "+n_disk+"\"\n \ ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \ ogUnmountAll "+n_disk+" 2>/dev/null \n \ ogUnmountCache \n \ +" + sizecacheCode + "\ ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \ ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \ ogDeletePartitionTable "+n_disk+" \n \ ogUpdatePartitionTable "+n_disk+" \n \ " + cacheCode + "\ ogEcho session \"[70] $MSG_HELP_ogCreatePartitions " + partCode + "\"\n \ -if ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + "; then \n \ +ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + " \n \ +EVAL=$? \n \ +if [ $EVAL -eq 0 ]; then \n \ ogEcho session \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\"\n \ ogSetPartitionActive "+n_disk+" 1 \n \ ogEcho log session \"[90] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \ @@ -290,7 +301,7 @@ if ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + "; then \n "+ swapCode +"\ else \n \ ogEcho session log \"[100] ERROR: $MSG_HELP_ogCreatePartitions\" \n \ - sleep 5 \n \ + return $EVAL \n \ fi"; } @@ -304,26 +315,25 @@ function codeParticionadoGPT (form) { var extended=false; var n_disk = form.n_disk.value; var tipo_part_table = form.tipo_part_table.value; - var swapPart = new Array(); + var swapPart = []; var swapCode = ""; - - numParts=document.getElementById("numGPTpartitions").value; + var numParts=document.getElementById("numGPTpartitions").value; for (var nPart=1; nPart <= numParts; nPart++) { var partCheck=eval("form.checkGPT"+nPart); if (partCheck.checked) { // Distinguimos entre cache y el resto de particiones // Solo tratamos la particion 4 como cache, si se selecciono este tipo - if(nPart == 4 && form.partGPT4.value == "CACHE") { - if (form.sizeGPT4.value == "0") { + if(nPart === 4 && form.partGPT4.value === "CACHE") { + if (form.sizeGPT4.value === "0") { sizecacheCode="\ -ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\"\n \ -sizecache=`ogGetCacheSize` "; +ogEcho session \"[20] $MSG_HELP_ogGetCacheSize\" \n \ +sizecache=`ogGetCacheSize` \n "; cacheCode="\ ogEcho session \"[50] $MSG_HELP_ogCreateCache\"\n \ initCache "+ n_disk +" $sizecache NOMOUNT &>/dev/null \n "; } else { - if (form.sizeGPT4.value == "CUSTOM") { + if (form.sizeGPT4.value === "CUSTOM") { cacheSize = form.sizeGPT4custom.value; } else { cacheSize = form.sizeGPT4.value; @@ -336,20 +346,20 @@ initCache " + n_disk +" "+ cacheSize + " NOMOUNT &>/dev/null \n "; cacheCode += "ogExecAndLog command session ogListPartitions "+n_disk+" \n "; } else{ var partType=eval("form.partGPT"+nPart); - if (partType.value == "CUSTOM" ) { + if (partType.value === "CUSTOM" ) { var partTypeCustom=eval("form.partGPT"+nPart+"custom"); partCode += " " + partTypeCustom.value; // Partición swap - if (partTypeCustom.value == "LINUX-SWAP") - swapPart.push(nPart); + if (partTypeCustom.value === "LINUX-SWAP") + swapPart.push(nPart); } else { partCode += " " + partType.value; // Partición swap - if (partType.value == "LINUX-SWAP") - swapPart.push(nPart); + if (partType.value === "LINUX-SWAP") + swapPart.push(nPart); } var partSize=eval("form.sizeGPT"+nPart); - if (partSize.value == "CUSTOM" ) { + if (partSize.value === "CUSTOM" ) { var partSizeCustom=eval("form.sizeGPT"+nPart+"custom"); partCode += ":" + partSizeCustom.value; } else { @@ -369,24 +379,30 @@ initCache " + n_disk +" "+ cacheSize + " NOMOUNT &>/dev/null \n "; } form.codigo.value="\ -" + sizecacheCode + " \n \ -ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \ ogEcho log session \"[0] $MSG_HELP_ogCreatePartitions "+n_disk+"\"\n \ ogEcho session \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\"\n \ ogUnmountAll "+n_disk+" \n \ ogUnmountCache \n \ +" + sizecacheCode + "\ ogEcho session \"[30] $MSG_HELP_ogUpdatePartitionTable "+n_disk+"\"\n \ +ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \ ogDeletePartitionTable "+n_disk+" \n \ ogUpdatePartitionTable "+n_disk+" \n \ " + cacheCode + "\ ogEcho session \"[70] $MSG_HELP_ogCreatePartitions " + partCode + "\"\n \ -ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + " \n \ -ogEcho session \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\"\n \ -ogSetPartitionActive "+n_disk+" 1 \n \ -ogEcho log session \"[90] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \ -ogUpdatePartitionTable "+n_disk+" \n \ -ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \ -ogExecAndLog command session log ogListPartitions "+n_disk+" \n"; +ogExecAndLog command ogCreatePartitions "+n_disk+" " + partCode + "\n \ +EVAL=$? \n \ +if [ $EVAL -eq 0 ]; then \n \ + ogEcho session \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\"\n \ + ogSetPartitionActive "+n_disk+" 1 \n \ + ogEcho log session \"[90] $MSG_HELP_ogListPartitions "+n_disk+"\"\n \ + ogUpdatePartitionTable "+n_disk+" \n \ + ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \ + ogExecAndLog command session log ogListPartitions "+n_disk+" \n \ +else \n \ + ogEcho session log \"[100] ERROR: $MSG_HELP_ogCreatePartitions\" \n \ + return $EVAL \n \ +fi \n "; // Formateo de la swap form.codigo.value += swapCode; @@ -395,7 +411,7 @@ form.codigo.value += swapCode; function showPartitionForm (tipo_table_part) { document.getElementById("form"+tipo_table_part).style.display="inline"; - if(tipo_table_part == "MSDOS"){ + if(tipo_table_part === "MSDOS"){ // De los dos tipos, se oculta el otro document.getElementById("formGPT").style.display="none"; document.getElementById("warngpt").style.display="none"; @@ -419,10 +435,9 @@ function showPartitionForm (tipo_table_part) { function clickPartitionCheckbox (form, npart, isGPT) { // Si el parametro no esta definido, se toma como false isGPT = (isGPT)?isGPT:"false"; - if(isGPT == true){ + var prefix=""; + if(isGPT === true){ prefix="GPT"; - } else { - prefix=""; } var partCheck=eval("form.check"+prefix+npart); var partType=eval("form.part"+prefix+npart); @@ -434,27 +449,23 @@ function clickPartitionCheckbox (form, npart, isGPT) { if (partCheck.checked) { partType.disabled=false; partSize.disabled=false; - if(npart != 4){ - if (partType.options[partType.selectedIndex].value == "CUSTOM") { + if(npart !== 4){ + if (partType.options[partType.selectedIndex].value === "CUSTOM") { partTypeCustom.disabled=false; } } - if (partSize.options[partSize.selectedIndex].value == "CUSTOM") { - partSizeCustom.disabled=false; - } else { - partSizeCustom.disabled=true; - } + partSizeCustom.disabled = partSize.options[partSize.selectedIndex].value !== "CUSTOM"; } else { partType.disabled=true; partSize.disabled=true; // El campo TypeCustom no existe para la particion 4 - if(npart != 4) + if(npart !== 4) partTypeCustom.disabled=true; partSizeCustom.disabled=true; } if (npart <= 4) { // Si el formulario es GPT no hay extendidas - if(isGPT != true){ + if(isGPT !== true){ checkExtendedPartition(form); } calculateFreeDisk(form); @@ -479,12 +490,17 @@ function getMinDiskSize(disk){ // Calcula el tamaño de la mayor cache y lo guarda en un campo oculto function getMaxCacheSize() { var cacheSizeArray = document.getElementsByName("cachesize"); - var maxSize = cacheSizeArray[0].value; - for(var i= 1; i < cacheSizeArray.length; i++){ + // Si no existe cache el valor es cero. + if (cacheSizeArray[0]) { + var maxSize = cacheSizeArray[0].value; + for(var i= 1; i < cacheSizeArray.length; i++){ if(maxSize < cacheSizeArray[i].value) maxSize = cacheSizeArray[i].value; - } - document.getElementById("maxcachesize").value = maxSize; + } + document.getElementById("maxcachesize").value = maxSize; + } else { + document.getElementById("maxcachesize").value = 0; + } } @@ -492,7 +508,7 @@ function getMaxCacheSize() { function validaCache (freedisk) { var form = document.fdatos; var maxcachesize = parseInt(document.getElementById("maxcachesize").value); - if(form.part4.value === "CACHE" && form.check4.checked && form.size4.value == 0 ){ + if(form.part4.value === "CACHE" && form.check4.checked && form.size4.value === 0 ){ return ((freedisk - maxcachesize) > 0); } return true; @@ -501,7 +517,7 @@ function validaCache (freedisk) { // Código para calcular el espacio libre del disco. function calculateFreeDisk(form) { // Si esta seleccionada la opcion GPT, se llama a la funcion correspondiente - if(document.getElementById("tipo_part_table").value == "GPT"){ + if(document.getElementById("tipo_part_table").value === "GPT"){ calculateFreeGPTDisk(form); } // Capturamos el disco seleccionado @@ -517,7 +533,7 @@ function calculateFreeDisk(form) { var partSize=eval("form.size"+npart); var partSizeCustom=eval("form.size"+npart+"custom"); if (partCheck.checked) { - if (partSize.options[partSize.selectedIndex].value == "CUSTOM") { + if (partSize.options[partSize.selectedIndex].value === "CUSTOM") { freeDisk.value -= parseInt(partSizeCustom.value); } else { freeDisk.value -= parseInt(partSize.options[partSize.selectedIndex].value); @@ -531,7 +547,7 @@ function calculateFreeDisk(form) { freeDisk.style.fontWeight = "normal"; freeDisk.style.fontStyle = "normal"; } - if (form.size4.value == 0) { + if (form.size4.value === 0) { freeDisk.value += " (- cache)"; // Aviso de caché sin modificar. } } @@ -539,7 +555,7 @@ function calculateFreeDisk(form) { // Código para calcular el espacio libre del disco. en el formulario GPT function calculateFreeGPTDisk(form) { // Si esta seleccionada la opcion MSDOS, se llama a la funcion correspondiente - if(document.getElementById("tipo_part_table").value == "MSDOS"){ + if(document.getElementById("tipo_part_table").value === "MSDOS"){ calculateFreeDisk(form); } // Capturamos el disco seleccionado @@ -549,13 +565,13 @@ function calculateFreeGPTDisk(form) { var freeDisk=document.getElementById("freediskGPT"); // Capturamos el numero de particiones que hay hechas - numParts=document.getElementById("numGPTpartitions").value; - for (npart=1; npart<=numParts; npart++) { + var numParts=document.getElementById("numGPTpartitions").value; + for (var npart=1; npart<=numParts; npart++) { var partCheck=eval("form.checkGPT"+npart); var partSize=eval("form.sizeGPT"+npart); var partSizeCustom=eval("form.sizeGPT"+npart+"custom"); if (partCheck.checked) { - if (partSize.options[partSize.selectedIndex].value == "CUSTOM") { + if (partSize.options[partSize.selectedIndex].value === "CUSTOM") { freeDisk.value -= parseInt(partSizeCustom.value); } else { freeDisk.value -= parseInt(partSize.options[partSize.selectedIndex].value); @@ -569,7 +585,7 @@ function calculateFreeGPTDisk(form) { freeDisk.style.fontWeight = "normal"; freeDisk.style.fontStyle = "normal"; } - if (form.size4.value == 0) { + if (form.size4.value === 0) { freeDisk.value += " (- cache)"; // Aviso de caché sin modificar. } } @@ -603,28 +619,28 @@ function addGPTPartition(){ partitionTypes+='<OPTION value="BIOS-BOOT"> BIOS Boot </OPTION>'; - table = document.getElementById("particionesGPT"); + var table = document.getElementById("particionesGPT"); // Capturamos el numero de particiones, antes incrementamos document.getElementById("numGPTpartitions").value = parseInt(document.getElementById("numGPTpartitions").value)+1; - numPart=document.getElementById("numGPTpartitions").value; - partitionRow = table.insertRow(-1); + var numPart=document.getElementById("numGPTpartitions").value; + var partitionRow = table.insertRow(-1); partitionRow.id = "trPartition"+numPart; partitionRow.innerHTML="<td> \ <input type='checkbox' name='checkGPT"+numPart+"' value='checkGPT"+numPart+"' onclick='clickPartitionCheckbox(this.form, "+numPart+",true);' /> Partición "+numPart+"</td> \ <td>\ <select name='partGPT"+numPart+"' id='partGPT"+numPart+"' style='width:220' disabled='true' onclick=' \ - if (this.options[this.selectedIndex].value == \'CUSTOM\') { \ + if (this.options[this.selectedIndex].value === \"CUSTOM\") { \ this.form.partGPT"+numPart+"custom.disabled=false; \ } else { \ this.form.partGPT"+numPart+"custom.disabled=true; \ }'><option value='CUSTOM'> Personalizar </option> \ </select> \ <br> \ -<select name='partGPT"+numPart+"custom' id='partGPT"+numPart+"custom' style='width:220' disabled='true' >"+partitionTypes+"</select> \ +<select name='partGPT"+numPart+"custom' id='partGPT"+numPart+"custom' style='width:220px' disabled='true' >"+partitionTypes+"</select> \ </td> \ <td> \ -<select name='sizeGPT"+numPart+"' id='sizeGPT"+numPart+"' style='width:220' disabled='true' onclick=' \ - if (this.form.size"+numPart+".options[this.form.size"+numPart+".selectedIndex].value == \'CUSTOM\') { \ +<select name='sizeGPT"+numPart+"' id='sizeGPT"+numPart+"' style='width:220px' disabled='true' onclick=' \ + if (this.form.size"+numPart+".options[this.form.size"+numPart+".selectedIndex].value === \"CUSTOM\") { \ this.form.sizeGPT"+numPart+"custom.disabled=false; \ } else { \ this.form.sizeGPT"+numPart+"custom.disabled=true; \ @@ -632,19 +648,19 @@ function addGPTPartition(){ ' onchange='calculateFreeGPTDisk(this.form);'>0<option value='CUSTOM'> Personalizar </option> \ </select> \ <br /> \ -<input type='text' style='width:100' name='sizeGPT"+numPart+"custom' value='0' disabled='true' onchange='calculateFreeDisk(this.form);' /> \ +<input type='text' style='width:100px' name='sizeGPT"+numPart+"custom' value='0' disabled='true' onchange='calculateFreeDisk(this.form);' /> \ </td>" } // Agrega una nueva fila a la tabla de particiones con una nueva particion function deleteGPTPartition(){ - table = document.getElementById("particionesGPT"); + var table = document.getElementById("particionesGPT"); // Capturamos el numero de particiones - numPart=document.getElementById("numGPTpartitions").value; + var numPart=document.getElementById("numGPTpartitions").value; // Si ya solo quedan 4 particiones, no se elimina ni se decrementa el contador if(numPart > 4){ - partitionRow = document.getElementById("trPartition"+numPart); + var partitionRow = document.getElementById("trPartition"+numPart); table.deleteRow(partitionRow.rowIndex); // Decrementamos el numero de particiones document.getElementById("numGPTpartitions").value = parseInt(document.getElementById("numGPTpartitions").value)-1; @@ -655,21 +671,21 @@ function deleteGPTPartition(){ function checkExtendedPartition(form) { var logical=document.getElementById("logicas"); var visible=false; - for (npart=1; npart<=4; npart++) { + for (var npart=1; npart<=4; npart++) { var partCheck=eval("form.check"+npart); var partType=eval("form.part"+npart); var partTypeCustom=eval("form.part"+npart+"custom"); if (partCheck.checked) { partType.style.fontWeight = "normal"; - if (partType.value == "EXTENDED") { + if (partType.value === "EXTENDED") { visible=true; partType.style.fontWeight = "bold"; } // La particion 4 no tiene partTypeCustom - if(npart != 4){ - partTypeCustom.style.fontWeight = "normal"; - if (partType.value == "CUSTOM" && partTypeCustom.value == "EXTENDED") { + if(npart !== 4){ + partTypeCustom.style.fontWeight = "normal"; + if (partType.value === "CUSTOM" && partTypeCustom.value === "EXTENDED") { visible=true; partTypeCustom.style.fontWeight = "bold"; } diff --git a/admin/WebConsole/barramenu.php b/admin/WebConsole/barramenu.php index 7584c0d3..881c4d7f 100644 --- a/admin/WebConsole/barramenu.php +++ b/admin/WebConsole/barramenu.php @@ -276,20 +276,14 @@ for ($i=0;$i<count($numidcentro);$i++) </select> <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD> -<TD width=4 align=middle><input name="submit" type="submit" value="Cambiar" ></input></TD> +<TD width=4 align=middle><input name="submit" type="submit" value="Cambiar"></TD> </form> <TD width=0 align=middle><IMG src="./images/iconos/separitem.gif"></TD> <TD><?php echo "Usuario.:.".ucwords($_SESSION["wusuario"]); ?></TD> -</TD> <?php } }?> - - - - - </TR> </TABLE> </TR> diff --git a/admin/WebConsole/clases/AdoPhp.php b/admin/WebConsole/clases/AdoPhp.php index 4265911c..b0dd5574 100644 --- a/admin/WebConsole/clases/AdoPhp.php +++ b/admin/WebConsole/clases/AdoPhp.php @@ -18,13 +18,13 @@ class Conexion{ var $controlador; // Controlador var $estado; // Estado de la conexion var $proveedor; // Proveedor de BD - var $error; // Colecci� de errores ocurridos durante el proceso (C�igo de error) - var $ultimoerror; // Ultimo error detectado - var $inderror; // Nmero de errores ocurridos durante el proceso + var $error; // Colección de errores ocurridos durante el proceso (Código de error) + var $ultimoerror; // Último error detectado + var $inderror; // Número de errores ocurridos durante el proceso var $msgerrores=array( "No se ha producido ningn error", - "001 : conexiónError - La conexion no se pudo establecer", - "002 : conexiónError - Se estableció la conexióncon el servidor pero la base de datos no responde", + "001 : conexiónError - La conexión no se pudo establecer", + "002 : conexiónError - Se estableció la conexión con el servidor pero la base de datos no responde", "003 : conexiónError - No se ha podido cerrar la actual conexión", "004 : conexiónError - El objeto está ocupado intentando establecer una conexiónanterior", "005 : conexiónError - La conexiónya está cerrada", @@ -653,7 +653,6 @@ class Recordset{ $this->campos=mysqli_fetch_array($this->filas); } } -} /* ------------------------------------------------------------------------------------------- Esta función devuelve una matriz asociativa con el nombre de los campos del recordset ---------------------------------------------------------------------------------------------*/ @@ -676,4 +675,5 @@ class Recordset{ } return($infocampos); } +} diff --git a/admin/WebConsole/clases/ArbolVistaXML.php b/admin/WebConsole/clases/ArbolVistaXML.php index 27ab3e1d..e83d448c 100644 --- a/admin/WebConsole/clases/ArbolVistaXML.php +++ b/admin/WebConsole/clases/ArbolVistaXML.php @@ -183,11 +183,9 @@ class ArbolVistaXML{ else $arbol='<TABLE style="BORDER-BOTTOM:#000000 1px solid;" border=0 cellspacing=0 cellpadding=0>'; $arbol.='<TR height="16px">'; - $atributosHTML=" "; $atributosHTML=$this->gXML->Atributos($nodo); $colornodo=""; $fondonodo=""; - $estilo=""; $atributosHTML=$this->gXML->TomaAtributoEspecial("colornodo",$colornodo,$atributosHTML); $atributosHTML=$this->gXML->TomaAtributoEspecial("fondonodo",$fondonodo,$atributosHTML); if ($colornodo!="" ) $colornodo=' COLOR:'.$colornodo.";"; @@ -196,7 +194,7 @@ class ArbolVistaXML{ if ($estilo!="" ) $estilo='style="'.$colornodo.$fondonodo.'"'; for ($i=0;$i<$nivel;$i++){ // Niveles previos - $arbol.='<TD '.$estilo.'width="3px"></TD>'; + $arbol.='<TD '.$estilo.' width="3px"></TD>'; $arbol.='<TD '.$estilo.' width="16px"><IMG src="'.$this->c_imgnivel[$i].'" width="16px" height="16px" ></TD>'; } $arbol.='<TD '.$estilo.' width="3px"></TD>'; // Desplazamiento de la imagen diff --git a/admin/WebConsole/clases/EncripDescrip.php b/admin/WebConsole/clases/EncripDescrip.php index c65c30a7..4752c8ad 100644 --- a/admin/WebConsole/clases/EncripDescrip.php +++ b/admin/WebConsole/clases/EncripDescrip.php @@ -52,4 +52,3 @@ class EncripDescrip{ return( $this->cadena); } } -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/MenuContextual.php b/admin/WebConsole/clases/MenuContextual.php index 7c49f5f2..1b108a4e 100644 --- a/admin/WebConsole/clases/MenuContextual.php +++ b/admin/WebConsole/clases/MenuContextual.php @@ -161,4 +161,3 @@ class MenuContextual{ return($layer); } } -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/SockHidra.php b/admin/WebConsole/clases/SockHidra.php index f3151b0f..4f49abba 100644 --- a/admin/WebConsole/clases/SockHidra.php +++ b/admin/WebConsole/clases/SockHidra.php @@ -3,18 +3,18 @@ include_once("EncripDescrip.php"); /*================================================================================ - Clase para conectarse con el servidor hidra y enviar comandos - Cualquier error producido en los procesos se puede recuperar con los m�odos + Clase para conectarse con el Servidor OpenGnsys y enviar comandos + Cualquier error producido en los procesos se puede recuperar con los métodos ================================================================================*/ class SockHidra{ - var $ultimoerror; // Ultimo error detectado - var $descripultimoerror; // Descripción del ltimo error detectado - var $socket; // Stream socket - var $servidor; // El servidor hidra - var $puerto; // El puerto odnde se conectar� - var $timeout; // El tiempo de espera para la conexi� - var $encripdescrip; // El encriptador - var $LONGITUD_TRAMA; // M�ima longitud de la trama + var $ultimoerror; // Ultimo error detectado + var $descripultimoerror; // Descripción del último error detectado + var $socket; // Stream socket + var $servidor; // El Servidor OpenGnsys + var $puerto; // El puerto donde se conectará + var $timeout; // El tiempo de espera para la conexión + var $encripdescrip; // El encriptador + var $LONGITUD_TRAMA; // Máxima longitud de la trama //________________________________________________________________________________________ // @@ -22,7 +22,7 @@ class SockHidra{ // Parámetros: // - servidor: El nombre o la IP del servidor // - puerto: El puerto usado para las comunicaciones - // - timeout: El tiempo de espera para la conexi� + // - timeout: El tiempo de espera para la conexión //________________________________________________________________________________________ function __construct($servidor, $puerto, $timeout=30){ $this->servidor=$servidor; @@ -36,7 +36,7 @@ class SockHidra{ } //________________________________________________________________________________________ // - // Averigua si el parametro pasado es una IP. devuelve true en caso afirmativo + // Averigua si el parámetro pasado es una IP. devuelve true en caso afirmativo //________________________________________________________________________________________ function _esIP(){ return(false); @@ -45,13 +45,13 @@ class SockHidra{ // // Conecta con el servidor // Devuelve: - // - false: Si falla la conexi� + // - false: Si falla la conexión // - true: En caso contrario //________________________________________________________________________________________ function conectar(){ $this->socket = socket_create (AF_INET, SOCK_STREAM, 0); if ($this->socket < 0) { - $this->ultimoerror=socket_strerror($socket); + $this->ultimoerror=socket_strerror($this->socket); $this->descripultimoerror="socket_create() fallo"; return(false); } @@ -65,9 +65,9 @@ class SockHidra{ } //________________________________________________________________________________________ // - // Cerrar la conexióncon el servidor + // Cierra la conexión con el servidor // Devuelve: - // - false: Si falla la conexi� + // - false: Si falla la conexión // - true: En caso contrario //________________________________________________________________________________________ function desconectar(){ @@ -75,21 +75,21 @@ class SockHidra{ } //________________________________________________________________________________________ // - // Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior. + // Devuelve el código del último error ocurrido durante el proceso anterior. //________________________________________________________________________________________ function UltimoError(){ return($this->ultimoerror); } //________________________________________________________________________________________ // - // Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior. + // Devuelve una cadena con el mensage del último error ocurrido durante el proceso anterior. //________________________________________________________________________________________ function DescripUltimoError(){ return($this->descripultimoerror); } //________________________________________________________________________________________ // - // Envia una petición de comando al servidor + // Envía una petición de comando al servidor // Parámetros: // - Parámetros: Parámetros del mensaje //________________________________________________________________________________________ @@ -102,7 +102,7 @@ class SockHidra{ } //________________________________________________________________________________________ // - // Envia una petición de información al servidor + // Envía una petición de información al servidor // Parámetros: // - Parámetros: Parámetros del mensaje //________________________________________________________________________________________ @@ -115,7 +115,7 @@ class SockHidra{ } //________________________________________________________________________________________ // - // Envia un mensaje al servidor + // Envía un mensaje al servidor // Parámetros: // - trama: Trama a enviar // - tipo: Tipo de mensaje @@ -157,7 +157,7 @@ class SockHidra{ global $LONCABECERA; global $LONBLK; - $lon=$lSize=0; + $lon=$hlonprm=$lSize=0; $buffer=""; $cadenaret=""; do{ @@ -168,16 +168,16 @@ class SockHidra{ if (substr($buffer,0,15)!="@JMMLCAMDJ_MCDJ") return($cadenaret); // No se reconoce la trama $hlonprm=hexdec(substr($buffer,$LONCABECERA,$LONHEXPRM)); - $lSize=$hlonprm; // Longitud total de la trama con los parametros encriptados + $lSize=$hlonprm; // Longitud total de la trama con los parámetros encriptados } }while($lon<$lSize); - $lon=$lSize-($LONCABECERA+$LONHEXPRM); // Longitud de los parametros aún encriptados - $parametros=substr($buffer,$LONCABECERA+$LONHEXPRM,$lon); // Parametros encriptados - $parametros=$this->encripdescrip->Desencriptar($parametros,$hlonprm); // Parametros sin encriptar + $lon=$lSize-($LONCABECERA+$LONHEXPRM); // Longitud de los parámetros aún encriptados + $parametros=substr($buffer,$LONCABECERA+$LONHEXPRM,$lon); // Parámetros encriptados + $parametros=$this->encripdescrip->Desencriptar($parametros,$hlonprm); // Parámetros sin encriptar $hlonprm=str_pad(dechex($lon),$LONHEXPRM,"0",STR_PAD_LEFT); // Rellena con ceros $cadenaret=substr($buffer,0,$LONCABECERA).$hlonprm.$parametros; return($cadenaret); } } -?> + diff --git a/admin/WebConsole/clases/XmlPhp.php b/admin/WebConsole/clases/XmlPhp.php index 55def93e..38711c02 100644 --- a/admin/WebConsole/clases/XmlPhp.php +++ b/admin/WebConsole/clases/XmlPhp.php @@ -282,4 +282,4 @@ class XmlPhp{ return($info); } } // Fin de la clase -?> + diff --git a/admin/WebConsole/comandos/Apagar.php b/admin/WebConsole/comandos/Apagar.php index 284b9cd0..ac316a2c 100644 --- a/admin/WebConsole/comandos/Apagar.php +++ b/admin/WebConsole/comandos/Apagar.php @@ -27,8 +27,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/Apagar.js"></SCRIPT> diff --git a/admin/WebConsole/comandos/Arrancar.php b/admin/WebConsole/comandos/Arrancar.php index a73e2d7f..21ff0b9d 100644 --- a/admin/WebConsole/comandos/Arrancar.php +++ b/admin/WebConsole/comandos/Arrancar.php @@ -27,8 +27,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/Arrancar.js"></SCRIPT> @@ -43,8 +43,7 @@ if (!$cmd) // include_once("./includes/FiltradoAmbito.php"); ?> - <P align=center><SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></p> - </BR> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></p> <TABLE id="tabla_conf" align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <TR> <TH align=center> </Th> diff --git a/admin/WebConsole/comandos/Comando.php b/admin/WebConsole/comandos/Comando.php index d4e7eff8..ccece6e6 100644 --- a/admin/WebConsole/comandos/Comando.php +++ b/admin/WebConsole/comandos/Comando.php @@ -27,8 +27,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/Comando.js"></SCRIPT> diff --git a/admin/WebConsole/comandos/Configurar.php b/admin/WebConsole/comandos/Configurar.php index 6ce89cfa..89e34713 100644 --- a/admin/WebConsole/comandos/Configurar.php +++ b/admin/WebConsole/comandos/Configurar.php @@ -53,9 +53,9 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <STYLE TYPE="text/css"></STYLE> <SCRIPT language="javascript" src="./jscripts/Configurar.js"></SCRIPT> @@ -126,7 +126,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; echo '<TD align=center>'.HTMLSELECT_particiones(0).'</TD>'; echo '<TD align=center>'.HTMLSELECT_tipospar($cmd,"").'</TD>'; echo '<TD align=center>'.HTMLSELECT_sistemasficheros($cmd,"").'</TD>'; - echo '<TD align=center><INPUT type="text" style="width:100" value="0"></TD>'; + echo '<TD align=center><INPUT type="text" style="width:100px" value="0"></TD>'; echo '<TD align=center> </TD>'; echo '<TD align=center>'.opeFormatear().'</TD></TR></TABlE>'; //________________________________________________________________________________________________________ diff --git a/admin/WebConsole/comandos/CrearImagen.php b/admin/WebConsole/comandos/CrearImagen.php index bab18e16..532a589a 100644 --- a/admin/WebConsole/comandos/CrearImagen.php +++ b/admin/WebConsole/comandos/CrearImagen.php @@ -38,7 +38,7 @@ if (!$resul){ <HTML> <HEAD> <TITLE>Administración web de aulas</TITLE> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/CrearImagen.js"></SCRIPT> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -51,11 +51,11 @@ if (!$resul){ $urlimg='../images/iconos/ordenador.gif'; $textambito=$TbMsg[15]; - echo '<p align=center><span class=cabeceras>'.$TbMsg[0].' </span><br>'; - echo '<IMG src="'.$urlimg.'"> <span align=center class=subcabeceras> - <U>'.$TbMsg[14].': '.$textambito.','.$nombreambito.'</U></span> </span></p>'; + echo '<p align="center"><span class="cabeceras">'.$TbMsg[0].' </span><br>'; + echo '<img src="'.$urlimg.'" alt="*"> <span align=center class=subcabeceras> + <u>'.$TbMsg[14].': '.$textambito.','.$nombreambito.'</u></span> </p>'; - echo '<P align=center><SPAN align=center class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></P>'."\n"; + echo '<p align="center"><SPAN class="subcabeceras">'.$TbMsg[6].'</span></p>'."\n"; if (tiene_repo($idambito)) { echo '<FORM align=center name="fdatos">'."\n". @@ -68,9 +68,8 @@ if (!$resul){ ' <TH align=center>'.$TbMsg["CREATE_NOREPO"].'</TH>'."\n". ' </TR>'."\n". '</TABLE>'."\n"; - } ?> + } -<?php //________________________________________________________________________________________________________ include_once("./includes/formularioacciones.php"); //________________________________________________________________________________________________________ @@ -83,8 +82,8 @@ if (!$resul){ <?php /************************************************************************************************************************************************** Recupera los datos de un ordenador - Parametros: - - cmd: Una comando ya operativo (con conexiónabierta) + Parámetros: + - cmd: Una comando ya operativo (con conexiónabierta) - ido: El identificador del ordenador ________________________________________________________________________________________________________*/ function tomaPropiedades($cmd,$ido){ @@ -93,11 +92,11 @@ function tomaPropiedades($cmd,$ido){ global $mac; global $idperfilhard; global $idrepositorio; - $rs=new Recordset; + $rs=new Recordset; $cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard,idrepositorio FROM ordenadores WHERE idordenador='".$ido."'"; - $rs->Comando=&$cmd; + $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset - $rs->Primero(); + $rs->Primero(); if (!$rs->EOF){ $nombreordenador=$rs->campos["nombreordenador"]; $ip=$rs->campos["ip"]; @@ -126,12 +125,12 @@ function HTMLSELECT_imagenes($cmd,$idrepositorio,$idperfilsoft,$disk,$particion, WHERE repositorios.idrepositorio = (SELECT idrepositorio FROM ordenadores WHERE ordenadores.ip='".$masterip."') OR repositorios.ip='".$masterip."' ORDER BY imagenes.descripcion"; - $rs=new Recordset; - $rs->Comando=&$cmd; + $rs=new Recordset; + $rs->Comando=&$cmd; $SelectHtml.= '<SELECT class="formulariodatos" id="despleimagen_'.$disk."_".$particion.'" style="WIDTH: 300">'; $SelectHtml.= ' <OPTION value="0"></OPTION>'; if ($rs->Abrir()){ - $rs->Primero(); + $rs->Primero(); while (!$rs->EOF){ $SelectHtml.='<OPTION value="'.$rs->campos["idimagen"]."_".$rs->campos["nombreca"]."_".$rs->campos["ip"].'"'; if($idperfilsoft==$rs->campos["idperfilsoft"]) $SelectHtml.=" selected "; diff --git a/admin/WebConsole/comandos/CrearImagenBasica.php b/admin/WebConsole/comandos/CrearImagenBasica.php index 875aeb40..d3d048ef 100644 --- a/admin/WebConsole/comandos/CrearImagenBasica.php +++ b/admin/WebConsole/comandos/CrearImagenBasica.php @@ -1,12 +1,12 @@ <?php // ************************************************************************************************************************************************* -// Aplicaci�n WEB: ogAdmWebCon -// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creaci�n: A�o 2012 -// Fecha �ltima modificaci�n: Noviembre-2012 +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2012 +// Fecha última modificación: Noviembre-2012 // Nombre del fichero: CrearImagenBas.php -// Descripci�n : -// Implementaci�n del comando "CrearImagenBas.php" +// Descripción : +// Implementación del comando "CrearImagenBas.php" // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); include_once("../clases/AdoPhp.php"); @@ -35,9 +35,9 @@ if (!$resul){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administraci�n web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/CrearImagenBasica.js"></SCRIPT> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -50,29 +50,27 @@ if (!$resul){ Cabecera -------------------------------------------------------------------------------------------> <P align=center class=cabeceras><?php echo $TbMsg[0] ?><P> - <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[1] ?></SPAN> - </BR> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[1] ?></SPAN></P> + <BR> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <TR> - <TH align=center> <?php echo $TbMsg[2] ?> </TD> + <TH align=center> <?php echo $TbMsg[2] ?> </TH> <?php echo '<TD>'.$nombreordenador.'</TD>';?> <TD colspan=2 valign=top align=left rowspan=3><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD> </TR> <TR> - <TH align=center> <?php echo $TbMsg[3] ?> </TD> + <TH align=center> <?php echo $TbMsg[3] ?> </TH> <?php echo '<TD>'.$ip.'</TD>';?> </TR> <TR> - <TH align=center> <?php echo $TbMsg[4] ?> </TD> + <TH align=center> <?php echo $TbMsg[4] ?> </TH> <?php echo '<TD>'.$mac.'</TD>';?> </TR> </TABLE> - </P> <!------------------------------------------------------------------------------------------ Subcabecera -------------------------------------------------------------------------------------------> - <P align=center><SPAN align=center class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p> <FORM align=center name="fdatos"> <TABLE width=90% align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <TR> @@ -114,7 +112,7 @@ if (!$resul){ /*---------------------------------------------------------------------------------------------- Recupera los datos de un ordenador - Parametros: + Parámetros: - ido: El identificador del ordenador ----------------------------------------------------------------------------------------------*/ function tomaPropiedades($cmd,$ido) @@ -126,8 +124,8 @@ function tomaPropiedades($cmd,$ido) $rs=new Recordset; $cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard,idrepositorio - FROM ordenadores - WHERE idordenador='".$ido."'"; + FROM ordenadores + WHERE idordenador='".$ido."'"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset $rs->Primero(); @@ -184,13 +182,11 @@ function HTMLSELECT_imagenes($idimagen) $SelectHtml=""; $cmd->texto="SELECT imagenes.idimagen,imagenes.descripcion,imagenes.nombreca,imagenes.ruta, - repositorios.ip,repositorios.nombrerepositorio - FROM imagenes - INNER JOIN repositorios on imagenes.idrepositorio = repositorios.idrepositorio - WHERE tipo=".$IMAGENES_BASICAS." - AND imagenes.idcentro=".$idcentro; - - //echo $cmd->texto; + repositorios.ip,repositorios.nombrerepositorio + FROM imagenes + INNER JOIN repositorios on imagenes.idrepositorio = repositorios.idrepositorio + WHERE tipo=".$IMAGENES_BASICAS." + AND imagenes.idcentro=".$idcentro; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(""); @@ -209,5 +205,4 @@ function HTMLSELECT_imagenes($idimagen) $SelectHtml.= '</SELECT>'; return($SelectHtml); } -?> diff --git a/admin/WebConsole/comandos/CrearSoftIncremental.php b/admin/WebConsole/comandos/CrearSoftIncremental.php index 87c3cb69..0381e4c6 100644 --- a/admin/WebConsole/comandos/CrearSoftIncremental.php +++ b/admin/WebConsole/comandos/CrearSoftIncremental.php @@ -1,12 +1,12 @@ <?php // ************************************************************************************************************************************************* -// Aplicaci�n WEB: ogAdmWebCon -// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creaci�n: A�o 2012 -// Fecha �ltima modificaci�n: Noviembre-2012 +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2012 +// Fecha última modificación: Noviembre-2012 // Nombre del fichero: CrearImagenBas.php -// Descripci�n : -// Implementaci�n del comando "CrearImagenBas.php" +// Descripción: +// Implementación del comando "CrearImagenBas.php" // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); include_once("../clases/AdoPhp.php"); @@ -26,19 +26,19 @@ include_once("./includes/capturaacciones.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ón con servidor B.D. //________________________________________________________________________________________________________ // $resul=tomaPropiedades($cmd,$idambito); if (!$resul){ - Header('Location: '.$pagerror.'?herror=3'); // Error de recuperaci�n de datos. + Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos. } //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administraci�n web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/CrearSoftIncremental.js"></SCRIPT> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -50,30 +50,29 @@ if (!$resul){ <!------------------------------------------------------------------------------------------ Cabecera -------------------------------------------------------------------------------------------> - <P align=center class=cabeceras><?php echo $TbMsg[0] ?><P> + <P align=center class=cabeceras><?php echo $TbMsg[0] ?></P> <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[1] ?></SPAN> - </BR> + <SPAN class=subcabeceras><?php echo $TbMsg[1] ?></SPAN> + <BR> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <TR> - <TH align=center> <?php echo $TbMsg[2] ?> </TD> + <TH align=center> <?php echo $TbMsg[2] ?> </TH> <?php echo '<TD>'.$nombreordenador.'</TD>';?> <TD colspan=2 valign=top align=left rowspan=3><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD> </TR> <TR> - <TH align=center> <?php echo $TbMsg[3] ?> </TD> + <TH align=center> <?php echo $TbMsg[3] ?> </TH> <?php echo '<TD>'.$ip.'</TD>';?> </TR> <TR> - <TH align=center> <?php echo $TbMsg[4] ?> </TD> + <TH align=center> <?php echo $TbMsg[4] ?> </TH> <?php echo '<TD>'.$mac.'</TD>';?> </TR> </TABLE> - </P> <!------------------------------------------------------------------------------------------ Subcabecera -------------------------------------------------------------------------------------------> - <P align=center><SPAN align=center class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p> <FORM align=center name="fdatos"> <TABLE width=90% align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <TR> @@ -115,7 +114,7 @@ if (!$resul){ /*---------------------------------------------------------------------------------------------- Recupera los datos de un ordenador - Parametros: + Parámetros: - ido: El identificador del ordenador ----------------------------------------------------------------------------------------------*/ function tomaPropiedades($cmd,$ido) @@ -154,13 +153,13 @@ function opcionesAdicionales() $tablaHtml.='<tr><th colspan=8 align=center><b> '.$TbMsg[11].' </b></th></tr>'; $tablaHtml.='<tr id="trOpc"> <td align=right>'.$TbMsg[13].'</td> - <td ><input type=checkbox name="bpi"></td>'; // Borrar imagen del servidor o borrar partici�n previamente + <td ><input type=checkbox name="bpi"></td>'; // Borrar imagen del servidor o borrar partición previamente $tablaHtml.=' <td align=right>'.$TbMsg[14].'</td> - <td><input type=checkbox name="cpc"></td>'; // Copiar adem�s la imagen a la cach� + <td><input type=checkbox name="cpc"></td>'; // Copiar además la imagen a la caché $tablaHtml.=' <td align=right>'.$TbMsg[15].'</td> - <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach� previamente antes de copiarla + <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la caché previamente antes de copiarla $tablaHtml.=' <td align=right>'.$TbMsg[16].'</td> <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino @@ -206,5 +205,4 @@ function HTMLSELECT_imagenes($idimagen) $SelectHtml.= '</SELECT>'; return($SelectHtml); } -?> diff --git a/admin/WebConsole/comandos/EjecutarScripts.php b/admin/WebConsole/comandos/EjecutarScripts.php index 539e78c4..d5c31b6a 100644 --- a/admin/WebConsole/comandos/EjecutarScripts.php +++ b/admin/WebConsole/comandos/EjecutarScripts.php @@ -26,8 +26,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/EjecutarScripts.js"></SCRIPT> @@ -45,8 +45,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[10] ?></SPAN> - <form align=center name="fdatos"> + <SPAN class=subcabeceras><?php echo $TbMsg[10] ?></SPAN> + <form name="fdatos"> <table align=center class=tabla_datos border="0" cellpadding="0" cellspacing="1"> <tr> <th><?php echo $TbMsg[12] ?></th> diff --git a/admin/WebConsole/comandos/EliminarImagenCache.php b/admin/WebConsole/comandos/EliminarImagenCache.php index a49f6eac..4fb0088a 100644 --- a/admin/WebConsole/comandos/EliminarImagenCache.php +++ b/admin/WebConsole/comandos/EliminarImagenCache.php @@ -28,9 +28,9 @@ if (!$cmd) //___________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administraci??n web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/EliminarImagenCache.js"></SCRIPT> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -159,9 +159,7 @@ switch($ambito){ <?php }?> <!-- //#agp--> - <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN> - </P> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></P> <form align=center name="fdatos"> <?php echo tabla_configuraciones($cmd,$idambito); ?> @@ -330,8 +328,7 @@ switch($ambito){ $tablaHtml=""; - $rs->Comando=&$cmd; - $rs=new Recordset; + $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset $rs->Primero(); @@ -415,9 +412,9 @@ switch($ambito){ if ($esdir[$numdir] == "d"){$ruta[$numdir]='rm%20-r%20/opt/opengnsys/cache/opt/opengnsys/images/'.$value;}else{$ruta[$numdir]='rm%20-r%20/opt/opengnsys/cache/opt/opengnsys/images/'.$value.$todo;} echo '<TR>'.chr(13); echo '<TD align=center> '.$contar.' </TD>'.chr(13); - if ($esdir[$numdir]=="d"){echo '<TD align=center><font color=blue> D </font></TD>'.chr(13);}else{echo '<TD align=center> F </TD>'.chr(13);} + if ($esdir[$numdir]=="d"){echo '<TD align=center><div style="color: blue"> D </div></TD>'.chr(13);}else{echo '<TD align=center> F </TD>'.chr(13);} echo '<TD align=center ><input type="radio" name="codigo" value='.$ruta[$numdir].'></TD>'.chr(13); - if ($esdir[$numdir]=="d"){echo '<TD align=center><font color=blue> '.$value.' </font></TD>'.chr(13);}else{echo '<TD align=center> '.$value.' </TD>'.chr(13);} + if ($esdir[$numdir]=="d"){echo '<TD align=center><div style="color: blue"> '.$value.' </div></TD>'.chr(13);}else{echo '<TD align=center> '.$value.' </TD>'.chr(13);} if ($cuentarepos==1){echo '<TD align=center> '.$tamanofich[0].'</TD>'.chr(13);} echo '</TR>'.chr(13); $contar++;$numdir++; diff --git a/admin/WebConsole/comandos/EliminarImagenRepositorio.php b/admin/WebConsole/comandos/EliminarImagenRepositorio.php index 7fbb046a..5708679c 100644 --- a/admin/WebConsole/comandos/EliminarImagenRepositorio.php +++ b/admin/WebConsole/comandos/EliminarImagenRepositorio.php @@ -16,12 +16,9 @@ include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".p include_once("../gestores/relaciones/imagenes_eliminacion.php"); -if (isset($_POST["opcion"])) {$opcion=$_POST["opcion"];}else{$opcion;} // Recoge parametros -//$opcion=$_POST["opcion"]; // Recoge parametros -if (isset($_POST["idrepositorio"])) {$idrepositorio=$_POST["idrepositorio"];}else{$idrepositorio;} -//$idrepositorio=$_POST["idrepositorio"]; +if (isset($_POST["opcion"])) {$opcion=$_POST["opcion"];}else{$opcion='';} // Recoge parametros +if (isset($_POST["idrepositorio"])) {$idrepositorio=$_POST["idrepositorio"];}else{$idrepositorio=0;} if (isset($_POST["grupoid"])) {$grupoid=$_POST["grupoid"];}else{$grupoid='';} -//$grupoid=$_POST["grupoid"]; $idcentro=$_SESSION["widcentro"]; if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros if (isset($_GET["idrepositorio"])) $idrepositorio=$_GET["idrepositorio"]; @@ -32,13 +29,12 @@ if (isset($_POST["modov"])) {$modov=$_POST["modov"];}else{$modov=0;} //________________________________________________________________________________________________________ $idcomando=10; $descricomando="Ejecutar Script"; -//echo $ambito."<br>"; -//echo $idambito."<br>"; $funcion="EjecutarScript"; -//echo $atributos."<br>"; -//echo $gestor; $gestor="../comandos/gestores/gestor_Comandos.php"; //$gestor="./ElimininarImagenRepositorio.php"; +$espaciorepos=array(); +$separarogunit=0; +$iprepositorio=''; //________________________________________________________________________________________________________ $cmd=CreaComando($cadenaconexion); if (!$cmd) @@ -145,8 +141,7 @@ $repolocal="si"; sort($imarepo); // Ordenamos el Array - if (isset($_POST["contar"])) {$cuantos=$_POST["contar"];}else{$cuantos=0;$contar;} - //$cuantos=$_POST["contar"]; + if (isset($_POST["contar"])) {$cuantos=$_POST["contar"];}else{$cuantos=0;} for ($i=1;$i<=$cuantos;$i++) { //######################################################################### @@ -242,8 +237,8 @@ $repolocal="no"; ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -268,10 +263,10 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <?php if ($espaciorepo != ""){?> <TR> - <TH align=center> <?php echo $TbMsg[18]?> </TD> - <TH align=center> <?php echo $TbMsg[19]?> </TD> - <TH align=center> <?php echo $TbMsg[20]?> </TD> - <TH align=center> <?php echo $TbMsg[21]?> </TD> + <TH align=center> <?php echo $TbMsg[18]?> </TH> + <TH align=center> <?php echo $TbMsg[19]?> </TH> + <TH align=center> <?php echo $TbMsg[20]?> </TH> + <TH align=center> <?php echo $TbMsg[21]?> </TH> </TR> <TR> <TD align=center width=110> <?php echo $totalrepo?> </TD> @@ -281,7 +276,7 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me </TR> <?php }else {?> <TR> - <TH align=center width=485> <?php echo $TbMsg[22]?> </TD> + <TH align=center width=485> <?php echo $TbMsg[22]?> </TH> </TR> <?php } ?> @@ -292,7 +287,7 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me <div align=center class=subcabeceras><?php echo $TbMsg[7] ?> - <form align="center" name="modoadmin" action="./EliminarImagenRepositorio.php" method="post"> + <form name="modoadmin" action="./EliminarImagenRepositorio.php" method="post"> <INPUT type="hidden" name="opcion" value="<?php echo $opcion?>"> <INPUT type="hidden" name="idrepositorio" value="<?php echo $idrepositorio?>"> <INPUT type="hidden" name="grupoid" value="<?php echo $grupoid ?>"> @@ -517,11 +512,11 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me if ($bustor<>"") { - echo '<TD align=center><font color=red><strong> '.$TbMsg[14].'</strong></TD>'.chr(13); + echo '<TD align=center><div style="color: red; font-weight: bold;"> '.$TbMsg[14].'</div></TD>'.chr(13); } elseif (file_exists($ficherodelete)) { - echo '<TD align=center><font color=red><strong> '.$TbMsg[15].'</strong></TD>'.chr(13);} + echo '<TD align=center><div style="color: red; font-weight: bold;"><div> '.$TbMsg[15].'</div></TD>'.chr(13);} else { echo '<TD align=center ><input type="checkbox" name="checkbox'.$contar.'" value="si"></TD>'.chr(13); @@ -530,11 +525,11 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me // ########## Tipo #################################################################### if ($tipo[$contandotipo]=="D") { - echo '<TD align=center ><font color=blue>'.$tipo[$contandotipo].'</TD>'.chr(13); + echo '<TD align=center ><div style="color: blue;">'.$tipo[$contandotipo].'</div></TD>'.chr(13); } elseif ($tipo[$contandotipo]=="B") { - echo '<TD align=center><font color=red> '.$tipo[$contandotipo].' </TD>'.chr(13); + echo '<TD align=center><div style="color: red;"> '.$tipo[$contandotipo].' </div></TD>'.chr(13); }else{ echo '<TD align=center >'.$tipo[$contandotipo].'</TD>'.chr(13); } @@ -548,8 +543,8 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me // ########## Aviso si directorio distinto al del centro - en vista repositorio ########## $aviso=''; if ($separarogunit == 1) { - if ( $nombrecaidcentro != 0 and "/".$imgdir != $dircentros[$nombrecaidcentro]){ - $aviso="<font color=red> * </font>"; + if ( $nombrecaidcentro != 0 and "/".$imgdir != $dircentros[$nombrecaidcentro]){ + $aviso="<style=\"color: red;\"> * </div>"; $textoaviso="<tr>\n <th colspan='7' align='center'>". " <sup>*</sup> $TbMsg[33] </th>\n". "</tr>\n"; @@ -559,7 +554,7 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me // ########## Nombre de Imagen ######################################################## if ($tipo[$contandotipo]=="D") { - echo '<TD align=center><font color=blue> '.str_replace(":"," / ",$value).' '.$aviso.' </TD>'.chr(13); + echo '<TD align=center><div style="color: blue;"> '.str_replace(":"," / ",$value).' '.$aviso.' </div></TD>'.chr(13); } else { @@ -579,9 +574,9 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me } elseif (preg_match("/.ant/",$nombrefichero)) { - echo '<TD align=center><font color=red> ------</strong></TD>'.chr(13); + echo '<TD align=center><div style="color: red;"> ------</div></TD>'.chr(13); }else{ - echo '<TD align=center><font color=red> '.$TbMsg[25].'</strong></TD>'.chr(13); + echo '<TD align=center><div style="color: red;"> '.$TbMsg[25].'</div></TD>'.chr(13); } // VISTA REPOSITORIO COMPLETO if ($modov == 1){ @@ -609,7 +604,7 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me <INPUT type="hidden" name="grupoid" value="<?php echo $grupoid ?>"> <INPUT type="hidden" name="modov" value="<?php echo $modov; ?>"> - </TABLE><BR/> + </TABLE><P> <TABLE align=center> <TR> <TD></TD> @@ -627,4 +622,3 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me </HTML> <?php } ?> - diff --git a/admin/WebConsole/comandos/EnviarMensaje.php b/admin/WebConsole/comandos/EnviarMensaje.php index 15e9237a..9f2f97a6 100644 --- a/admin/WebConsole/comandos/EnviarMensaje.php +++ b/admin/WebConsole/comandos/EnviarMensaje.php @@ -5,7 +5,7 @@ // Fecha Creación: Año 2009-2010 // Fecha Última modificación: Agosto-2010 // Nombre del fichero: Comando.php -// Descripción : +// Descripción: // Implementación del comando "EjecutarScripts" // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); @@ -26,8 +26,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/EnviarMensaje.js"></SCRIPT> @@ -45,10 +45,8 @@ if (!$cmd) include_once("./includes/FiltradoAmbito.php"); //________________________________________________________________________________________________________ ?> - <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[10] ?></SPAN> - <form align=center name="fdatos"> - + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[10] ?></SPAN></P> + <form name="fdatos"> <table align=center class=tabla_datos border="0" cellpadding="0" cellspacing="1"> <tr> <th> <?php echo $TbMsg[7]?> </th> @@ -67,7 +65,7 @@ if (!$cmd) // Sólo permite ejecutar inmediantemente como opción de ejecución // include_once("./includes/opcionesacciones.php") ?> - <P align=center><span align=center class=subcabeceras>Opciones de Ejecución</span></P> + <P align=center><span class=subcabeceras>Opciones de Ejecución</span></P> <table align=center> <tr> <td><img border=0 style="cursor:pointer" src="../images/boton_aceptar_esp.gif" onclick="confirmar()" ></td> @@ -89,7 +87,7 @@ if (!$cmd) </tr> </table> - </FORM> + </form> <SCRIPT language="javascript"> Sondeo(); </SCRIPT> diff --git a/admin/WebConsole/comandos/IniciarSesion.php b/admin/WebConsole/comandos/IniciarSesion.php index 404a004d..5bcf5b9f 100644 --- a/admin/WebConsole/comandos/IniciarSesion.php +++ b/admin/WebConsole/comandos/IniciarSesion.php @@ -6,7 +6,7 @@ // Fecha Última modificación: Agosto-2010 // Nombre del fichero: IniciarSesion.php // Descripción : -// Implementación� del comando "Iniciar Sesión" +// Implementación del comando "Iniciar Sesión" // Version 0.1 - En ambito distinto a ordenador muestra los equipos agrupados en configuraciones iguales. // Fecha: 2014-10-23 // Autora: Irina Gomez, ETSII Universidad de Sevilla @@ -32,9 +32,9 @@ if (!$cmd) //___________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/IniciarSesion.js"></SCRIPT> <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> @@ -56,11 +56,10 @@ if (!$cmd) $cadenaip=""; $cadenamac=""; RecopilaIpesMacs($cmd,$ambito,$idambito); - + ?> - <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN> - </BR> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></P> + <BR> <form align=center name="fdatos" method="POST"> <INPUT type="hidden" name="idambito" value="<?php echo $idambito?>"> <INPUT type="hidden" name="ambito" value="<?php echo $ambito?>"> @@ -84,7 +83,7 @@ if (!$cmd) <?php /************************************************************************************************************************************************** Recupera los datos de un ordenador - Parametros: + Parámetros: - cmd: Una comando ya operativo (con conexiónabierta) - ido: El identificador del ordenador ________________________________________________________________________________________________________*/ @@ -134,9 +133,7 @@ function tabla_configuraciones($cmd,$idordenador){ AND tipospar.clonable=1 AND nombresos.nombreso!='DATA' ORDER BY ordenadores_particiones.numpar"; - - $rs->Comando=&$cmd; - $rs=new Recordset; + $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset $rs->Primero(); @@ -153,5 +150,3 @@ function tabla_configuraciones($cmd,$idordenador){ $rs->Cerrar(); return($tablaHtml); } -?> - diff --git a/admin/WebConsole/comandos/InventarioHardware.php b/admin/WebConsole/comandos/InventarioHardware.php index afba8f2d..b722f6d2 100644 --- a/admin/WebConsole/comandos/InventarioHardware.php +++ b/admin/WebConsole/comandos/InventarioHardware.php @@ -27,8 +27,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/InventarioHardware.js"></SCRIPT> diff --git a/admin/WebConsole/comandos/InventarioSoftware.php b/admin/WebConsole/comandos/InventarioSoftware.php index b8756ec9..e0d98da4 100644 --- a/admin/WebConsole/comandos/InventarioSoftware.php +++ b/admin/WebConsole/comandos/InventarioSoftware.php @@ -26,8 +26,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/InventarioSoftware.js"></SCRIPT> @@ -64,12 +64,11 @@ switch($ambito){ echo '<IMG src="'.$urlimg.'"> <span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span> </span></p>'; ?> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> - <P align=center> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN> - </p> + <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></p> + <?php echo tablaConfiguracionesInventarioSoftware($cmd,$idambito); ?> - </BR> + <BR> <?php //________________________________________________________________________________________________________ include_once("./includes/formularioacciones.php"); diff --git a/admin/WebConsole/comandos/Reiniciar.php b/admin/WebConsole/comandos/Reiniciar.php index 0f759e20..ea8817cc 100644 --- a/admin/WebConsole/comandos/Reiniciar.php +++ b/admin/WebConsole/comandos/Reiniciar.php @@ -27,8 +27,8 @@ if (!$cmd) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="./jscripts/Reiniciar.js"></SCRIPT> diff --git a/admin/WebConsole/comandos/RestaurarImagen.php b/admin/WebConsole/comandos/RestaurarImagen.php index 047f6174..e052feb9 100644 --- a/admin/WebConsole/comandos/RestaurarImagen.php +++ b/admin/WebConsole/comandos/RestaurarImagen.php @@ -58,9 +58,9 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <STYLE TYPE="text/css"></STYLE> <SCRIPT language="javascript" src="./jscripts/RestaurarImagen.js"></SCRIPT> diff --git a/admin/WebConsole/comandos/RestaurarImagenBasica.php b/admin/WebConsole/comandos/RestaurarImagenBasica.php index d7be1eec..77faeb4d 100644 --- a/admin/WebConsole/comandos/RestaurarImagenBasica.php +++ b/admin/WebConsole/comandos/RestaurarImagenBasica.php @@ -1,12 +1,12 @@ <?php // ******************************************************************************************************** -// Aplicaci�n WEB: ogAdmWebCon -// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creaci�n: A�o 2012 -// Fecha �ltima modificaci�n: Noviembre-2012 +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2012 +// Fecha última modificación: Noviembre-2012 // Nombre del fichero: RestaurarImagenBasica.php -// Descripci�n : -// Implementaci�n del comando "RestaurarImagenB�sica" +// Descripción: +// Implementación del comando "RestaurarImagenBasica" // ******************************************************************************************************** include_once("../includes/ctrlacc.php"); include_once("../clases/AdoPhp.php"); @@ -27,11 +27,11 @@ include_once("../includes/ConfiguracionesParticiones.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ón con servidor B.D. //________________________________________________________________________________________________________ // // -// Captura par�metros +// Captura parámetros //________________________________________________________________________________________________________ // @@ -44,23 +44,23 @@ $fk_sysFi=0; $fk_tamano=0; $fk_nombreSO=0; -if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; -if (isset($_GET["ambito"])) $ambito=$_GET["ambito"]; +if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; +if (isset($_GET["ambito"])) $ambito=$_GET["ambito"]; -if (isset($_POST["idambito"])) $idambito=$_POST["idambito"]; -if (isset($_POST["ambito"])) $ambito=$_POST["ambito"]; +if (isset($_POST["idambito"])) $idambito=$_POST["idambito"]; +if (isset($_POST["ambito"])) $ambito=$_POST["ambito"]; -if (isset($_POST["fk_sysFi"])) $fk_sysFi=$_POST["fk_sysFi"]; -if (isset($_POST["fk_tamano"])) $fk_tamano=$_POST["fk_tamano"]; -if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; +if (isset($_POST["fk_sysFi"])) $fk_sysFi=$_POST["fk_sysFi"]; +if (isset($_POST["fk_tamano"])) $fk_tamano=$_POST["fk_tamano"]; +if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; //________________________________________________________________________________________________________ // ?> <HTML> -<TITLE>Administraci�n web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <STYLE TYPE="text/css"></STYLE> <SCRIPT language="javascript" src="./jscripts/RestaurarImagenBasica.js"></SCRIPT> @@ -142,7 +142,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; /*________________________________________________________________________________________________________ - Crea la etiqueta html <SELECT> de las im�genes + Crea la etiqueta html <SELECT> de las imágenes ________________________________________________________________________________________________________*/ function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw,$idordenadores,$ambito) { @@ -216,5 +216,3 @@ function opcionesAdicionales() echo $tablaHtml; } -?> - diff --git a/admin/WebConsole/comandos/RestaurarSoftIncremental.php b/admin/WebConsole/comandos/RestaurarSoftIncremental.php index 3075819d..a2e03d15 100644 --- a/admin/WebConsole/comandos/RestaurarSoftIncremental.php +++ b/admin/WebConsole/comandos/RestaurarSoftIncremental.php @@ -1,12 +1,12 @@ <?php // ******************************************************************************************************** -// Aplicaci�n WEB: ogAdmWebCon -// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla -// Fecha Creaci�n: A�o 2012 -// Fecha �ltima modificaci�n: Noviembre-2012 +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2012 +// Fecha última modificación: Noviembre-2012 // Nombre del fichero: RestaurarSoftIncremental.php -// Descripci�n : -// Implementaci�n del comando "RestaurarSoftIncremental" +// Descripción: +// Implementación del comando "RestaurarSoftIncremental" // ******************************************************************************************************** include_once("../includes/ctrlacc.php"); include_once("../clases/AdoPhp.php"); @@ -27,11 +27,11 @@ include_once("../includes/ConfiguracionesParticiones.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ón con servidor B.D. //________________________________________________________________________________________________________ // // -// Captura par�metros +// Captura parámetros //________________________________________________________________________________________________________ // @@ -58,9 +58,9 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; // ?> <HTML> -<TITLE>Administraci�n web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <STYLE TYPE="text/css"></STYLE> <SCRIPT language="javascript" src="./jscripts/RestaurarSoftIncremental.js"></SCRIPT> @@ -139,7 +139,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; /*________________________________________________________________________________________________________ - Crea la etiqueta html <SELECT> de las im�genes + Crea la etiqueta html <SELECT> de las imágenes ________________________________________________________________________________________________________*/ function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw,$idordenadores,$ambito) { @@ -192,29 +192,24 @@ function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw,$idordenado ----------------------------------------------------------------------------------------------*/ function opcionesAdicionales() { - global $TbMsg; - + global $TbMsg; + $tablaHtml='<table style="display:none" width="95%" align=center border=0 cellPadding=0 cellSpacing=0 class="tabla_accesos">'; $tablaHtml.='<tr><th colspan=8 align=center><b> '.$TbMsg[11].' </b></th></tr>'; $tablaHtml.='<tr id="trOpc"> <td align=right>'.$TbMsg[35].'</td> - <td><input type=checkbox name="bpi"></td>'; // Borrar imagen previamente del servidor - $tablaHtml.=' + <td><input type=checkbox name="bpi"></td>'; // Borrar imagen previamente del servidor + $tablaHtml.=' <td align=right>'.$TbMsg[36].'</td> - <td><input type=checkbox name="cpc"></td>'; // Copiar adem�s la imagen a la cach� - $tablaHtml.=' + <td><input type=checkbox name="cpc"></td>'; // Copiar además la imagen a la caché + $tablaHtml.=' <td align=right>'.$TbMsg[37].'</td> - <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach� previamente antes de copiarla - $tablaHtml.=' + <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la caché previamente antes de copiarla + $tablaHtml.=' <td align=right>'.$TbMsg[39].'</td> - <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino + <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino $tablaHtml.='</tr>'; $tablaHtml.=' </table>'; echo $tablaHtml; } - -?> - - - diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php index b2a81b79..dd83efd5 100644 --- a/admin/WebConsole/comandos/gestores/gestor_Comandos.php +++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php @@ -20,6 +20,10 @@ include_once("../../includes/RecopilaIpesMacs.php"); //________________________________________________________________________________________________________ include_once("../includes/capturaacciones.php"); //________________________________________________________________________________________________________ + +define("IDCOMANDWAKEUP", 1); +define("IDCOMANDSENDMESSAGE", 16); + // Recoge parametros de seguimiento $sw_ejya=""; $sw_seguimiento=""; @@ -73,7 +77,6 @@ $atributos=str_replace('$',chr(9),$atributos); <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> -<BODY> <SCRIPT language="javascript" src="../jscripts/comunescomandos.js"></SCRIPT> <?php echo '<SCRIPT language="javascript" src="../../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?> @@ -174,9 +177,8 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $ValorParametros=extrae_parametros($parametros,chr(13),'='); $script=@urldecode($ValorParametros["scp"]); if($sw_ejya=='on'){ - // comando 16 sólo agente nuevo - if ($idcomando != 16){ - // Envio al servidor + if ($idcomando != IDCOMANDSENDMESSAGE && $idcomando != IDCOMANDWAKEUP) { + // Envío al servidor $shidra=new SockHidra($servidorhidra,$hidraport); if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra $parametros.=$aplicacion; @@ -199,7 +201,7 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $resulhidra = 1; } - // Comprobamos si el comando es soportado por el nuevo ogAgent + // Comprobamos si el comando es soportado por el nuevo ogAgent $numip=0; $ogAgentNuevo = false; switch ($idcomando) { @@ -228,7 +230,7 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ break; } - // Se envía acción al nuevo ogAgent + // Se envía acción al nuevo ogAgent if ( $ogAgentNuevo ) { // Send REST requests to new OGAgent clients. $urls = array(); @@ -241,7 +243,6 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $urls[$ip]['url'] = "https://$ip:8000/opengnsys/$urlcomando"; if (isset($auxKey[$i])) $urls[$ip]['header'] = Array("Authorization: ".$auxKey[$i]); if (isset($paramsPost)) $urls[$ip]['post'] = $paramsPost; - $i++; } // Launch concurrent requests. @@ -384,6 +385,8 @@ if ($resul){ } } ?> +</HEAD> +<BODY> </BODY> </HTML> diff --git a/admin/WebConsole/comandos/gestores/wakeonlan_repo.php b/admin/WebConsole/comandos/gestores/wakeonlan_repo.php index b2929d48..68922c41 100644 --- a/admin/WebConsole/comandos/gestores/wakeonlan_repo.php +++ b/admin/WebConsole/comandos/gestores/wakeonlan_repo.php @@ -43,19 +43,24 @@ foreach($macs as $mac){ } $rs->Cerrar(); } + +//Multicast or Unicast +$typeWol = preg_match_all('!\d{1}!', $atributos, $matches); + // En este punto tenemos un array con todos los repos y cada uno de ellos con una lista de todas las macs que deben arrancar // Recorremos cada uno de ellos foreach($reposAndMacs as $repo => $macs){ // En el array de $macs tenemos la clave "apikey" - if($macs["apikey"] !== ""){ + if($macs["apikey"] !== "") { $apiKeyRepo = $macs["apikey"]; unset($macs["apikey"]); // Componer datos de conexión para el repositorio. $urls[$repo]['url'] = "https://$repo/opengnsys/rest/repository/poweron"; $urls[$repo]['header'] = array('Authorization: '. $apiKeyRepo); - $urls[$repo]['post'] = '{"macs": ["' . implode('","', $macs) . '"]}'; + $urls[$repo]['post'] = '{"macs": ["' . implode('","', $macs) . '"], "ips": ["' . str_replace(';', '","', $cadenaip) . + '"], "mar": "' . $matches[0][0] . '"}'; } - else{ + else { $avisoRepo = true; } } @@ -76,10 +81,11 @@ function existREPO($repo, $repos){ $index = 0; while(!$found && $index < count($repos)){ $r = $repos[$index]; + $index++; if($r == $repo) $found=true; } return $found; } -?> + diff --git a/admin/WebConsole/comandos/includes/FiltradoAmbito.php b/admin/WebConsole/comandos/includes/FiltradoAmbito.php index 490969f7..42ca61e7 100644 --- a/admin/WebConsole/comandos/includes/FiltradoAmbito.php +++ b/admin/WebConsole/comandos/includes/FiltradoAmbito.php @@ -1,400 +1,399 @@ -<?php
-// ******************************************************************************************************************
-// Aplicación WEB: ogAdmWebCon
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: Año 2012
-// Fecha última modificación: Febrero-2012
-// Nombre del fichero: FiltradoAmbito.php
-// Descripción :
-// Colección de funciones en php y javascript que implementan la posibilidad de aplicar filtro de selección
-// a un determinado grupo de ordenadores dentro de un aula para aplicarles comandos.
-//
-// ********************************************************************************************************************
-//
-include_once("../idiomas/php/".$idioma."/estados_".$idioma.".php");
-
-$cadenaip="";
-$cid=0; // Identificadores para tablas de ordenadores
-switch($ambito)
-{
- case $AMBITO_CENTROS :
- $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
- RecorriendoCentro($cmd);
- break;
- case $AMBITO_GRUPOSAULAS :
- $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE tipo=".$AMBITO_GRUPOSAULAS." AND idgrupo=".$idambito;
- RecorriendoGruposAulas($cmd);
- break;
- case $AMBITO_AULAS :
- $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
- RecorriendoAulas($cmd);
- break;
- case $AMBITO_GRUPOSORDENADORES :
- $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
- RecorriendoGruposOrdenadores($cmd);
- break;
-}
-echo '<P><INPUT type="hidden" id="cadenaip" value="'.$cadenaip.'"></P>';
-//________________________________________________________________________________________________________
-//
-function RecorriendoCentro($cmd)
-{
- global $AMBITO_GRUPOSAULAS;
- global $TbMsg;
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- if(!$rs->EOF){
- $idcentro=$rs->campos["idcentro"];
- $nombrecentro=$rs->campos["nombrecentro"];
-
- $urlimg='../images/iconos/centros.gif';
- $ambito=$TbMsg[0];
- echo '<p align=center><IMG src="'.$urlimg.'">
- <span align=center class=subcabeceras><U>'.$ambito.':'.$nombrecentro.'</U></span></p>';
-
- $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0
- AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo ";
- RecorriendoGruposAulas($cmd);
- $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
- RecorriendoAulas($cmd);
- }
- $rs->Cerrar();
-}
-//________________________________________________________________________________________________________
-//
-function RecorriendoGruposAulas($cmd)
-{
- global $AMBITO_GRUPOSAULAS;
- global $TbMsg;
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- while (!$rs->EOF){
- $idgrupo=$rs->campos["idgrupo"];
- $nombregrupo=$rs->campos["nombregrupo"];
-
- $urlimg='../images/iconos/carpeta.gif';
- $ambito=$TbMsg[1];
- echo '<p align=center><IMG src="'.$urlimg.'">
- <span align=center class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>';
-
- $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo."
- AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
- RecorriendoGruposAulas($cmd);
- $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula";
- RecorriendoAulas($cmd);
- $rs->Siguiente();
- }
- $rs->Cerrar();
-}
-//________________________________________________________________________________________________________
-//
-function RecorriendoAulas($cmd)
-{
- global $TbMsg;
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- while (!$rs->EOF){
- $idaula=$rs->campos["idaula"];
- $nombreaula=$rs->campos["nombreaula"];
-
- $urlimg='../images/iconos/aula.gif';
- $ambito=$TbMsg[2];
- echo '<p align=center><IMG src="'.$urlimg.'">
- <span align=center class=subcabeceras><U>'.$ambito.':'.$nombreaula.'</U></span></p>';
-
- $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula;
- RecorriendoOrdenadores($cmd);
- $rs->Siguiente();
- }
- $rs->Cerrar();
-}
-//________________________________________________________________________________________________________
-//
-function RecorriendoGruposOrdenadores($cmd)
-{
- global $TbMsg;
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- while (!$rs->EOF){
- $idgrupo=$rs->campos["idgrupo"];
- $nombregrupo=$rs->campos["nombregrupo"];
-
- $urlimg='../images/iconos/carpeta.gif';
- $ambito=$TbMsg[3];
- echo '<p align=center><IMG src="'.$urlimg.'">
- <span align=center class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>';
-
- $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
- RecorriendoGruposOrdenadores($cmd);
- $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo;
- RecorriendoOrdenadores($cmd);
- $rs->Siguiente();
- }
- $rs->Cerrar();
-}
-//____________________________________________________________________________________________________
-//
-function RecorriendoOrdenadores($cmd)
-{
- global $TbMsg;
- global $cadenaip;
- global $cid;
-
- $cid++;
- $cmd->texto.= " ORDER BY nombreordenador";
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- $htmlCode="";
- $con=0;
-
- $htmlCode.='
-<TABLE border=0 class="tabla_busquedas" align=center>
-<TR>
-
-<TD align="center">'.$TbMsg["STATUS_OFF"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,1,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_BSY"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,2,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_OPG"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,3,'.$cid.')"></TD>
-</TR>
-
-<TR>
-<TD align="center">'.$TbMsg["STATUS_WIN"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,4,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_WINS"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,5,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_LNX"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,6,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_LNXS"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,7,'.$cid.')"></TD>
-
-<TD align="center">'.$TbMsg["STATUS_OSX"].'</TD>
-<TD><INPUT type="checkbox" checked onclick="selector(this,8,'.$cid.')"></TD>
-
-</TR>
-</TABLE>';
-
- $htmlCode.='<BR>';
- $htmlCode.='<TABLE id="tbo-'.$cid.'" border=0 align=center>';
- $htmlCode.='<TR>';
-
- while (!$rs->EOF){
- $htmlCode.= '<TD style="border: 1px solid #999999;">';
- $nombreordenador=$rs->campos["nombreordenador"];
- $ip=$rs->campos["ip"];
- $cadenaip.=$ip.";";
- $htmlCode.='<TABLE cellspacing=1 cellpadding=0>';
- $htmlCode.=' <TR><TD align="center"><img sondeo="ordenador_OFF.png" id="img-'.$ip.'" width=24 src="../images/ordenador_OFF.png"></TD></TR>';
- $htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:9px; COLOR: #4f4f4f;">'.$nombreordenador.'</SPAN></TD></TR>';
- $htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:8px; COLOR: #4f4f4f;">'.$ip.'</SPAN></TD></TR>';
- $htmlCode.=' <TR><TD align="center"><INPUT id="chk-'.$ip.'" type="checkbox" checked></TD></TR>';
- $htmlCode.='</TABLE>';
- $htmlCode.='</TD>';
- $con++;
- if($con>15){
- $htmlCode.='</TR>';
- $htmlCode.='<TR>';
- $con=0;
- }
- $rs->Siguiente();
- }
- $htmlCode.='</TR>';
- $htmlCode.='</TABLE>';
- echo $htmlCode;
-}
-//______________________________________________________________________________________________________
-//
-echo '<SCRIPT language="javascript">';
-echo 'var cid='.$cid.';';
-echo '</SCRIPT>';
-?>
-<SCRIPT language="javascript">
-function Sondeo(){
- var ambito=<?php echo $ambito?>;
- var idambito=<?php echo $idambito?>;
- var wurl="../principal/sondeo.php";
- var prm="ambito="+ambito+"&idambito="+idambito+"&sw=1";
- CallPage(wurl,prm,"retornoSondeo","POST");
- setTimeout("respuestaSondeo();",100);
-}
-//______________________________________________________________________________________________________
-//
-function retornoSondeo(resul)
-{
- // No se hace nada
-}
-//________________________________________________________________________________________________________
-//
-function respuestaSondeo(){
- var ambito=<?php echo $ambito?>;
- var idambito=<?php echo $idambito?>;
- var wurl="../principal/sondeo.php";
- var prm="ambito="+ambito+"&idambito="+idambito+"&sw=2";
- CallPage(wurl,prm,"retornorespuestaSondeo","POST");
- setTimeout("respuestaSondeo();",5000);
-}
-//______________________________________________________________________________________________________
-//
-function retornorespuestaSondeo(resul)
-{
- if(resul.length>0){
- var ip=""; // Dirección IP del ordenador
- var so=""; // Sistema operativo activo
- var objOrd=null; // Objeto ordenador
- var imgOrd="";
- var cadena=resul.split(";");
- for (var i=0;i<cadena.length;i++){
- var dual=cadena[i].split("/");
- ip=dual[0].replace(/\n*/,"");
- so=dual[1];
- objOrd=document.getElementById("img-"+ip);
- if(objOrd){
- imgOrd=soIMG(so);
- if(objOrd.getAttribute("sondeo")!=imgOrd){
- objOrd.setAttribute("src", "../images/"+imgOrd);
- objOrd.setAttribute("sondeo",imgOrd);
- var objChk=document.getElementById("chk-"+ip);
- if(objChk)
- objChk.checked=true;
- }
- }
- }
- }
-}
-//______________________________________________________________________________________________________
-//
-function soIMG(so)
-{
- var MimgOrdenador="";
- switch(so){
- case 'INI':
- MimgOrdenador="ordenador_INI.png"; // Cliente iniciando
- break;
- case 'BSY':
- MimgOrdenador="ordenador_BSY.png"; // Cliente ocupado
- break;
- case 'OPG':
- MimgOrdenador="ordenador_OPG.png"; // Cliente OpenGnsys
- break;
- case 'WIN':
- case 'WXP':
- MimgOrdenador="ordenador_WIN.png"; // Windows
- break;
- case 'WINS':
- MimgOrdenador="ordenador_WINS.png"; // Sesión Windows
- break;
- case 'LNX':
- MimgOrdenador="ordenador_LNX.png"; // Linux
- break;
- case 'LNXS':
- MimgOrdenador="ordenador_LNXS.png"; // Sesión Linux
- break;
- case 'OSX':
- MimgOrdenador="ordenador_OSX.png"; // macOS
- break;
- default:
- MimgOrdenador="ordenador_OFF.png"; // Apagado
- break;
- }
- return(MimgOrdenador);
-}
-//______________________________________________________________________________________________________
-//
-function selector(oSLCT,op,id)
-{
- var sw=oSLCT.checked;
- var objTB=document.getElementById("tbo-"+id);
-
- if(objTB){
- var imagenes = objTB.getElementsByTagName('img');
- for(var i=0;i<imagenes.length;i++){
- var ip=imagenes[i].id.split("-")[1];
- var estado=imagenes[i].getAttribute("sondeo");
-
- var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox
-
- switch(parseInt(op)){
- case 1: // Apagados
- if(estado=="ordenador_OFF.png")
- oCHK.checked=sw;
- break;
- case 2: // Ocupados
- if(estado=="ordenador_BSY.png")
- oCHK.checked=sw;
- break;
- case 3: // OpenGnsys
- if(estado=="ordenador_OPG.png")
- oCHK.checked=sw;
- break;
- case 4: // Windows
- if(estado=="ordenador_WIN.png")
- oCHK.checked=sw;
- break;
- case 5: // Sesión Windows
- if(estado=="ordenador_WINS.png")
- oCHK.checked=sw;
- break;
- case 6: // Linux
- if(estado=="ordenador_LNX.png")
- oCHK.checked=sw;
- break;
- case 7: // Sesión Linux
- if(estado=="ordenador_LNXS.png")
- oCHK.checked=sw;
- break;
- case 8: // macOS
- if(estado=="ordenador_OSX.png")
- oCHK.checked=sw;
- break;
- }
- }
- }
-}
-
-//______________________________________________________________________________________________________
-//
-function filtrado()
-{
- var ipes="";
- for(j=1;j<=cid;j++){
-
- var objTB=document.getElementById("tbo-"+j);
- if(objTB){
- var imagenes = objTB.getElementsByTagName('img');
- for(var i=0;i<imagenes.length;i++){
- var ip=imagenes[i].id.split("-")[1];
- var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox
- if(oCHK.checked){
- ipes+=ip+";";
- }
- }
- }
- }
- var preipes=document.getElementById("cadenaip").value;
- if(preipes!=ipes)
- document.fdatosejecucion.filtro.value=ipes;
- else
- document.fdatosejecucion.filtro.value="";
-}
-</SCRIPT>
-
+<?php +// ****************************************************************************************************************** +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2012 +// Fecha última modificación: Febrero-2012 +// Nombre del fichero: FiltradoAmbito.php +// Descripción: +// Colección de funciones en php y javascript que implementan la posibilidad de aplicar filtro de selección +// a un determinado grupo de ordenadores dentro de un aula para aplicarles comandos. +// +// ******************************************************************************************************************** +// +include_once("../idiomas/php/".$idioma."/estados_".$idioma.".php"); + +$cadenaip=""; +$cid=0; // Identificadores para tablas de ordenadores +switch($ambito) +{ + case $AMBITO_CENTROS : + $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito; + RecorriendoCentro($cmd); + break; + case $AMBITO_GRUPOSAULAS : + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE tipo=".$AMBITO_GRUPOSAULAS." AND idgrupo=".$idambito; + RecorriendoGruposAulas($cmd); + break; + case $AMBITO_AULAS : + $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito; + RecorriendoAulas($cmd); + break; + case $AMBITO_GRUPOSORDENADORES : + $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito; + RecorriendoGruposOrdenadores($cmd); + break; +} +echo '<P><INPUT type="hidden" id="cadenaip" value="'.$cadenaip.'"></P>'; +//________________________________________________________________________________________________________ +// +function RecorriendoCentro($cmd) +{ + global $AMBITO_GRUPOSAULAS; + global $TbMsg; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + if(!$rs->EOF){ + $idcentro=$rs->campos["idcentro"]; + $nombrecentro=$rs->campos["nombrecentro"]; + + $urlimg='../images/iconos/centros.gif'; + $ambito=$TbMsg[0]; + echo '<p align=center><IMG src="'.$urlimg.'"> + <span class=subcabeceras><U>'.$ambito.':'.$nombrecentro.'</U></span></p>'; + + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 + AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo "; + RecorriendoGruposAulas($cmd); + $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula"; + RecorriendoAulas($cmd); + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +// +function RecorriendoGruposAulas($cmd) +{ + global $AMBITO_GRUPOSAULAS; + global $TbMsg; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF){ + $idgrupo=$rs->campos["idgrupo"]; + $nombregrupo=$rs->campos["nombregrupo"]; + + $urlimg='../images/iconos/carpeta.gif'; + $ambito=$TbMsg[1]; + echo '<p align=center><IMG src="'.$urlimg.'"> + <span class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>'; + + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." + AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo"; + RecorriendoGruposAulas($cmd); + $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula"; + RecorriendoAulas($cmd); + $rs->Siguiente(); + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +// +function RecorriendoAulas($cmd) +{ + global $TbMsg; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF){ + $idaula=$rs->campos["idaula"]; + $nombreaula=$rs->campos["nombreaula"]; + + $urlimg='../images/iconos/aula.gif'; + $ambito=$TbMsg[2]; + echo '<p align=center><IMG src="'.$urlimg.'"> + <span class=subcabeceras><U>'.$ambito.':'.$nombreaula.'</U></span></p>'; + + $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula; + RecorriendoOrdenadores($cmd); + $rs->Siguiente(); + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +// +function RecorriendoGruposOrdenadores($cmd) +{ + global $TbMsg; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF){ + $idgrupo=$rs->campos["idgrupo"]; + $nombregrupo=$rs->campos["nombregrupo"]; + + $urlimg='../images/iconos/carpeta.gif'; + $ambito=$TbMsg[3]; + echo '<p align=center><IMG src="'.$urlimg.'"> + <span class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>'; + + $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador"; + RecorriendoGruposOrdenadores($cmd); + $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo; + RecorriendoOrdenadores($cmd); + $rs->Siguiente(); + } + $rs->Cerrar(); +} +//____________________________________________________________________________________________________ +// +function RecorriendoOrdenadores($cmd) +{ + global $TbMsg; + global $cadenaip; + global $cid; + + $cid++; + $cmd->texto.= " ORDER BY nombreordenador"; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + $htmlCode=""; + $con=0; + + $htmlCode.=' +<TABLE border=0 class="tabla_busquedas" align=center> +<TR> + +<TD align="center">'.$TbMsg["STATUS_OFF"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,1,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_BSY"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,2,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_OPG"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,3,'.$cid.')"></TD> +</TR> + +<TR> +<TD align="center">'.$TbMsg["STATUS_WIN"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,4,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_WINS"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,5,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_LNX"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,6,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_LNXS"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,7,'.$cid.')"></TD> + +<TD align="center">'.$TbMsg["STATUS_OSX"].'</TD> +<TD><INPUT type="checkbox" checked onclick="selector(this,8,'.$cid.')"></TD> + +</TR> +</TABLE>'; + + $htmlCode.='<BR>'; + $htmlCode.='<TABLE id="tbo-'.$cid.'" border=0 align=center>'; + $htmlCode.='<TR>'; + + while (!$rs->EOF){ + $htmlCode.= '<TD style="border: 1px solid #999999;">'; + $nombreordenador=$rs->campos["nombreordenador"]; + $ip=$rs->campos["ip"]; + $cadenaip.=$ip.";"; + $htmlCode.='<TABLE cellspacing=1 cellpadding=0>'; + $htmlCode.=' <TR><TD align="center"><img sondeo="ordenador_OFF.png" id="img-'.$ip.'" width=24 src="../images/ordenador_OFF.png"></TD></TR>'; + $htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:9px; COLOR: #4f4f4f;">'.$nombreordenador.'</SPAN></TD></TR>'; + $htmlCode.=' <TR><TD align="center"><SPAN style="FONT-SIZE:8px; COLOR: #4f4f4f;">'.$ip.'</SPAN></TD></TR>'; + $htmlCode.=' <TR><TD align="center"><INPUT id="chk-'.$ip.'" type="checkbox" checked></TD></TR>'; + $htmlCode.='</TABLE>'; + $htmlCode.='</TD>'; + $con++; + if($con>15){ + $htmlCode.='</TR>'; + $htmlCode.='<TR>'; + $con=0; + } + $rs->Siguiente(); + } + $htmlCode.='</TR>'; + $htmlCode.='</TABLE>'; + echo $htmlCode; +} +//______________________________________________________________________________________________________ +// +echo '<SCRIPT language="javascript">'; +echo 'var cid='.$cid.';'; +echo '</SCRIPT>'; +?> +<SCRIPT language="javascript"> +function Sondeo(){ + var ambito=<?php echo $ambito?>; + var idambito=<?php echo $idambito?>; + var wurl="../principal/sondeo.php"; + var prm="ambito="+ambito+"&idambito="+idambito+"&sw=1"; + CallPage(wurl,prm,"retornoSondeo","POST"); + setTimeout("respuestaSondeo();",100); +} +//______________________________________________________________________________________________________ +// +function retornoSondeo(resul) +{ + // No se hace nada +} +//________________________________________________________________________________________________________ +// +function respuestaSondeo(){ + var ambito=<?php echo $ambito?>; + var idambito=<?php echo $idambito?>; + var wurl="../principal/sondeo.php"; + var prm="ambito="+ambito+"&idambito="+idambito+"&sw=2"; + CallPage(wurl,prm,"retornorespuestaSondeo","POST"); + setTimeout("respuestaSondeo();",5000); +} +//______________________________________________________________________________________________________ +// +function retornorespuestaSondeo(resul) +{ + if(resul.length>0){ + var ip=""; // Dirección IP del ordenador + var so=""; // Sistema operativo activo + var objOrd=null; // Objeto ordenador + var imgOrd=""; + var cadena=resul.split(";"); + for (var i=0;i<cadena.length;i++){ + var dual=cadena[i].split("/"); + ip=dual[0].replace(/\n*/,""); + so=dual[1]; + objOrd=document.getElementById("img-"+ip); + if(objOrd){ + imgOrd=soIMG(so); + if(objOrd.getAttribute("sondeo")!=imgOrd){ + objOrd.setAttribute("src", "../images/"+imgOrd); + objOrd.setAttribute("sondeo",imgOrd); + var objChk=document.getElementById("chk-"+ip); + if(objChk) + objChk.checked=true; + } + } + } + } +} +//______________________________________________________________________________________________________ +// +function soIMG(so) +{ + var MimgOrdenador=""; + switch(so){ + case 'INI': + MimgOrdenador="ordenador_INI.png"; // Cliente iniciando + break; + case 'BSY': + MimgOrdenador="ordenador_BSY.png"; // Cliente ocupado + break; + case 'OPG': + MimgOrdenador="ordenador_OPG.png"; // Cliente OpenGnsys + break; + case 'WIN': + case 'WXP': + MimgOrdenador="ordenador_WIN.png"; // Windows + break; + case 'WINS': + MimgOrdenador="ordenador_WINS.png"; // Sesión Windows + break; + case 'LNX': + MimgOrdenador="ordenador_LNX.png"; // Linux + break; + case 'LNXS': + MimgOrdenador="ordenador_LNXS.png"; // Sesión Linux + break; + case 'OSX': + MimgOrdenador="ordenador_OSX.png"; // macOS + break; + default: + MimgOrdenador="ordenador_OFF.png"; // Apagado + break; + } + return(MimgOrdenador); +} +//______________________________________________________________________________________________________ +// +function selector(oSLCT,op,id) +{ + var sw=oSLCT.checked; + var objTB=document.getElementById("tbo-"+id); + + if(objTB){ + var imagenes = objTB.getElementsByTagName('img'); + for(var i=0;i<imagenes.length;i++){ + var ip=imagenes[i].id.split("-")[1]; + var estado=imagenes[i].getAttribute("sondeo"); + var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox + + switch(parseInt(op)){ + case 1: // Apagados + if(estado=="ordenador_OFF.png") + oCHK.checked=sw; + break; + case 2: // Ocupados + if(estado=="ordenador_BSY.png") + oCHK.checked=sw; + break; + case 3: // OpenGnsys + if(estado=="ordenador_OPG.png") + oCHK.checked=sw; + break; + case 4: // Windows + if(estado=="ordenador_WIN.png") + oCHK.checked=sw; + break; + case 5: // Sesión Windows + if(estado=="ordenador_WINS.png") + oCHK.checked=sw; + break; + case 6: // Linux + if(estado=="ordenador_LNX.png") + oCHK.checked=sw; + break; + case 7: // Sesión Linux + if(estado=="ordenador_LNXS.png") + oCHK.checked=sw; + break; + case 8: // macOS + if(estado=="ordenador_OSX.png") + oCHK.checked=sw; + break; + } + } + } +} + +//______________________________________________________________________________________________________ +// +function filtrado() +{ + var ipes=""; + for(var j=1; j<=cid; j++){ + + var objTB=document.getElementById("tbo-"+j); + if(objTB){ + var imagenes = objTB.getElementsByTagName('img'); + for(var i=0;i<imagenes.length;i++){ + var ip=imagenes[i].id.split("-")[1]; + var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox + if(oCHK.checked){ + ipes+=ip+";"; + } + } + } + } + var preipes=document.getElementById("cadenaip").value; + if(preipes!=ipes) + document.fdatosejecucion.filtro.value=ipes; + else + document.fdatosejecucion.filtro.value=""; +} +</SCRIPT> + diff --git a/admin/WebConsole/comandos/includes/capturaacciones.php b/admin/WebConsole/comandos/includes/capturaacciones.php index 1941b428..7e793f96 100644 --- a/admin/WebConsole/comandos/includes/capturaacciones.php +++ b/admin/WebConsole/comandos/includes/capturaacciones.php @@ -29,5 +29,5 @@ if (isset($_POST["funcion"])) $funcion=$_POST["funcion"]; if (isset($_POST["atributos"])) $atributos=$_POST["atributos"]; if (isset($_POST["gestor"])) $gestor=$_POST["gestor"]; if (isset($_POST["filtro"])) $filtro=$_POST["filtro"]; -?> + diff --git a/admin/WebConsole/comandos/includes/formularioacciones.php b/admin/WebConsole/comandos/includes/formularioacciones.php index 90c5de3c..fadc915c 100644 --- a/admin/WebConsole/comandos/includes/formularioacciones.php +++ b/admin/WebConsole/comandos/includes/formularioacciones.php @@ -9,7 +9,7 @@ // Formulario para paso de parametros comunes para la ejecución de comandos // ************************************************************************************************************************************************* ?> -<FORM align=center name="fdatosejecucion" action="<?php echo $gestor?>" method="post"> +<FORM name="fdatosejecucion" action="<?php echo $gestor?>" method="post"> <INPUT type="hidden" name="idcomando" value="<?php echo $idcomando?>"> <INPUT type="hidden" name="descricomando" value="<?php echo $descricomando?>"> <INPUT type="hidden" name="ambito" value="<?php echo $ambito?>"> diff --git a/admin/WebConsole/comandos/includes/opcionesacciones.php b/admin/WebConsole/comandos/includes/opcionesacciones.php index c8f9ea6a..7842d3a3 100644 --- a/admin/WebConsole/comandos/includes/opcionesacciones.php +++ b/admin/WebConsole/comandos/includes/opcionesacciones.php @@ -64,9 +64,9 @@ <TD> </TD> <TD> </TD> <TD><?php echo $TbMsgAux[8] ?> </TD> - <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordprocedimiento type=text value=""></TD></TR> + <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordprocedimiento type=text value=""></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> - <TR HEIGHT=10><TD colspan=4> <HR></TD></TR> + <TR><TD colspan=4 HEIGHT="10px"> <HR></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> <TR> <TD><INPUT onclick="clic_mktarea(this)" name=sw_mktarea type=checkbox></TD> @@ -88,8 +88,9 @@ <TD> </TD> <TD> </TD> <TD><?php echo $TbMsgAux[12] ?> </TD> - <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordtarea type=text value=""></TD></TR> + <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordtarea type=text value=""></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> + diff --git a/admin/WebConsole/comandos/jscripts/Configurar.js b/admin/WebConsole/comandos/jscripts/Configurar.js index 38f17a15..4dfd1ce5 100644 --- a/admin/WebConsole/comandos/jscripts/Configurar.js +++ b/admin/WebConsole/comandos/jscripts/Configurar.js @@ -15,7 +15,7 @@ var swe=false; // Switch para detectar partición extendida //________________________________________________________________________________________________________ // // Elimina una fila de una tabla de configuraciones perteneciente a las propiedades de una partición -// Parametros: +// Parámetros: // icp: Identificador de la configuración-partición // o: Objeto checkbox que invoca la función //________________________________________________________________________________________________________ @@ -31,8 +31,8 @@ function eliminaParticion(o,icp) // Toma desplegable de tipo de partición var desplepar=o.parentNode.nextSibling.nextSibling.childNodes[0]; var tipar=tomavalorDesple(desplepar); // Partición - if(tipar=="CACHE") swc=false; // Si es la caché se pone a false su switch - if(tipar=="EXTENDED") swe=false; // Si es la EXTENDED se pone a false su switch + if(tipar==="CACHE") swc=false; // Si es la caché se pone a false su switch + if(tipar==="EXTENDED") swe=false; // Si es la EXTENDED se pone a false su switch var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto <TABLE> var trCfg = document.getElementById("TR_"+icp); // Recupera <TR> de la fila a eliminar @@ -69,7 +69,7 @@ function addParticion(objImg,cc) //________________________________________________________________________________________________________ // // Confirma un bloque de configuración de particiones -// Parametros: +// Parámetros: // idordenadores: Identificadores de los ordenadores a los que se aplicará el comando // cc: Identificador de la configuración (bloque de particiones) // Especificaciones: @@ -81,11 +81,11 @@ function addParticion(objImg,cc) function Confirmar(cc) { if(comprobarDatos(cc)){ - if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ + if(document.fdatosejecucion.ambito.value!==AMBITO_ORDENADORES){ var tbOrd= document.getElementById("tbOrd_"+cc); // Recupera tabla de ordenadores de la configuración var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito - if(idordenadores!=cadenaid){ // Si no son iguales es que el ámbito de aplicación es restringido + if(idordenadores!==cadenaid){ // Si no son iguales es que el ámbito de aplicación es restringido document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido document.fdatosejecucion.idambito.value=idordenadores; } @@ -116,8 +116,8 @@ function comprobarDatos(cc) var SL="%"; var TB="*"; var maxpar=0; - var tbpar=new Array(); // Para control de particiones duplicadas - var tbparam=new Array(); // Para control de configuración + var tbpar=[]; // Para control de particiones duplicadas + var tbparam=[]; // Para control de configuración var npar; // Partición en formato integer var tch=0; // Tamaño de la caché @@ -129,27 +129,33 @@ function comprobarDatos(cc) var trCfg = document.getElementById("TR_"+cc); // Recupera primer <TR> de la configuración trCfg=trCfg.nextSibling; // Primera fila de particiones - while(trCfg.id!="TRIMG_"+cc){ + while(trCfg.id!=="TRIMG_"+cc){ var tama=trCfg.childNodes[itama].childNodes[0].value; // Tamaño de partición + // Comprobar tamaño negativo. + if (tama < 0) { + alert(TbMsg[8]); + trCfg.childNodes[ipar].childNodes[0].focus(); + return(false); + } var par=tomavalorDesple(trCfg.childNodes[ipar].childNodes[0]); // Partición npar=parseInt(par); if(maxpar<npar) maxpar=npar; // Guarda partición de mayor orden - if (npar==4){ + if (npar===4){ swc=true; // Se especifica partición caché tch=tama; } - if(npar==0){ + if(npar===0){ alert(TbMsg[1]); trCfg.childNodes[ipar].childNodes[0].focus(); return(false); } - if(tbpar[npar]==1){ // Existe ya una partición con ese número + if(tbpar[npar]===1){ // Existe ya una partición con ese número alert(TbMsg[0]); trCfg.childNodes[ipar].childNodes[0].focus(); return(false); @@ -157,13 +163,13 @@ function comprobarDatos(cc) tbpar[npar]=1; var codpar=tomavalorDesple(trCfg.childNodes[icodpar].childNodes[0]); // Tipo de partición - if(codpar==""){ + if(codpar===""){ alert(TbMsg[2]); trCfg.childNodes[icodpar].childNodes[0].focus(); return(false); } - if(codpar=="EXTENDED") { + if(codpar==="EXTENDED") { swe=true; extsize=tama; } else { @@ -174,7 +180,7 @@ function comprobarDatos(cc) } } - if(codpar=="CACHE" && npar!=4){ + if(codpar==="CACHE" && npar!==4){ alert(TbMsg[6]); trCfg.childNodes[icodpar].childNodes[0].focus(); return(false); @@ -183,8 +189,8 @@ function comprobarDatos(cc) var ope=tomavalorCheck(trCfg.childNodes[iope].childNodes[0]); // Formatar a realizar var sysfi=tomatextDesple(trCfg.childNodes[isysfi].childNodes[0]); // Sistema de ficheros - if(sysfi=="" || sysfi=="EMPTY" ){ // Si el sistema de fichero es vacio o empty... - if(ope==1){ // Si se quiere formatear... + if(sysfi==="" || sysfi==="EMPTY" ){ // Si el sistema de fichero es vacio o empty... + if(ope===1){ // Si se quiere formatear... alert(TbMsg[5]); trCfg.childNodes[isysfi].childNodes[0].focus(); return(false); @@ -193,7 +199,7 @@ function comprobarDatos(cc) sysfi="EMPTY"; } - if(tama==0 && codpar!="EXTENDED") { + if(tama===0 && codpar!=="EXTENDED") { alert(TbMsg[3]); trCfg.childNodes[itama].childNodes[0].focus(); return(false); @@ -220,13 +226,12 @@ function comprobarDatos(cc) alert(TbMsg["EXTSIZE"]); return(false); } - allpartsize+=parseInt(extsize); + allpartsize+=extsize; } // Alerta si tamaño del disco menor que las particiones if (hdsize<allpartsize) { alert(TbMsg["HDSIZE"]); return(false); - } /* Compone cadena de particiones (Deja fuera la cache, @@ -260,7 +265,7 @@ function comprobarDatos(cc) if(maxpar<4){ var up=4; if(swc) up=3; - for(var i=maxpar+1;i<=up;i++) + for(i=maxpar+1;i<=up;i++) atributos+="par="+i+TB+"cpt=EMPTY"+TB+"sfi=EMPTY"+TB+"tam=0"+TB+"ope=0"+SL; } diff --git a/admin/WebConsole/comandos/jscripts/CrearImagen.js b/admin/WebConsole/comandos/jscripts/CrearImagen.js index 384661b3..17b3c2cf 100644 --- a/admin/WebConsole/comandos/jscripts/CrearImagen.js +++ b/admin/WebConsole/comandos/jscripts/CrearImagen.js @@ -45,7 +45,7 @@ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ @@ -55,16 +55,16 @@ var disco=ochecks[i].value.split("_")[0]; var particion=ochecks[i].value.split("_")[1]; // El desplegable de imagen ahora indica disco y particion en su nombre - despleimagen=document.getElementById("despleimagen_"+disco+"_"+particion); - var p=despleimagen.selectedIndex; - if (p==0){ + var despleimagen=document.getElementById("despleimagen_"+disco+"_"+particion); + var p=despleimagen.selectedIndex; + if (p===0){ alert(TbMsg[0]); despleimagen.focus(); return(false) } } } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js b/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js index affb0f77..68751f25 100644 --- a/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js +++ b/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js @@ -1,10 +1,10 @@ // ************************************************************************************************************************************************* // Libreria de scripts de Javascript -// Copyright 2003-2005 Jos� Manuel Alonso. Todos los derechos reservados. -// Fecha Creaci�n:2003-2004 -// Fecha �ltima modificaci�n: Marzo-2005 +// Copyright 2003-2005 José Manuel Alonso. Todos los derechos reservados. +// Fecha Creación:2003-2004 +// Fecha última modificación: Marzo-2005 // Nombre del fichero: CrearImagenBasica.js -// Descripci�n : +// Descripción: // Este fichero implementa las funciones javascript del fichero CrearImagenBasica.php (Comandos) // ************************************************************************************************************************************************* var RC="@"; @@ -12,7 +12,7 @@ function confirmar() { var prm=comprobar_datos(); - if(prm=="") return; // Ha habido alg�n error + if(prm==="") return; // Ha habido algún error var disco=1; // Siempre disco 1 document.fdatosejecucion.atributos.value="dsk="+disco+RC+prm; @@ -21,7 +21,7 @@ } //________________________________________________________________________________________________________ // -// Cancela la edici�n +// Cancela la edición //________________________________________________________________________________________________________ function cancelar(){ @@ -35,75 +35,72 @@ function cancelar(){ function comprobar_datos() { - var prm=""; // Retorno par�metros + var prm=""; // Retorno parámetros var cadPar=document.getElementById("cadPar").getAttribute("value"); var tbPar=cadPar.split(";"); for(var i=0;i<tbPar.length;i++){ - var par=tbPar[i]; // Numero de partici�n + var par=tbPar[i]; // Numero de partición if(par>0){ var trObj=document.getElementById('trPar-'+par); // Recupera objeto fila var obRDO=trObj.childNodes[0].childNodes[0]; // Recupera Radio buton de la fila - if(obRDO.checked){ // Si est� seleccionado ... + if(obRDO.checked){ // Si está seleccionado ... var cpt=obRDO.getAttribute("value"); - var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen + var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen var idx=obSel.selectedIndex; - if(idx==0){ // No ha seleccionado indice en el desplegable imagen + if(idx===0){ // No ha seleccionado indice en el desplegable imagen alert(TbMsg[1]); - return(false); - } - // Compone parametros + return(false); + } + // Compone parametros var tbIMG=obSel.options[idx].value.split(";"); var idi=tbIMG[0]; // Identificador de la imagen - var nci=tbIMG[1]; // Nombre can�nico de la imagen - var ipr=tbIMG[2]; // Ip del repositorio de la imagen - var rti=tbIMG[3]; // Ruta de origen de la imagen + var nci=tbIMG[1]; // Nombre canónico de la imagen + var ipr=tbIMG[2]; // Ip del repositorio de la imagen + var rti=tbIMG[3]; // Ruta de origen de la imagen prm+="par="+par+RC; - prm+="cpt="+cpt+RC; + prm+="cpt="+cpt+RC; prm+="idi="+idi+RC; prm+="nci="+nci+RC; - prm+="ipr="+ipr+RC; - prm+="rti="+rti+RC; + prm+="ipr="+ipr+RC; + prm+="rti="+rti+RC; + + var desplemet=document.getElementById("desplesync_"+par); // Desplegable metodo de syncronización + var p=desplemet.selectedIndex; // Toma índice seleccionado - - var desplemet=document.getElementById("desplesync_"+par); // Desplegable metodo de syncronizaci�n - var p=desplemet.selectedIndex; // Toma �ndice seleccionado - - // No ha elegido ninguna partici�n - if(p==0){ + // No ha elegido ninguna partición + if(p===0){ alert(TbMsg[3]); return(""); } - prm+="msy="+p+RC; // M�todo de syncronizaci�n 1=Sincronizaci�n1 2=Sincronizacion2 - - + prm+="msy="+p+RC; // Método de syncronización 1=Sincronización1 2=Sincronización2 + var chrChk=document.getElementById('whl-'+par); // Recupera objeto fila de la tabla opciones adicionales if(chrChk.checked) prm+="whl=1"+RC; else prm+="whl=0"+RC; chrChk=document.getElementById('eli-'+par); // Recupera objeto fila de la tabla opciones adicionales if(chrChk.checked) prm+="eli=1"+RC; else prm+="eli=0"+RC; chrChk=document.getElementById('cmp-'+par); // Recupera objeto fila de la tabla opciones adicionales if(chrChk.checked) prm+="cmp=1"+RC; else prm+="cmp=0"+RC; - - var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales - var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen + + trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales + var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen if(obChk.checked) prm+="bpi=1"+RC; else prm+="bpi=0"+RC; - var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache + obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en caché if(obChk.checked) prm+="cpc=1"+RC; else prm+="cpc=0"+RC; - var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache + obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la caché if(obChk.checked) prm+="bpc=1"+RC; else prm+="bpc=0"+RC; - var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino + obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino if(obChk.checked) prm+="nba=1"+RC; else prm+="nba=0"+RC; - if(comprobar_datosejecucion()) // Comprueba opciones de ejecuci�n + if(comprobar_datosejecucion()) // Comprueba opciones de ejecución return(prm); else return(""); } } } - // No ha elegido ninguna partici�n + // No ha elegido ninguna partición alert(TbMsg[2]); return(""); } - diff --git a/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js b/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js index b4a827d1..250c85e7 100644 --- a/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js +++ b/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js @@ -1,10 +1,10 @@ // ************************************************************************************************************** // Libreria de scripts de Javascript -// Copyright 2003-2005 Jos� Manuel Alonso. Todos los derechos reservados. -// Fecha Creaci�n:2003-2004 -// Fecha �ltima modificaci�n: Marzo-2005 +// Copyright 2003-2005 José Manuel Alonso. Todos los derechos reservados. +// Fecha Creación:2003-2004 +// Fecha última modificación: Marzo-2005 // Nombre del fichero: CrearSoftIncremental.js -// Descripci�n : +// Descripción: // Este fichero implementa las funciones javascript del fichero CrearSoftIncremental.php (Comandos) // ************************************************************************************************************** @@ -13,16 +13,15 @@ function confirmar() { var prm=comprobar_datos(); - if(prm=="") return; // Ha habido alg�n error + if(prm==="") return; // Ha habido algún error var disco=1; // Siempre disco 1 document.fdatosejecucion.atributos.value="dsk="+disco+RC+prm; - //alert(document.fdatosejecucion.atributos.value); document.fdatosejecucion.submit(); } //________________________________________________________________________________________________________ // -// Cancela la edici�n +// Cancela la edición //________________________________________________________________________________________________________ function cancelar(){ @@ -36,47 +35,47 @@ function cancelar(){ function comprobar_datos() { - var prm=""; // Retorno par�metros + var prm=""; // Retorno parámetros var cadPar=document.getElementById("cadPar").getAttribute("value"); var tbPar=cadPar.split(";"); for(var i=0;i<tbPar.length;i++){ - var par=tbPar[i]; // Numero de partici�n + var par=tbPar[i]; // Numero de partición if(par>0){ var trObj=document.getElementById('trPar-'+par); // Recupera objeto fila var obRDO=trObj.childNodes[0].childNodes[0]; // Recupera Radio buton de la fila - if(obRDO.checked){ // Si est� seleccionado ... - var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen + if(obRDO.checked){ // Si está seleccionado ... + var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen var idx=obSel.selectedIndex; - if(idx==0){ // No ha seleccionado indice en el desplegable imagen + if(idx===0){ // No ha seleccionado indice en el desplegable imagen alert(TbMsg[3]); return(false); } var tbIMG=obSel.options[idx].value.split(";"); - var idi=tbIMG[0]; // Identificador de la imagen b�sica - var nci=tbIMG[1]; // Nombre can�nico de la imagen b�sica + var idi=tbIMG[0]; // Identificador de la imagen básica + var nci=tbIMG[1]; // Nombre canónico de la imagen básica var ipr=tbIMG[2]; // Ip del repositorio de la imagen var idf=tbIMG[3]; // NIdentificador de la imagen incremental - var ncf=tbIMG[4]; // Nombre can�nico de la imagen incremental + var ncf=tbIMG[4]; // Nombre canónico de la imagen incremental var rti=tbIMG[5]; // Ruta de origen de la imagen - // Compone parametros + // Compone parametros prm+="par="+par+RC; prm+="idi="+idi+RC; prm+="nci="+nci+RC; - prm+="ipr="+ipr+RC; + prm+="ipr="+ipr+RC; prm+="idf="+idf+RC; - prm+="ncf="+ncf+RC; - prm+="rti="+rti+RC; + prm+="ncf="+ncf+RC; + prm+="rti="+rti+RC; - var desplemet=document.getElementById("desplesync_"+par); // Desplegable metodo de syncronizaci�n - var p=desplemet.selectedIndex; // Toma �ndice seleccionado - - // No ha elegido ninguna partici�n - if(p==0){ + var desplemet=document.getElementById("desplesync_"+par); // Desplegable metodo de syncronización + var p=desplemet.selectedIndex; // Toma índice seleccionado + + // No ha elegido ninguna partición + if(p===0){ alert(TbMsg[4]); return(""); } - prm+="msy="+p+RC; // M�todo de syncronizaci�n 1=Sincronizaci�n1 2=Sincronizacion2 + prm+="msy="+p+RC; // Método de syncronización 1=Sincronización1 2=Sincronización2 var chrChk=document.getElementById('whl-'+par); // Recupera objeto fila de la tabla opciones adicionales if(chrChk.checked) prm+="whl=1"+RC; else prm+="whl=0"+RC; @@ -86,24 +85,24 @@ function comprobar_datos() if(chrChk.checked) prm+="cmp=1"+RC; else prm+="cmp=0"+RC; - var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales + trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen if(obChk.checked) prm+="bpi=1"+RC; else prm+="bpi=0"+RC; - var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache + obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache if(obChk.checked) prm+="cpc=1"+RC; else prm+="cpc=0"+RC; - var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache + obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache if(obChk.checked) prm+="bpc=1"+RC; else prm+="bpc=0"+RC; - var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino - if(obChk.checked) prm+="nba=1"+RC; else prm+="nba=0"+RC; + obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino + if(obChk.checked) prm+="nba=1"+RC; else prm+="nba=0"+RC; - if(comprobar_datosejecucion()) // Comprueba opciones de ejecuci�n + if(comprobar_datosejecucion()) // Comprueba opciones de ejecución return(prm); else return(""); } } } - // No ha elegido ninguna partici�n + // No ha elegido ninguna partición alert(TbMsg[2]); return(""); } diff --git a/admin/WebConsole/comandos/jscripts/EjecutarScripts.js b/admin/WebConsole/comandos/jscripts/EjecutarScripts.js index 878ea770..e97e6f2a 100644 --- a/admin/WebConsole/comandos/jscripts/EjecutarScripts.js +++ b/admin/WebConsole/comandos/jscripts/EjecutarScripts.js @@ -33,7 +33,7 @@ function comprobar_datos() { - if (document.fdatos.codigo.value=="") { + if (document.fdatos.codigo.value==="") { alert(TbMsg[1]); document.fdatos.codigo.focus(); return(false); diff --git a/admin/WebConsole/comandos/jscripts/EliminarImagenCache.js b/admin/WebConsole/comandos/jscripts/EliminarImagenCache.js index 2e74c9a0..62ff72fd 100644 --- a/admin/WebConsole/comandos/jscripts/EliminarImagenCache.js +++ b/admin/WebConsole/comandos/jscripts/EliminarImagenCache.js @@ -7,7 +7,7 @@ function confirmar(){ if (comprobar_datos()){ // Compone atributos del comando - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var atributos; for(var i=0;i<ochecks.length;i++){ @@ -29,13 +29,13 @@ function confirmar(){ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked) op++; } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/IniciarSesion.js b/admin/WebConsole/comandos/jscripts/IniciarSesion.js index cbd1cf69..9fe4d525 100644 --- a/admin/WebConsole/comandos/jscripts/IniciarSesion.js +++ b/admin/WebConsole/comandos/jscripts/IniciarSesion.js @@ -20,13 +20,13 @@ function confirmar(){ filtrado(); var ipfiltro=document.fdatosejecucion.filtro.value; // Compone atributos del comando - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked){ var diskPart = ochecks[i].value.split(";"); var disco = diskPart[0]; - var numpar= diskPart[1]; + var numpar= diskPart[1]; atributos+="dsk="+disco+RC; atributos+="par="+numpar+RC; // Datos bloque de configuracion: ip equipos. @@ -35,12 +35,12 @@ function confirmar(){ var iptabla=tbOrd.getAttribute('value'); // Elimino los ordenadores del filtro que no estén en la tabla. - if (ipfiltro!=''){ + if (ipfiltro!==''){ var arraytabla = iptabla.split(","); var arrayfiltro =ipfiltro.split(";"); arrayfiltro = array_interset (arrayfiltro.sort(), arraytabla.sort()); ipfiltro = arrayfiltro.join(";"); - if (ipfiltro ==''){ + if (ipfiltro===''){ alert(TbMsg["FILTER"]); return(false); } @@ -68,13 +68,13 @@ function confirmar(){ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked) op++; } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/InventarioSoftware.js b/admin/WebConsole/comandos/jscripts/InventarioSoftware.js index 4910d047..ad6a42c1 100644 --- a/admin/WebConsole/comandos/jscripts/InventarioSoftware.js +++ b/admin/WebConsole/comandos/jscripts/InventarioSoftware.js @@ -8,10 +8,10 @@ // Este fichero implementa las funciones javascript del fichero InventarioHardware.php (Comandos) // ************************************************************************************************************************************************* function confirmar(){ + var diskPart=[]; if (comprobar_datos()){ - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); - var particion; for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked){ diskPart=ochecks[i].value.split(";"); @@ -32,14 +32,14 @@ } //________________________________________________________________________________________________________ function comprobar_datos(){ - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked) op++; } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js index 778e6de1..36705236 100644 --- a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js +++ b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js @@ -12,6 +12,7 @@ var RC="@"; // UHU - Ahora puede ser cualquier disco var disco; + var numequipos; var atributos=""; var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); @@ -46,12 +47,12 @@ var ipfiltro=document.fdatosejecucion.filtro.value; // Elimino los ordenadores del filtro que no estén en la tabla. - if (ipfiltro!=''){ + if (ipfiltro!==''){ var arraytabla = iptabla.split(","); var arrayfiltro =ipfiltro.split(";"); arrayfiltro = array_interset (arrayfiltro.sort(), arraytabla.sort()); ipfiltro = arrayfiltro.join(";"); - if (ipfiltro ==''){ + if (ipfiltro===''){ alert(TbMsg["FILTER"]); return(false); } @@ -63,8 +64,8 @@ } // Mensaje de aviso si protocolo UNICAST y más de un ordenador - if ( ( protoclonacion.value=="UNICAST" || protoclonacion.value=="UNICAST-DIRECT") && numequipos > 1 ) { - if (confirm(TbMsg["UNICAST"]) != true) { + if ( ( protoclonacion.value==="UNICAST" || protoclonacion.value==="UNICAST-DIRECT") && numequipos > 1 ) { + if (confirm(TbMsg["UNICAST"]) !== true) { cancelar(); return(false); } @@ -84,32 +85,32 @@ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ if(ochecks[i].checked){ op++; var idradio=ochecks[i].id; // Toma idemtificador del desplegable de imagenes - despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable izda. - despleimagendcha=document.getElementById("despleimagen_"+idradio+"_0"); // Desplegable derecha. + var despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable izda. + var despleimagendcha=document.getElementById("despleimagen_"+idradio+"_0"); // Desplegable derecha. var p1=despleimagenizda.selectedIndex; // Toma índice seleccionado var p2=despleimagendcha.selectedIndex; // Toma índice seleccionado - if (p1==0 && p2==0){ + if (p1===0 && p2===0){ alert(TbMsg[0]); despleimagenizda.focus(); return(false) } - if (p1==p2){ + if (p1===p2){ alert(TbMsg[6]); despleimagenizda.focus(); return(false) } } } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js b/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js index 99b91a19..c72851bb 100644 --- a/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js +++ b/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js @@ -16,7 +16,7 @@ var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); for(var i=0;i<ochecks.length;i++){ - if(ochecks[i].checked && ochecks[i].name=="particion"){ + if(ochecks[i].checked && ochecks[i].name==="particion"){ var idradio=ochecks[i].id; var diskPart = ochecks[i].value.split(";"); disco =diskPart[0]; @@ -36,15 +36,15 @@ atributos+="rti="+imgcanrepo[4]+RC; // Ruta de origen de la imagen var desplemet=document.getElementById("desplemet_"+idradio); // Desplegable metodo de restauración - var p=desplemet.selectedIndex; // Toma índice seleccionado + var p=desplemet.selectedIndex; // Toma índice seleccionado atributos+="met="+p+RC; // Método de clonación 0=caché 1=repositorio - var desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización - var p=desplemet.selectedIndex; // Toma índice seleccionado + desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización + p=desplemet.selectedIndex; // Toma índice seleccionado atributos+="msy="+p+RC; // Método de clonación - var desplemet=document.getElementById("despletpt_"+idradio); // Desplegable metodo de syncronización - var p=desplemet.value; // Toma índice seleccionado + desplemet=document.getElementById("despletpt_"+idradio); // Desplegable metodo de syncronización + p=desplemet.value; // Toma índice seleccionado atributos+="tpt="+p+RC; // Método de clonación var chrChk=document.getElementById('whl-'+idradio); // Recupera objeto fila de la tabla opciones adicionales @@ -55,12 +55,12 @@ if(chrChk.checked) atributos+="cmp=1"+RC; else atributos+="cmp=0"+RC; var cc=ochecks[i].getAttribute('idcfg'); // Toma identificador del bloque de configuración - if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ + if(document.fdatosejecucion.ambito.value!==AMBITO_ORDENADORES){ var tbOrd=document.getElementById("tbOrd_"+cc); var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito - if(idordenadores!=cadenaid){ - document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido + if(idordenadores!==cadenaid){ + document.fdatosejecucion.ambito.value=0; // Ámbito de aplicación restringido document.fdatosejecucion.idambito.value=idordenadores; } } @@ -68,11 +68,11 @@ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen if(obChk.checked) atributos+="bpi=1"+RC; else atributos+="bpi=0"+RC; - var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache + obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache if(obChk.checked) atributos+="cpc=1"+RC; else atributos+="cpc=0"+RC; - var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache + obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache if(obChk.checked) atributos+="bpc=1"+RC; else atributos+="bpc=0"+RC; - var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino + obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino if(obChk.checked) atributos+="nba=1"+RC; else atributos+="nba=0"+RC; document.fdatosejecucion.atributos.value=atributos; @@ -92,31 +92,31 @@ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ - if(ochecks[i].checked && ochecks[i].name=="particion"){ + if(ochecks[i].checked && ochecks[i].name==="particion"){ op++; var idradio=ochecks[i].id; // Toma idemtificador del desplegable de imagenes - despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable izda. - var p1=despleimagenizda.selectedIndex; // Toma índice seleccionado - if (p1==0){ + var despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable izda. + var p1=despleimagenizda.selectedIndex; // Toma índice seleccionado + if (p1===0){ alert(TbMsg[0]); despleimagenizda.focus(); return(false) } // Comprobamos tipo de sincronizacion. var desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización - var p1=desplemet.selectedIndex; // Toma índice seleccionado - if (p1==0){ + p1=desplemet.selectedIndex; // Toma índice seleccionado + if (p1===0){ alert(TbMsg[7]); desplemet.focus(); return(false) } } } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js b/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js index 756b3ba9..f3f95219 100644 --- a/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js +++ b/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js @@ -16,7 +16,7 @@ var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); for(var i=0;i<ochecks.length;i++){ - if(ochecks[i].checked && ochecks[i].name=="particion"){ + if(ochecks[i].checked && ochecks[i].name==="particion"){ var idradio=ochecks[i].id; var diskPart = ochecks[i].value.split(";"); disco =diskPart[0]; @@ -39,15 +39,15 @@ atributos+="rti="+imgcanrepo[6]+RC; // Ruta de origen de la imagen var desplemet=document.getElementById("desplemet_"+idradio); // Desplegable metodo de restauración - var p=desplemet.selectedIndex; // Toma índice seleccionado + var p=desplemet.selectedIndex; // Toma índice seleccionado atributos+="met="+p+RC; // Método de clonación 0=caché 1=repositorio - var desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización - var p=desplemet.selectedIndex; // Toma índice seleccionado + desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización + p=desplemet.selectedIndex; // Toma índice seleccionado atributos+="msy="+p+RC; // Método de clonación - var desplemet=document.getElementById("despletpt_"+idradio); // Desplegable metodo de syncronización - var p=desplemet.value; // Toma índice seleccionado + desplemet=document.getElementById("despletpt_"+idradio); // Desplegable metodo de syncronización + p=desplemet.value; // Toma índice seleccionado atributos+="tpt="+p+RC; // Método de transmision var chrChk=document.getElementById('whl-'+idradio); // Recupera objeto fila de la tabla opciones adicionales @@ -58,11 +58,11 @@ if(chrChk.checked) atributos+="cmp=1"+RC; else atributos+="cmp=0"+RC; var cc=ochecks[i].getAttribute('idcfg'); // Toma identificador del bloque de configuración - if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ + if(document.fdatosejecucion.ambito.value!==AMBITO_ORDENADORES){ var tbOrd=document.getElementById("tbOrd_"+cc); var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito - if(idordenadores!=cadenaid){ + if(idordenadores!==cadenaid){ document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido document.fdatosejecucion.idambito.value=idordenadores; } @@ -71,11 +71,11 @@ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen if(obChk.checked) atributos+="bpi=1"+RC; else atributos+="bpi=0"+RC; - var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache + obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache if(obChk.checked) atributos+="cpc=1"+RC; else atributos+="cpc=0"+RC; - var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache + obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache if(obChk.checked) atributos+="bpc=1"+RC; else atributos+="bpc=0"+RC; - var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino + obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino if(obChk.checked) atributos+="nba=1"+RC; else atributos+="nba=0"+RC; document.fdatosejecucion.atributos.value=atributos; @@ -95,30 +95,30 @@ //________________________________________________________________________________________________________ function comprobar_datos() { - tb_conf=document.getElementById("tabla_conf"); + var tb_conf=document.getElementById("tabla_conf"); var ochecks=tb_conf.getElementsByTagName('INPUT'); var op=0; for(var i=0;i<ochecks.length;i++){ - if(ochecks[i].checked && ochecks[i].name=="particion"){ + if(ochecks[i].checked && ochecks[i].name==="particion"){ op++; var idradio=ochecks[i].id; // Toma idemtificador del desplegable de imagenes - despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable imagenes. - var p1=despleimagenizda.selectedIndex; // Toma índice seleccionado - if (p1==0){ + var despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable imagenes. + var p1=despleimagenizda.selectedIndex; // Toma índice seleccionado + if (p1===0){ alert(TbMsg[0]); despleimagenizda.focus(); return(false) } var desplemet=document.getElementById("desplesync_"+idradio); // Desplegable metodo de syncronización - var p1=desplemet.selectedIndex; // Toma índice seleccionado - if (p1==0){ + p1=desplemet.selectedIndex; // Toma índice seleccionado + if (p1===0){ alert(TbMsg[7]); desplemet.focus(); return(false) } } } - if(op==0){ + if(op===0){ alert(TbMsg[1]); return(false); } diff --git a/admin/WebConsole/controlacceso.php b/admin/WebConsole/controlacceso.php index 3e2f74ce..cfae986b 100644 --- a/admin/WebConsole/controlacceso.php +++ b/admin/WebConsole/controlacceso.php @@ -16,4 +16,4 @@ $wac="OPENGNSYSURL/"; // Página de login de la aplicación $idi="esp"; // Idioma por defecto //======================================================================================================== -?> + diff --git a/admin/WebConsole/controlpostacceso.php b/admin/WebConsole/controlpostacceso.php index 01f840d2..e3ecd0d9 100644 --- a/admin/WebConsole/controlpostacceso.php +++ b/admin/WebConsole/controlpostacceso.php @@ -16,7 +16,8 @@ include_once("./clases/AdoPhp.php"); $pss=""; $ident=""; $idc=0; - $iph=""; // Switch menu cliente + $iph=""; // Switch menu cliente + $adminetboot=""; if (isset($_GET["iph"])) $iph=$_GET["iph"]; //________________________________________________________________________________________________________ @@ -32,7 +33,6 @@ include_once("./clases/AdoPhp.php"); if ($idc != 0) { $rs=new Recordset; -// $cmd->texto="SELECT * FROM centros WHERE idcentro='$idc'"; $cmd->texto="SELECT * FROM centros WHERE idcentro=".$idc; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset @@ -91,7 +91,7 @@ if ($idc != 0) //________________________________________________________________________________________________________ // Busca datos del usuario que intenta acceder a la aplicación - // Parametros: + // Parámetros: // - cmd:Una comando ya operativo (con conexión abierta) // - usuario: Nombre del usuario // - pasguor: Password del uuario @@ -122,7 +122,7 @@ if ($idc != 0) AND usuarios.pasguor=SHA2('".$pasguor."', 224)"; } $rs->Comando=&$cmd; - if (!$rs->Abrir()) return($false); // Error al abrir recordset + if (!$rs->Abrir()) return(false); // Error al abrir recordset if(!$rs->EOF){ $adminetboot=$rs->campos["idtipousuario"]; $idtipousuario=$rs->campos["idtipousuario"]; @@ -144,7 +144,7 @@ if ($idc != 0) } //________________________________________________________________________________________________________ // Busca datos de configuración del sistema - // Parametros: + // Paráametros: // - cmd:Una comando ya operativo (con conexión abierta) // - ips: Dirección IP del servidor de administración // - prt: Puerto de comunicaciones @@ -157,8 +157,7 @@ if ($idc != 0) $rs=new Recordset; $cmd->texto="SELECT * FROM entornos"; $rs->Comando=&$cmd; - //echo $cmd->texto; - if (!$rs->Abrir()) return($false); // Error al abrir recordset + if (!$rs->Abrir()) return(false); // Error al abrir recordset if(!$rs->EOF){ $ips=$rs->campos["ipserveradm"]; $prt=$rs->campos["portserveradm"]; @@ -169,7 +168,7 @@ if ($idc != 0) } //_______________________________________________________________________________________________________ // Muestra mensaje de alerta si no existe repositorio en la unidad organizativa - // Parametros: + // Parámetros: // - cmd:Una comando ya operativo (con conexión abierta) // - idcentro: identificador de la unidad organizativa //_______________________________________________________________________________________________________ @@ -202,17 +201,17 @@ if ($idc != 0) </head> <body> -<div id="mensaje" style="position:absolute;TOP:250;LEFT:330; visibility:visible"> - <span align="center" class="subcabeceras"><?php echo $TbMsg["ACCESS_ALLOWED"] ?></span> +<div id="mensaje" style="position:absolute;TOP:250px;LEFT:330px; visibility:visible; text-align: center"> + <span class="subcabeceras"><?php echo $TbMsg["ACCESS_ALLOWED"] ?></span> </div> <script language="javascript"> var vez=0; setTimeout("acceso();",300); function acceso(){ - o=document.getElementById("mensaje"); + var o=document.getElementById("mensaje"); var s=o.style.visibility; - if(s=="hidden") + if(s==="hidden") o.style.visibility="visible"; else o.style.visibility="hidden"; diff --git a/admin/WebConsole/descargas/README.es.html b/admin/WebConsole/descargas/README.es.html index 65560da7..9e4e2e53 100644 --- a/admin/WebConsole/descargas/README.es.html +++ b/admin/WebConsole/descargas/README.es.html @@ -7,18 +7,18 @@ <h1>OGAgent: agentes OpenGnsys para sistemas operativos</h1> <p>Ficheros disponibles para descarga de agente OGAgent:</p> -<dl> - <li><code>ogagent_<em>Version</em>_all.deb</code>: OGAgent para sistemas Ubuntu, Debian y derivados - <li><code>ogagent-<em>Version</em>.noarch.rpm</code>: OGAgent para sistemas Red Hat, Fedora y derivados - <li><code>ogagent-opensuse-<em>Version</em>.noarch.rpm</code>: OGAgent para sistemas SuSE y OpenSuSE - <li><code>OGAgentInstaller-<em>Version</em>.pkg</code>: OGAgent para sistemas macOS X - <li><code>OGAgentSetup-<em>Version</em>.exe</code>: OGAgent para sistemas Windows -</dl> +<ul> + <li><code>ogagent_<em>Version</em>_all.deb</code>: OGAgent para sistemas Ubuntu, Debian y derivados</li> + <li><code>ogagent-<em>Version</em>.noarch.rpm</code>: OGAgent para sistemas Red Hat, Fedora y derivados</li> + <li><code>ogagent-opensuse-<em>Version</em>.noarch.rpm</code>: OGAgent para sistemas SuSE y OpenSuSE</li> + <li><code>OGAgentInstaller-<em>Version</em>.pkg</code>: OGAgent para sistemas macOS X</li> + <li><code>OGAgentSetup-<em>Version</em>.exe</code>: OGAgent para sistemas Windows</li> +</ul> <h2>Instalar los agentes</h2> <h3>Ubuntu, Debian y derivados:</h3> -<dl> +<ul> <li>Ejecutar los comandos desde una terminal.</li> <li>Descargar el fichero e instalar el agente con sus dependencias: <pre> @@ -29,26 +29,26 @@ <pre> sudo sed -i "0,/remote=/ s,remote=.*,remote=https://<em>IPServidorOpenGnsys</em>/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg</pre></li> <li>Reiniciar el equipo o ejecutar el servicio <em>(se iniciará automáticamente en el proceso de arranque)</em>: <pre> sudo service ogagent start</pre></li> -</dl> +</ul> <h3>Red Hat, Fedora y derivados (como root):</h3> -<dl> +<ul> <li>Ejecutar los comandos desde una terminal.</li> <li>Descargar el fichero e instalar el agente con sus dependencias: <pre> yum install ogagent-<em>Version</em>.noarch.rpm</pre></li> <li>Configurar el agente: <pre> sed -i "0,/remote=/ s,remote=.*,remote=https://<em>IPServidorOpenGnsys</em>/opengnsys/rest/," /usr/share/OGAgent/cfg/ogagent.cfg</pre></li> - <li>Puede ser necesario corregir permisos antes de iniciar el servicio:</li> + <li>Puede ser necesario corregir permisos antes de iniciar el servicio: <pre> chmod +x /etc/init.d/ogagent</pre></li> <li>Reiniciar el equipo o ejecutar el servicio <em>(se iniciará automáticamente en el proceso de arranque)</em>: <pre> service ogagent start</pre></li> -</dl> +</ul> <h3>OpenSuSE:</h3> <p><em>(en preparación)</em></p> <h3>macOS X:</h3> -<dl> +<ul> <li>Ejecutar los comandos desde una terminal.</li> <li>Instalar dependencias <em>(la instalación puebe realizar estas operaciones)</em>: <pre> @@ -62,16 +62,16 @@ sudo mv /tmp/ogagent.cfg /Applications/OGAgent.app/cfg/ogagent.cfg</pre></li> <li>Reiniciar el equipo o ejecutar el servicio <em>(se iniciará automáticamente en el proceso de arranque)</em>: <pre> sudo ogagent start</pre></li> -</dl> +</ul> <h3>Windows (como usuario administrador):</h3> -<dl> +<ul> <li>Descargar el fichero e instalar el agente ejecutando el fichero <code>OGAgentSetup-<em>Version</em>.exe</code></li> <li>Seguir las instrucciones del instalador.</li> <li>Editar el fichero de configuación <code>C:\Program Files\OGAgent\cfg\ogagent.cfg</code> (o <code>C:\Archivos de programa\OGAgent\cfg\ogagent.cfg</code>) y modificar el valor de la cláusula <code>remote</code> de la sección <code>[OGAgent]</code> inclyendo la dirección IP del servidor OpenGnsys.</li> <li>Reiniciar el equipo o ejecutar el servicio <em>(se iniciará automáticamente en el proceso de arranque)</em>: <pre> NET START OGAgent</pre></li> -</dl> +</ul> <h2>Desinstalar los agentes</h2> diff --git a/admin/WebConsole/descargas/index.php b/admin/WebConsole/descargas/index.php index bb434bee..b5caae13 100644 --- a/admin/WebConsole/descargas/index.php +++ b/admin/WebConsole/descargas/index.php @@ -65,4 +65,4 @@ function sendFile($file) { } // Warning: Don't left any character outside PHP code. -?> + diff --git a/admin/WebConsole/dirphp.php b/admin/WebConsole/dirphp.php index 26e3f8c4..7d706544 100644 --- a/admin/WebConsole/dirphp.php +++ b/admin/WebConsole/dirphp.php @@ -6,8 +6,8 @@ function listar_directorios_ruta($ruta){ if ($dh = opendir($ruta)) { while (($file = readdir($dh)) !== false) { if($file !=".svn" && $file!="." && $file!=".."){ - //esta lnea la utilizaramos si queremos listar todo lo que hay en el directorio - //mostrara tanto archivos como directorios + //esta línea la utilizaríamos si queremos listar todo lo que hay en el directorio + //mostraría tanto archivos como directorios //echo "<br>Nombre de archivo: $file : Es un: " . filetype($ruta . $file); if (is_dir($ruta . $file) && $file!="." && $file!=".."){ //solo si el archivo es un directorio, distinto que "." y ".." @@ -53,4 +53,4 @@ function listar_directorios_ruta($ruta){ fwrite($fp, $buffer,strlen($buffer)); fclose($fp); } -?> + diff --git a/admin/WebConsole/estilos.css b/admin/WebConsole/estilos.css index d80d00fe..49631114 100644 --- a/admin/WebConsole/estilos.css +++ b/admin/WebConsole/estilos.css @@ -244,7 +244,7 @@ BACKGROUND-COLOR: #EEEECC; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif; - FONT-SIZE: 11; + FONT-SIZE: 11px; } A.tabla_listados_sin:visited{ COLOR: #000000; diff --git a/admin/WebConsole/gestores/gestor_accionmenu.php b/admin/WebConsole/gestores/gestor_accionmenu.php index c205c795..abeabef9 100644 --- a/admin/WebConsole/gestores/gestor_accionmenu.php +++ b/admin/WebConsole/gestores/gestor_accionmenu.php @@ -142,4 +142,4 @@ function Gestiona() } return(true); } -?> + diff --git a/admin/WebConsole/gestores/gestor_administradores_centros.php b/admin/WebConsole/gestores/gestor_administradores_centros.php index b6588752..0a33a645 100644 --- a/admin/WebConsole/gestores/gestor_administradores_centros.php +++ b/admin/WebConsole/gestores/gestor_administradores_centros.php @@ -74,4 +74,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_administradores_usuarios.php b/admin/WebConsole/gestores/gestor_administradores_usuarios.php index 14de0c41..b62e8e44 100644 --- a/admin/WebConsole/gestores/gestor_administradores_usuarios.php +++ b/admin/WebConsole/gestores/gestor_administradores_usuarios.php @@ -77,4 +77,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_colasacciones.php b/admin/WebConsole/gestores/gestor_colasacciones.php index dcb7a3a6..a8212f33 100644 --- a/admin/WebConsole/gestores/gestor_colasacciones.php +++ b/admin/WebConsole/gestores/gestor_colasacciones.php @@ -175,4 +175,4 @@ function enviaComandoActualizar($aplicacion) if($trama_notificacion==1) return(true); // Devuelve respuesta return(false); // Error de actualización } -?> + diff --git a/admin/WebConsole/gestores/gestor_componentehardwares.php b/admin/WebConsole/gestores/gestor_componentehardwares.php index 00fec28c..9a759b0b 100644 --- a/admin/WebConsole/gestores/gestor_componentehardwares.php +++ b/admin/WebConsole/gestores/gestor_componentehardwares.php @@ -166,4 +166,4 @@ function SubarbolXML_ComponenteHardwares($cmd,$idhardware,$descripcion,$idtipoha $cadenaXML.='</COMPONENTEHARDWARES>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_componentesoftwares.php b/admin/WebConsole/gestores/gestor_componentesoftwares.php index 03483715..f437934b 100644 --- a/admin/WebConsole/gestores/gestor_componentesoftwares.php +++ b/admin/WebConsole/gestores/gestor_componentesoftwares.php @@ -170,4 +170,4 @@ function SubarbolXML_Componentesoftwares($cmd,$idsoftware,$descripcion,$idtiposo $cadenaXML.='</COMPONENTESOFTWARES>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_ejecutaracciones.php b/admin/WebConsole/gestores/gestor_ejecutaracciones.php index 40672678..8e27d1be 100644 --- a/admin/WebConsole/gestores/gestor_ejecutaracciones.php +++ b/admin/WebConsole/gestores/gestor_ejecutaracciones.php @@ -306,5 +306,5 @@ function enviaComando($parametros,$sesion) } return(true); } -?> + diff --git a/admin/WebConsole/gestores/gestor_entidades.php b/admin/WebConsole/gestores/gestor_entidades.php index d37f41e0..7c89d30b 100644 --- a/admin/WebConsole/gestores/gestor_entidades.php +++ b/admin/WebConsole/gestores/gestor_entidades.php @@ -164,4 +164,4 @@ function SubarbolXML_entidades($identidad,$nombreentidad){ $cadenaXML.='></ENTIDAD>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_imagenes.php b/admin/WebConsole/gestores/gestor_imagenes.php index a0706725..a412f20b 100644 --- a/admin/WebConsole/gestores/gestor_imagenes.php +++ b/admin/WebConsole/gestores/gestor_imagenes.php @@ -207,4 +207,4 @@ function SubarbolXML_imagenes($idimagen,$descripcion) $cadenaXML.='</IMAGEN>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_inclusionacciones.php b/admin/WebConsole/gestores/gestor_inclusionacciones.php index f9337942..e20dad5d 100644 --- a/admin/WebConsole/gestores/gestor_inclusionacciones.php +++ b/admin/WebConsole/gestores/gestor_inclusionacciones.php @@ -172,4 +172,4 @@ function Gestiona() } return(true); } -?> + diff --git a/admin/WebConsole/gestores/gestor_menus.php b/admin/WebConsole/gestores/gestor_menus.php index e024100c..7545d079 100644 --- a/admin/WebConsole/gestores/gestor_menus.php +++ b/admin/WebConsole/gestores/gestor_menus.php @@ -184,7 +184,7 @@ function Gestiona(){ ________________________________________________________________________________________________________*/ function SubarbolXML_menus($idmenu,$descripcion){ global $LITAMBITO_MENUS; - $cadenaXML.='<MENU'; + $cadenaXML='<MENU'; // Atributos $cadenaXML.=' imagenodo="../images/iconos/menu.gif"'; $cadenaXML.=' infonodo="' .$descripcion.'"'; @@ -194,4 +194,4 @@ function SubarbolXML_menus($idmenu,$descripcion){ $cadenaXML.='</MENU>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_ordenadores.php b/admin/WebConsole/gestores/gestor_ordenadores.php index 2b517abd..0c638998 100644 --- a/admin/WebConsole/gestores/gestor_ordenadores.php +++ b/admin/WebConsole/gestores/gestor_ordenadores.php @@ -147,13 +147,19 @@ if($opcion!=$op_movida){ break; } if ($resul){ - if ($opcion==$op_alta ) { + if ($opcion == $op_alta) { if ( $datosduplicados != '') { echo $literal."(0,'".$TbMsg["DUPLICADO"].$datosduplicados." ',".$idordenador.",o.innerHTML);".chr(13); - } else { + } else { echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idordenador.",o.innerHTML);".chr(13); } - } + } elseif ($opcion == $op_modificacion) { + if ( $datosduplicados != '') { + echo $literal."(0,'".$TbMsg["DUPLICADO"].$datosduplicados." ','".$nombreordenador."');".chr(13); + } else { + echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreordenador."');".chr(13); + } + } else echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreordenador."');".chr(13); } @@ -253,34 +259,14 @@ function Gestiona(){ switch($opcion){ case $op_alta : - // Comprueba que no existan duplicados - $ipduplicada='no'; - $nombreduplicado='no'; - $macduplicada='no'; - $cmd->texto="SELECT nombreordenador,ip,mac FROM ordenadores - WHERE nombreordenador=@nombreordenador OR ip=@ip OR mac=@mac"; - $rs=new Recordset; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return(0); // Error al abrir recordset - $rs->Primero(); - while (!$rs->EOF){ - if ( $nombreordenador == $rs->campos["nombreordenador"]) $datosduplicados ="nombre: $nombreordenador,"; - if ( $ip == $rs->campos["ip"]) $datosduplicados .=" ip: $ip,"; - if ( $mac == $rs->campos["mac"]) $datosduplicados .=" mac: $mac,"; - $rs->Siguiente(); - } - $rs->Cerrar(); - // quitamos última coma - $datosduplicados = trim($datosduplicados, ','); - - // Si no hay datos duplicados insertamos el ordenador; - if ( $datosduplicados == "" ) { - //Insertar fotoord con Values @fotoordenador - $cmd->texto="INSERT INTO ordenadores(nombreordenador,numserie,ip,mac,idperfilhard,idrepositorio,oglivedir, - idmenu,idproautoexec,idaula,grupoid,netiface,netdriver,fotoord,validacion,paginalogin,paginavalidacion) VALUES (@nombreordenador,@numserie,@ip,@mac,@idperfilhard,@idrepositorio,@oglivedir, - @idmenu,@idprocedimiento,@idaula,@grupoid,@netiface,@netdriver,@fotoordenador,@validacion,@paginalogin,@paginavalidacion)"; - } - $resul=$cmd->Ejecutar(); + $duplicates = checkDuplicates($cmd, $datosduplicados, $idordenador, $nombreordenador, $ip, $mac); + // Si no hay datos duplicados insertamos el ordenador; + if (!$duplicates) { + $cmd->texto="INSERT INTO ordenadores(nombreordenador,numserie,ip,mac,idperfilhard,idrepositorio,oglivedir, + idmenu,idproautoexec,idaula,grupoid,netiface,netdriver,fotoord,validacion,paginalogin,paginavalidacion) VALUES (@nombreordenador,@numserie,@ip,@mac,@idperfilhard,@idrepositorio,@oglivedir, + @idmenu,@idprocedimiento,@idaula,@grupoid,@netiface,@netdriver,@fotoordenador,@validacion,@paginalogin,@paginavalidacion)"; + } + $resul=$cmd->Ejecutar(); if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta $idordenador=$cmd->Autonumerico(); // Crear fichero TFTP/PXE por defecto para el nuevo ordenador. @@ -293,10 +279,13 @@ function Gestiona(){ $tablanodo=$arbol->CreaArbolVistaXML(); } break; - case $op_modificacion: - $cmd->texto="UPDATE ordenadores SET nombreordenador=@nombreordenador,numserie=@numserie,ip=@ip,mac=@mac,idperfilhard=@idperfilhard, - idrepositorio=@idrepositorio,oglivedir=@oglivedir,idmenu=@idmenu,idproautoexec=@idprocedimiento,netiface=@netiface,netdriver=@netdriver,fotoord=@fotoordenador,validacion=@validacion,paginalogin=@paginalogin,paginavalidacion=@paginavalidacion - WHERE idordenador=@idordenador"; + case $op_modificacion: + $duplicates = checkDuplicates($cmd, $datosduplicados, $idordenador, $nombreordenador, $ip, $mac); + if (!$duplicates) { + $cmd->texto="UPDATE ordenadores SET nombreordenador=@nombreordenador,numserie=@numserie,ip=@ip,mac=@mac,idperfilhard=@idperfilhard, + idrepositorio=@idrepositorio,oglivedir=@oglivedir,idmenu=@idmenu,idproautoexec=@idprocedimiento,netiface=@netiface,netdriver=@netdriver,fotoord=@fotoordenador,validacion=@validacion,paginalogin=@paginalogin,paginavalidacion=@paginavalidacion + WHERE idordenador=@idordenador"; + } $resul=$cmd->Ejecutar(); // Actualizar fichero TFTP/PXE a partir de la plantilla asociada. createBootMode ($cmd, $arranque, $idordenador, $idioma); @@ -317,6 +306,31 @@ function Gestiona(){ } return($resul); } + +function checkDuplicates(&$cmd, &$duplicate_data, $computer_id, $computer_name, $ip, $mac){ + $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores + WHERE nombreordenador=@nombreordenador OR ip=@ip OR mac=@mac"; + $rs = new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(0); + $rs->Primero(); + while (!$rs->EOF) { + if ($computer_id != $rs->campos["idordenador"]) { + if ( $computer_name == $rs->campos["nombreordenador"]) + $duplicate_data ="nombre: $computer_name,"; + if ( $ip == $rs->campos["ip"]) + $duplicate_data .=" ip: $ip,"; + if (strtoupper($mac) == strtoupper($rs->campos["mac"])) + $duplicate_data .=" mac: $mac,"; + } + $rs->Siguiente(); + } + $rs->Cerrar(); + $duplicate_data = trim($duplicate_data, ','); + $ret = !empty($duplicate_data); + return ret; +} + /*________________________________________________________________________________________________________ Crea un arbol XML para el nuevo nodo insertado ________________________________________________________________________________________________________*/ diff --git a/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php b/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php index 6682b748..a5822567 100644 --- a/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php +++ b/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php @@ -74,4 +74,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php b/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php index baef269a..90c78314 100644 --- a/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php +++ b/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php @@ -74,4 +74,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_perfilhardwares.php b/admin/WebConsole/gestores/gestor_perfilhardwares.php index 43f50a28..6a238854 100644 --- a/admin/WebConsole/gestores/gestor_perfilhardwares.php +++ b/admin/WebConsole/gestores/gestor_perfilhardwares.php @@ -166,5 +166,5 @@ function SubarbolXML_perfileshard($idperfilhard,$descripcion){ $cadenaXML.='</PERFILESHARDWARES>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_perfilsoftwares.php b/admin/WebConsole/gestores/gestor_perfilsoftwares.php index b50b4252..2185d2d7 100644 --- a/admin/WebConsole/gestores/gestor_perfilsoftwares.php +++ b/admin/WebConsole/gestores/gestor_perfilsoftwares.php @@ -156,4 +156,4 @@ function SubarbolXML_perfilessoft($idperfilsoft,$descripcion){ $cadenaXML.='</PERFILESSOFTWARES>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_procedimientos.php b/admin/WebConsole/gestores/gestor_procedimientos.php index 449c5120..39f99514 100644 --- a/admin/WebConsole/gestores/gestor_procedimientos.php +++ b/admin/WebConsole/gestores/gestor_procedimientos.php @@ -156,4 +156,4 @@ function SubarbolXML_procedimientos($idprocedimiento,$descripcion){ $cadenaXML.='</PROCEDIMIENTO>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_procedimientoscomandos.php b/admin/WebConsole/gestores/gestor_procedimientoscomandos.php index f89f6f2e..dd5af444 100644 --- a/admin/WebConsole/gestores/gestor_procedimientoscomandos.php +++ b/admin/WebConsole/gestores/gestor_procedimientoscomandos.php @@ -68,4 +68,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_programaciones.php b/admin/WebConsole/gestores/gestor_programaciones.php index bd9e0ba7..599427e5 100644 --- a/admin/WebConsole/gestores/gestor_programaciones.php +++ b/admin/WebConsole/gestores/gestor_programaciones.php @@ -205,6 +205,6 @@ function Gestiona() } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_pxe.php b/admin/WebConsole/gestores/gestor_pxe.php index 331b6902..ee3bb751 100644 --- a/admin/WebConsole/gestores/gestor_pxe.php +++ b/admin/WebConsole/gestores/gestor_pxe.php @@ -214,4 +214,4 @@ function cleanString ($cadena) { } -?> + diff --git a/admin/WebConsole/gestores/gestor_reservas.php b/admin/WebConsole/gestores/gestor_reservas.php index b983ecee..dbcb5f85 100644 --- a/admin/WebConsole/gestores/gestor_reservas.php +++ b/admin/WebConsole/gestores/gestor_reservas.php @@ -197,4 +197,4 @@ function SubarbolXML_reservas($idreserva,$descripcion,$estado){ $cadenaXML.='</RESERVA>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/gestor_tareas.php b/admin/WebConsole/gestores/gestor_tareas.php index b96805dd..47928c92 100644 --- a/admin/WebConsole/gestores/gestor_tareas.php +++ b/admin/WebConsole/gestores/gestor_tareas.php @@ -141,8 +141,8 @@ function Gestiona(){ global $op_eliminacion; global $op_movida; global $op_ejecucion; - global $tablanodo; + $resul=false; $cmd->CreaParametro("@idcentro",$idcentro,1); $cmd->CreaParametro("@idtarea",$idtarea,1); @@ -171,7 +171,6 @@ function Gestiona(){ ambito=@ambito,idambito=@idambito WHERE idtarea=@idtarea"; $resul=$cmd->Ejecutar(); - //echo $cmd->texto; break; case $op_eliminacion : $resul=EliminaTareas($cmd,$idtarea,"idtarea"); @@ -181,7 +180,7 @@ function Gestiona(){ $resul=$cmd->Ejecutar(); break; case $op_ejecucion : - $resul=EjecutandoTareas(); + $resul=EjecutandoTareas(); break; default: break; @@ -213,7 +212,7 @@ function EjecutandoTareas(){ global $EJECUCION_TAREA; global $PROCESOS; global $ACCION_INICIADA; - global $ACCION_SINERRORES; + global $ACCION_SINRESULTADO; global $idcentro; global $servidorhidra; global $hidraport; @@ -309,4 +308,4 @@ function EjecutandoTareas(){ } return(true); } -?> + diff --git a/admin/WebConsole/gestores/gestor_tareascomandos.php b/admin/WebConsole/gestores/gestor_tareascomandos.php index c7f88ccd..ceffb695 100644 --- a/admin/WebConsole/gestores/gestor_tareascomandos.php +++ b/admin/WebConsole/gestores/gestor_tareascomandos.php @@ -59,12 +59,14 @@ function Gestiona(){ global $EJECUCION_COMANDO; global $PROCESOS; global $ACCION_INICIADA; - global $ACCION_SINERRORES; + global $ACCION_SINERRORES; + global $ACCION_SINRESULTADO; global $servidorhidra; global $hidraport; global $idcentro; global $idtareacomando; global $orden; + $resul=true; $cmd->CreaParametro("@orden",$orden,1); @@ -90,8 +92,6 @@ function Gestiona(){ $idambito=$Datos["idambito"]; $parametros=$Datos["parametros"]; - $resul=true; - $cmd->CreaParametro("@tipoaccion",$EJECUCION_COMANDO,1); $cmd->CreaParametro("@idtipoaccion",$idtipoaccion,1); $cmd->CreaParametro("@cateaccion",$PROCESOS,1); @@ -119,4 +119,4 @@ function Gestiona(){ } return($resul); } -?> + diff --git a/admin/WebConsole/gestores/gestor_tipohardwares.php b/admin/WebConsole/gestores/gestor_tipohardwares.php index 81e1f992..439de424 100644 --- a/admin/WebConsole/gestores/gestor_tipohardwares.php +++ b/admin/WebConsole/gestores/gestor_tipohardwares.php @@ -147,4 +147,4 @@ function SubarbolXML_tipohardwares($idtipohardware,$descripcion,$urlimg){ $cadenaXML.='</TIPOHARDWARES>'; return($cadenaXML); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php b/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php index f42c6744..0f8ebefd 100644 --- a/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php @@ -40,4 +40,4 @@ function EliminaAulas($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/centros_eliminacion.php b/admin/WebConsole/gestores/relaciones/centros_eliminacion.php index 10ec2a06..af75ef1f 100644 --- a/admin/WebConsole/gestores/relaciones/centros_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/centros_eliminacion.php @@ -38,4 +38,4 @@ function EliminaCentros($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php b/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php index 8444f0ba..706ed66d 100644 --- a/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php @@ -38,4 +38,4 @@ function EliminaEntidad($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php b/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php index d28be296..1b11b2e8 100644 --- a/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php @@ -41,4 +41,4 @@ function EliminaGruposOrdenadores($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php b/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php index a1c2a29e..bf0b7f65 100644 --- a/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php @@ -39,4 +39,4 @@ function EliminaHardwares($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php b/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php index 7b17500d..c0fea566 100644 --- a/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php @@ -40,4 +40,4 @@ function EliminaImagenes($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php b/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php index b2c33cd0..6aa25fa1 100644 --- a/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php @@ -43,4 +43,4 @@ function EliminaSoftincremental($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/menus_eliminacion.php b/admin/WebConsole/gestores/relaciones/menus_eliminacion.php index 4ffcfe06..0d369da2 100644 --- a/admin/WebConsole/gestores/relaciones/menus_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/menus_eliminacion.php @@ -40,4 +40,4 @@ function EliminaMenus($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php b/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php index dd008dee..ed540da4 100644 --- a/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php @@ -48,5 +48,5 @@ function EliminaOrdenadores($cmd,$identificador,$nombreid,$swid=1) $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php b/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php index f3c251c0..6d0391b4 100644 --- a/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php @@ -44,4 +44,4 @@ function EliminaPerfileshard($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php b/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php index ef7c4fc4..4f5d73de 100644 --- a/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php @@ -43,4 +43,4 @@ function EliminaPerfilessoft($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php b/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php index 8351ade0..292f397d 100644 --- a/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php @@ -48,4 +48,4 @@ function EliminaProcedimientos($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php b/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php index 005f8a96..539b2776 100644 --- a/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php @@ -40,4 +40,4 @@ function Eliminarepositorios($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php b/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php index 48ff5a76..3a33701a 100644 --- a/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php @@ -40,4 +40,4 @@ function EliminaReservas($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php b/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php index cb20db38..883403f1 100644 --- a/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php @@ -39,4 +39,4 @@ function EliminaSoftwares($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php b/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php index a0401116..06564e63 100644 --- a/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php @@ -49,4 +49,4 @@ function EliminaTareas($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php b/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php index d88452c7..5a5da48b 100644 --- a/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php @@ -48,4 +48,4 @@ function EliminaTrabajos($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php b/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php index 39160026..d3f1ea2b 100644 --- a/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php +++ b/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php @@ -41,4 +41,4 @@ function EliminaUsuarios($cmd,$identificador,$nombreid,$swid=1){ $resul=$cmd->Ejecutar(); return($resul); } -?> + diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js index 0a049236..8e97dcef 100644 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/configurar_cat.js @@ -1,7 +1,7 @@ //________________________________________________________________________________________________________ // -// Fichero de idiomas javascripts: configurar_esp.js -// Idioma: Español +// Fichero de idiomas javascripts: configurar_cat.js +// Idioma: Catalán //________________________________________________________________________________________________________ TbMsg=new Array; TbMsg[0]="ATENCIÓN: Partición duplicada, ya existe una partición con ese número"; @@ -12,5 +12,6 @@ TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?"; TbMsg[5]="Debe especificar el tipo de sistema de fichero si desea formatear la partición"; TbMsg[6]="La CACHE sólo puede definirse en la partición 4"; TbMsg[7]="El número máximo de particiones es 4"; +TbMsg[8]="El tamaño de la partición no puede ser negativo"; TbMsg["EXTSIZE"]="El tamaño de las particiones lógicas es mayor que el de la partición extendida"; TbMsg["HDSIZE"]="El tamaño de las particiones es mayor el tamaño del disco"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js index 38eef74f..eeaea040 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js @@ -12,5 +12,6 @@ TbMsg[4]="WARNING: This partition will be deleted. Are you sure?"; TbMsg[5]="If you want to format this partition, you must specify file-system type"; TbMsg[6]="CACHE can only be at partition 4"; TbMsg[7]="Maximum number of partitions is 4"; +TbMsg[8]="Partition size cannot be negative"; TbMsg["EXTSIZE"]="Logic partitions size is greater than extended partition size"; TbMsg["HDSIZE"]="Partitions size is greater than disk size"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js index 7b9c146a..5e075b18 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js @@ -1,9 +1,9 @@ //____________________________________________________________________________ // // Fichero de idiomas javascript: tareascomandos_eng.js -// Idioma: Ingls +// Idioma: Inglés //____________________________________________________________________________ -TbMsg=new Array; +TbMsg=[]; TbMsg[0]="WARNING: This command will be excluded from this task. Are you sure?"; TbMsg[1]="WARNING: You must enter a sequence number"; TbMsg[2]="This command has been excluded successfully from this task"; diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js index df708800..8019e20b 100644 --- a/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js +++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js @@ -12,5 +12,6 @@ TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?"; TbMsg[5]="Debe especificar el tipo de sistema de ficheros si desea formatear la partición"; TbMsg[6]="La CACHE sólo puede definirse en la partición 4"; TbMsg[7]="El número máximo de particiones es 4"; +TbMsg[8]="El tamaño de la partición no puede ser negativo"; TbMsg["EXTSIZE"]="El tamaño de las particiones lógicas es mayor que el de la partición extendida"; TbMsg["HDSIZE"]="El tamaño de las particiones es mayor el tamaño del disco"; diff --git a/admin/WebConsole/idiomas/php/cat/acciones_cat.php b/admin/WebConsole/idiomas/php/cat/acciones_cat.php index 07ce21dc..2c28449c 100644 --- a/admin/WebConsole/idiomas/php/cat/acciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/acciones_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: accions_cat.php -// Idioma: Catal +// Idioma: Català //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"Nou grup de procediments"'; @@ -10,19 +10,19 @@ $TbMsg[2]='"Col.locar procediment"'; $TbMsg[3]='"Renombrar"'; $TbMsg[4]='"Eliminar grup de procediments"'; - $TbMsg[5]='"Gesti d\'ordres"'; - $TbMsg[6]='"Informaci Procediment"'; + $TbMsg[5]='"Gestió d\'ordres"'; + $TbMsg[6]='"Informació Procediment"'; $TbMsg[7]='"Moure procediment"'; $TbMsg[8]='"Propietats"'; $TbMsg[9]='"Eliminar procediment"'; - $TbMsg[10]='"Gesti de Mens"'; + $TbMsg[10]='"Gestió de Menús"'; $TbMsg[11]='"Nou grup de tasques"'; $TbMsg[12]='"Definir nova tasca"'; $TbMsg[13]='"Col.locar tasca"'; $TbMsg[14]='"Eliminar grup de tasca"'; $TbMsg[15]='"Executar tasca"'; $TbMsg[16]='"Programacions"'; - $TbMsg[17]='"Informaci Tasca"'; + $TbMsg[17]='"Informació Tasca"'; $TbMsg[18]='"Moure tasca"'; $TbMsg[19]='"Eliminar tasca"'; $TbMsg[20]='"Nou grup de treballs"'; @@ -30,12 +30,11 @@ $TbMsg[22]='"Col.locar treball"'; $TbMsg[23]='"Eliminar grup de treballs"'; $TbMsg[24]='"Executar treball"'; - $TbMsg[25]='"Gesti de tasques"'; - $TbMsg[26]='"Informaci Treball"'; + $TbMsg[25]='"Gestió de tasques"'; + $TbMsg[26]='"Informació Treball"'; $TbMsg[27]='"Moure treball"'; $TbMsg[28]='"Eliminar treball"'; $TbMsg[29]='Procediments'; $TbMsg[30]='Ordres'; $TbMsg[31]='Tasques'; $TbMsg[32]='Treballs'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/accionmenu_cat.php b/admin/WebConsole/idiomas/php/cat/accionmenu_cat.php index b5123a0c..9fe1c2b9 100644 --- a/admin/WebConsole/idiomas/php/cat/accionmenu_cat.php +++ b/admin/WebConsole/idiomas/php/cat/accionmenu_cat.php @@ -2,22 +2,21 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: accionmenu_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Items'; - $TbMsg[1]='Gesti Items Men'; + $TbMsg[1]='Gesti� Items Men�'; $TbMsg[2]='Procediment'; $TbMsg[3]='Tasca'; $TbMsg[4]='Treballs'; - $TbMsg[5]='Pblic'; + $TbMsg[5]='P�blic'; $TbMsg[6]='Privat'; - $TbMsg[7]='Items pblics '; + $TbMsg[7]='Items p�blics '; $TbMsg[8]='Items privats '; - $TbMsg[9]='Nom del Men'; + $TbMsg[9]='Nom del Men�'; $TbMsg[10]='Tipus item'; $TbMsg[11]='Imatge del item'; $TbMsg[12]='Literal item'; $TbMsg[13]='Ord'; - $TbMsg[14]='(*)Per a incloure alguna acci en aquest men ha de fer click sobre la casella de verificaci corresponent. Per a actualitzar faci click sobre la imatge.'; -?>
\ No newline at end of file + $TbMsg[14]='(*)Per a incloure alguna acci� en aquest men� ha de fer click sobre la casella de verificaci� corresponent. Per a actualitzar faci click sobre la imatge.'; diff --git a/admin/WebConsole/idiomas/php/cat/acercade_cat.php b/admin/WebConsole/idiomas/php/cat/acercade_cat.php index 7c731a31..50ffe6b0 100644 --- a/admin/WebConsole/idiomas/php/cat/acercade_cat.php +++ b/admin/WebConsole/idiomas/php/cat/acercade_cat.php @@ -17,5 +17,5 @@ $TbMsg["CHANGE"]='Canvis en: '; $TbMsg["MANUAL"]='Manual OpenGnsys '; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/actualizar_cat.php b/admin/WebConsole/idiomas/php/cat/actualizar_cat.php index 40365eb0..941840c7 100644 --- a/admin/WebConsole/idiomas/php/cat/actualizar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/actualizar_cat.php @@ -2,9 +2,8 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: actualitzar_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Aquest mbit s\'ha actualitzat correctament'; - $TbMsg[1]='ATENCI: Hi ha hagut un problema al actualitzar l\'mbit'; -?>
\ No newline at end of file + $TbMsg[0]='Aquest �mbit s\'ha actualitzat correctament'; + $TbMsg[1]='ATENCI�: Hi ha hagut un problema al actualitzar l\'�mbit'; diff --git a/admin/WebConsole/idiomas/php/cat/administracion_cat.php b/admin/WebConsole/idiomas/php/cat/administracion_cat.php index 4889107d..9717510c 100644 --- a/admin/WebConsole/idiomas/php/cat/administracion_cat.php +++ b/admin/WebConsole/idiomas/php/cat/administracion_cat.php @@ -1,11 +1,11 @@ <?php //________________________________________________________________________________________________________ // -// Fitxer d'idiomes php: administraci_cat.php -// Idioma: Catal +// Fitxer d'idiomes php: administraci�_cat.php +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"Administraci"'; + $TbMsg[0]='"Administraci�"'; $TbMsg[1]='"Nou grup d\'Entitats"'; $TbMsg[2]='"Nova Entitat"'; $TbMsg[3]='"Nou Superadministrador"'; @@ -16,4 +16,3 @@ $TbMsg[8]='"Nova unitat organitzativa"'; $TbMsg[9]='"Nou Administrador"'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/administradores_centros_cat.php b/admin/WebConsole/idiomas/php/cat/administradores_centros_cat.php index 40ff7341..910a51e4 100644 --- a/admin/WebConsole/idiomas/php/cat/administradores_centros_cat.php +++ b/admin/WebConsole/idiomas/php/cat/administradores_centros_cat.php @@ -11,4 +11,4 @@ $TbMsg[3]='Nom de l\'administrador'; $TbMsg[4]='(*)Per incluir algun administrador en aquesta Unitat Organitzativa ha de fer click sobre la casella de verificació corresponent.'; $TbMsg[5]='Administradors disponibles'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/administradores_usuarios_cat.php b/admin/WebConsole/idiomas/php/cat/administradores_usuarios_cat.php index 5ce0a954..f210b76b 100644 --- a/admin/WebConsole/idiomas/php/cat/administradores_usuarios_cat.php +++ b/admin/WebConsole/idiomas/php/cat/administradores_usuarios_cat.php @@ -11,4 +11,4 @@ $TbMsg[3]='Nom del centre'; $TbMsg[4]='(*)Per assignar algun centre a un administrador ha de fer click sobre la casella de verificació corresponent.'; $TbMsg[5]='Centres disponibles'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/aulas_cat.php b/admin/WebConsole/idiomas/php/cat/aulas_cat.php index 75d55af7..8e5b9dae 100644 --- a/admin/WebConsole/idiomas/php/cat/aulas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/aulas_cat.php @@ -56,5 +56,5 @@ $TbMsg[48]='"Log en temps real"'; $TbMsg[49]='"Sincronización"'; $TbMsg[50]='"Sincronización 2"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/avisos_cat.php b/admin/WebConsole/idiomas/php/cat/avisos_cat.php index 97eb5f15..65522458 100644 --- a/admin/WebConsole/idiomas/php/cat/avisos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/avisos_cat.php @@ -14,5 +14,5 @@ $TbMsg["WARN_NOTESOFMENU"]='NOTAS: Los menús personalizados tienen mayor $TbMsg["WARN_GPT"]='AVISO: Para tabla de particiones GPT es necesario que la primera partición sea tipo EFI <br>y se recomienda un tamaño en torno a 512Mb.'; $TbMsg["WARN_SCHEDULER"]='AVISO: activar calendario de eventos de la BD para habilitar esta propiedad.'; $TbMsg["WARN_SOURCE_PATH"]='AVISO: La ruta de origen sólo se utiliza en las sincronizadas tipo directorio.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/ayuda_cat.php b/admin/WebConsole/idiomas/php/cat/ayuda_cat.php index 40607de3..ee47be1d 100644 --- a/admin/WebConsole/idiomas/php/cat/ayuda_cat.php +++ b/admin/WebConsole/idiomas/php/cat/ayuda_cat.php @@ -5,11 +5,12 @@ // Idioma: Catalán // __________________________________________________ // Mensajes. -$TbMsg=array(); +if (empty ($TbMsg)) $TbMsg=array(); $TbMsg["HELP_TITLE"]='Ayuda'; $TbMsg["MANUAL"]='Manual de usuario'; -$TbMsg["API"]='Documentación de la API'; +$TbMsg["API"]='Documentación de la API del Motor de Clonación'; $TbMsg["CFG"]='Configuración de los clientes'; +$TbMsg["REST"]='Documentación de la API REST'; $TbMsg["CHANGELOG"]='Cambios en la versión:'; $TbMsg["USERMAIL"]='Lista de correos de usuarios'; $TbMsg["WEB"]='Web del proyecto: opengnsys.es'; diff --git a/admin/WebConsole/idiomas/php/cat/buscar_cat.php b/admin/WebConsole/idiomas/php/cat/buscar_cat.php index 5c7ff062..494cd99a 100644 --- a/admin/WebConsole/idiomas/php/cat/buscar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/buscar_cat.php @@ -17,5 +17,5 @@ $TbMsg["SEARCH_NOMATCHES"]="No es troben resultats"; $TbMsg["SEARCH_NOVALUE"]="Ha d\'introduir un valor pel criteri de cerca"; $TbMsg["SEARCH_PROFESSOR"]="Ordenadores de profesor"; $TbMsg["SEARCH_NOREPO"]="Ordenadores sin repositorio"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/colasacciones_cat.php b/admin/WebConsole/idiomas/php/cat/colasacciones_cat.php index 1af27c3c..a130cc69 100644 --- a/admin/WebConsole/idiomas/php/cat/colasacciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/colasacciones_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: colasacciones_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ // Literals dels tipus d'accions @@ -13,14 +13,14 @@ $LITEJECUCION_TRABAJO="Treballs"; $LITACCION_EXITOSA='Finalitzada correctament'; // Literal Finalitzada exitosament $LITACCION_FALLIDA='Finalitzada amb errors'; // Literal Finalitzada amb errors -$LITACCION_TERMINADA='Finalitzada manualment'; //Literal Finalitzada manualment amb indicaci d'exit -$LITACCION_ABORTADA='Cancellada manualment'; // Literal Finalitzada manualment amb indicaci d'errors +$LITACCION_TERMINADA='Finalitzada manualment'; //Literal Finalitzada manualment amb indicaci� d'exit +$LITACCION_ABORTADA='Cancel�lada manualment'; // Literal Finalitzada manualment amb indicaci� d'errors $LITACCION_SINERRORES='Activa sense errors'; // Literal Activa i sense cap error -$LITACCION_CONERRORES='Activa amb errors'; // Literal Activa i amb algn error +$LITACCION_CONERRORES='Activa amb errors'; // Literal Activa i amb alg�n error -$LITACCION_DETENIDA='Parada'; // Literal acci momentniament parada -$LITACCION_INICIADA='Activa'; // Literal acci activa -$LITACCION_FINALIZADA='Finalitzada'; // Literal acci finalitzada +$LITACCION_DETENIDA='Parada'; // Literal acci� moment�niament parada +$LITACCION_INICIADA='Activa'; // Literal acci� activa +$LITACCION_FINALIZADA='Finalitzada'; // Literal acci� finalitzada $TbMsg=array(); $TbMsg[0]='Cua d\'accions'; @@ -34,15 +34,15 @@ $TbMsg=array(); $TbMsg[8]='Data final'; $TbMsg[9]='Hora inici'; $TbMsg[10]='Hora final'; - $TbMsg[11]='mbit'; + $TbMsg[11]='�mbit'; $TbMsg[12]='Eliminar'; $TbMsg[13]='Reiniciar'; $TbMsg[14]='Parar'; $TbMsg[15]='Continuar'; - $TbMsg[16]='Cancellar'; + $TbMsg[16]='Cancel�lar'; $TbMsg[17]='Finalitzar'; - $TbMsg[18]='Acci'; + $TbMsg[18]='Acci�'; $TbMsg[19]='Data final'; $TbMsg[20]='Hora final'; $TbMsg[21]='Data inici'; @@ -59,10 +59,10 @@ $TbMsg=array(); $TbMsg[31]='Tasques'; $TbMsg[32]='Treballs'; - $TbMsg[41]='"Filtre Acci"'; - $TbMsg[42]='"Filtre mbit"'; + $TbMsg[41]='"Filtre Acci�"'; + $TbMsg[42]='"Filtre �mbit"'; $TbMsg[43]='"Eliminar filtre"'; - $TbMsg[44]='"Modificar Acci"'; + $TbMsg[44]='"Modificar Acci�"'; $TbMsg[45]='"Reiniciar"'; $TbMsg[46]='"Eliminar"'; $TbMsg[47]='"Tasca pare"'; @@ -71,9 +71,8 @@ $TbMsg=array(); $TbMsg[50]='"Veure tasques"'; $TbMsg[51]='"Parar"'; $TbMsg[52]='"Continuar"'; - $TbMsg[53]='"Cancellar"'; + $TbMsg[53]='"Cancel�lar"'; $TbMsg[54]='"Finalitzar"'; $TbMsg[55]='"Finalitzar sense errors"'; $TbMsg[56]='"Finalitzar amb errors"'; - $TbMsg[57]='Informaci'; -?>
\ No newline at end of file + $TbMsg[57]='Informaci�'; diff --git a/admin/WebConsole/idiomas/php/cat/colasreservas_cat.php b/admin/WebConsole/idiomas/php/cat/colasreservas_cat.php index 834b6ce1..7575f0ac 100644 --- a/admin/WebConsole/idiomas/php/cat/colasreservas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/colasreservas_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: colasreservas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ // Literals dels tipus de reserves @@ -10,14 +10,14 @@ $LITRESERVA_PENDENT="Pendents"; $LITRESERVA_CONFIRMADA="Confirmades"; $LITRESERVA_DENEGADA="Denegades"; -$RESERVA_PARADA=1; // reserva momentniament aturada +$RESERVA_PARADA=1; // reserva moment�niament aturada $RESERVA_ACTIVA=0; // Reserva activa -$LITRESERVA_PARADA='Suspesa'; // Literal reserva momentniament aturada +$LITRESERVA_PARADA='Suspesa'; // Literal reserva moment�niament aturada $LITRESERVA_ACTIVA='Activa'; // Literal reserva activa $TbMsg=array(); $TbMsg[0]='Reserves d\'aules'; - $TbMsg[1]='Opcions de bsqueda'; + $TbMsg[1]='Opcions de b�squeda'; $TbMsg[2]='Tipus'; $TbMsg[3]=''; $TbMsg[4]='Estats'; @@ -27,7 +27,7 @@ $TbMsg=array(); $TbMsg[8]='Data final'; $TbMsg[9]='Hora inici'; $TbMsg[10]='Hora final'; - $TbMsg[11]='mbit'; + $TbMsg[11]='�mbit'; $TbMsg[12]='Centres'; $TbMsg[13]='Grup d\'aules'; @@ -35,19 +35,18 @@ $TbMsg=array(); $TbMsg[15]='Any'; $TbMsg[16]='Mes'; - $TbMsg[17]='Da'; + $TbMsg[17]='D�a'; $TbMsg[18]='Aula'; - $TbMsg[19]='Ocupaci'; + $TbMsg[19]='Ocupaci�'; $TbMsg[20]='Imatge associada'; - $TbMsg[21]='Descripci'; + $TbMsg[21]='Descripci�'; - $TbMsg[22]='Programaci reserves'; + $TbMsg[22]='Programaci� reserves'; $TbMsg[23]='(Sense especificar)'; $TbMsg[24]='Aula'; - $TbMsg[25]='Sollicitant'; - $TbMsg[26]="Anticipaci previa"; - $TbMsg[27]="(Sense acci previa)"; + $TbMsg[25]='Sol�licitant'; + $TbMsg[26]="Anticipaci� previa"; + $TbMsg[27]="(Sense acci� previa)"; $TbMsg[28]="Tasca previa"; $TbMsg[29]="Treball previ"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/apagar_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/apagar_cat.php index b47ebe1f..30e73236 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/apagar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/apagar_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]='Apagar ordinadors'; $TbMsg[6]='Àmbit'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/arrancar_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/arrancar_cat.php index 7423433d..547f21aa 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/arrancar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/arrancar_cat.php @@ -17,4 +17,4 @@ $TbMsg[9]='Unicast'; $TbMsg[10]='Método de arranque'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/comando_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/comando_cat.php index 3f9f49eb..07612ae8 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/comando_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/comando_cat.php @@ -13,4 +13,4 @@ $TbMsg[5]='Apagar ordinadors'; $TbMsg[6]='Àmbit'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/configurar_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/configurar_cat.php index ee1f434d..1b6102a3 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/configurar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/configurar_cat.php @@ -46,4 +46,4 @@ $TbMsg[34]='Perfil Software'; $TbMsg["HD"]='Disco'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/conmutar_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/conmutar_cat.php index 9c171e04..5b0efb7d 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/conmutar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/conmutar_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]='Commutar ordinadors'; $TbMsg[6]='Àmbit'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/crearimagenbasica_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/crearimagenbasica_cat.php index 3e7cab90..819414c2 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/crearimagenbasica_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/crearimagenbasica_cat.php @@ -22,4 +22,4 @@ $TbMsg[14]='Copiar Imagen en cache'; $TbMsg[15]='Borrarla previamente de la cache'; $TbMsg[16]='No borrar archivos en destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/crearperfilsoftware_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/crearperfilsoftware_cat.php index 55205ecf..965703b7 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/crearperfilsoftware_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/crearperfilsoftware_cat.php @@ -18,4 +18,4 @@ $TbMsg[10]='Descripció de la Imatge '; $TbMsg[11]='Repositori de destí'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/crearsoftincremental_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/crearsoftincremental_cat.php index 5322f7a3..32d01b3c 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/crearsoftincremental_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/crearsoftincremental_cat.php @@ -16,4 +16,4 @@ $TbMsg[8]='Par'; $TbMsg[9]='Nom Perfil'; $TbMsg[10]='Software incremental disponible'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php index d2c193ad..f0035057 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/ejecutarscripts_cat.php @@ -58,5 +58,5 @@ $TbMsg["WCRP35"]='Escull el mètode de transferència'; $TbMsg["WCRP36"]='Escull eina de clonació:'; $TbMsg["WCRP37"]='Escull compressor per l\'eina de clonació:'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagencache_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagencache_cat.php index 68e70272..603f8b40 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagencache_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagencache_cat.php @@ -26,4 +26,4 @@ $TbMsg[18]='Grand�ria de la imatge disponible si Repositori i Servidor Web allotjats al mateix Servidor'; $TbMsg[19]='Tipus'; $TbMsg["CONFIG_NOCONFIG"]='Sense configuraci�: client no connectat al servidor.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php index a46d95cc..d1ca169f 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/eliminarimagenrepo_cat.php @@ -39,4 +39,4 @@ $TbMsg[31]='Arxiu'; $TbMsg[32]='Directori'; $TbMsg[33]='AVISO: La imagen está situada en un directorio que no corresponde a la unidad organizativa.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/enviarmensaje_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/enviarmensaje_cat.php index b6f3d68d..09cbd259 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/enviarmensaje_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/enviarmensaje_cat.php @@ -19,5 +19,5 @@ $TbMsg["OGAGENT"]="AVISO: Sólo se puede utilizar en los equipos que se haya iniciado la sesión <br>y tengan instalado en nuevo agente de OpenGnsys."; $TbMsg["OPTION"]="AVISO: El nuevo agente, en esta versión, no permite utilizar la cola de acciones."; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/gestor_ejecutarscripts_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/gestor_ejecutarscripts_cat.php index 372a2d47..959c322a 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/gestor_ejecutarscripts_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/gestor_ejecutarscripts_cat.php @@ -10,4 +10,3 @@ $TbMsg[3]='"ATENCIÓ: El fitxer no te la extensió .rbc"'; $TbMsg[4]='"ATENCIÓ: El fitxer no conté codi Rembo-C per executar"'; $TbMsg[5]='"ATENCIÓ: Hi ha algun problema per salvar el fitxer de script"'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/iniciarsesion_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/iniciarsesion_cat.php index 827108af..28533d42 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/iniciarsesion_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/iniciarsesion_cat.php @@ -18,4 +18,4 @@ $TbMsg[10]='Nom de la Imatge '; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/inventariohardware_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/inventariohardware_cat.php index 80a6e8e1..28a271f3 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/inventariohardware_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/inventariohardware_cat.php @@ -13,4 +13,4 @@ $TbMsg[5]='Inventari Hardware'; $TbMsg[6]='Àmbit'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/inventariosoftware_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/inventariosoftware_cat.php index a638c406..e1802d16 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/inventariosoftware_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/inventariosoftware_cat.php @@ -15,4 +15,4 @@ $TbMsg[7]='Dades a subministrar'; $TbMsg[8]='Par'; $TbMsg[9]='Nom S.O.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php index 408728dc..6cb41194 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/mensajes_cat.php @@ -25,5 +25,5 @@ $TbMsg["COMMAND_RestaurarSoftIncremental"]="Restaurar Software Incremental"; $TbMsg["WIZARD_Asistente Particionado"]="Assistent de particionat"; $TbMsg["WIZARD_Asistente Clonacion Particiones Remotas"]="Clonar particions remotes"; $TbMsg["WIZARD_Asistente Deploy de Imagenes"]="Deploy d\'imatges"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php index 3a268d86..6bc85e0d 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/opcionesacciones_cat.php @@ -18,4 +18,3 @@ $TbMsgAux[10]='Guardar como a tasca nova' ; $TbMsgAux[11]='Incluir-ho en una tasca existent' ; $TbMsgAux[12]='Ordre d\'execució'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/particionaryformatear_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/particionaryformatear_cat.php index 10efdeb5..0ff8ded9 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/particionaryformatear_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/particionaryformatear_cat.php @@ -23,4 +23,3 @@ $TbMsg[15]='Ocultar'; $TbMsg[16]='Mostrar'; $TbMsg[17]='¡¡ Espai liure !!'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/reiniciar_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/reiniciar_cat.php index b968c455..d72b056b 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/reiniciar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/reiniciar_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]='Reiniciar ordinadors'; $TbMsg[6]='Àmbit'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/rembooffline_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/rembooffline_cat.php index 6bc79236..61bd14f4 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/rembooffline_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/rembooffline_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]='Activar rembo Offline'; $TbMsg[6]='Àmbit'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagen_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagen_cat.php index 7be92108..c5d0cb5d 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagen_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagen_cat.php @@ -42,4 +42,4 @@ $TbMsg[32]='Grandària de partició'; $TbMsg[33]='Nom de la Imatge '; $TbMsg[34]='Perfil software'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagenbasica_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagenbasica_cat.php index d5aa2825..5afcc534 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagenbasica_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/restaurarimagenbasica_cat.php @@ -50,4 +50,4 @@ $TbMsg[39]='Método'; $TbMsg[40]='Unicast'; $TbMsg[41]='Multicast'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/restaurarsoftincremental_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/restaurarsoftincremental_cat.php index 6712c25c..93b3b652 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/restaurarsoftincremental_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/restaurarsoftincremental_cat.php @@ -48,4 +48,4 @@ $TbMsg[37]='Borrarla previamente de la cache'; $TbMsg[38]='Software Incremental'; $TbMsg[39]='No borrar archivos en destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/comandos/tomaconfiguracion_cat.php b/admin/WebConsole/idiomas/php/cat/comandos/tomaconfiguracion_cat.php index 31be40d2..c0061c28 100644 --- a/admin/WebConsole/idiomas/php/cat/comandos/tomaconfiguracion_cat.php +++ b/admin/WebConsole/idiomas/php/cat/comandos/tomaconfiguracion_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]='Agafar configuració'; $TbMsg[6]='Àmbit'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php b/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php index e93b584f..6eaf723a 100644 --- a/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/configuraciones_cat.php @@ -60,5 +60,5 @@ $TbMsg[44]='Equip sense Perfil de Hardware'; $TbMsg[45]='Afegeixi Perfil per obtenir dades'; $TbMsg[495]='Data/Caché'; $TbMsg[4951]='Caché lliure'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/conmutar_cat.php b/admin/WebConsole/idiomas/php/cat/conmutar_cat.php index 146576ec..181c3b59 100644 --- a/admin/WebConsole/idiomas/php/cat/conmutar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/conmutar_cat.php @@ -2,9 +2,8 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: conmutar_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Aquest mbit ha commutat correctament'; - $TbMsg[1]='ATENCI: Ha hagut algun problema al conmutar l\'mbit'; -?>
\ No newline at end of file + $TbMsg[0]='Aquest �mbit ha commutat correctament'; + $TbMsg[1]='ATENCI�: Ha hagut algun problema al conmutar l\'�mbit'; diff --git a/admin/WebConsole/idiomas/php/cat/consolaremota_cat.php b/admin/WebConsole/idiomas/php/cat/consolaremota_cat.php index 8b652bd1..319f69ef 100644 --- a/admin/WebConsole/idiomas/php/cat/consolaremota_cat.php +++ b/admin/WebConsole/idiomas/php/cat/consolaremota_cat.php @@ -21,4 +21,4 @@ $TbMsg[13]='ATENCIÓ: Ha escollit un àmbit d\'aplicació per la consola remota diferent al "d\'ordinador". <BR>Per visualitzar l\'eco de qualsevol client premi sobre ell amb el botón secundari i seleccioni "Eco de consola"; <BR>S\'obrirà una finestra que es refrescarà automàticament on podrà fer un seguiment de la/el comanda/script introduït'; $TbMsg[14]='...Esperi si us plau, enviant el codi del script'; $TbMsg[15]='...El codi del script s\'ha enviat, per veure la sortida de qualsevol ordinador seleccioni "Eco de Consola"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/descargas_cat.php b/admin/WebConsole/idiomas/php/cat/descargas_cat.php index 08152fa6..e1936f6a 100644 --- a/admin/WebConsole/idiomas/php/cat/descargas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/descargas_cat.php @@ -10,4 +10,4 @@ $TbMsg['DOWNLOADS']="Descàrregues disponibles"; $TbMsg['NOFILES']="No hi ha fitxers disponibles"; // Avís: no hi ha cap deixar caràcter fora del codi PHP. -?> + diff --git a/admin/WebConsole/idiomas/php/cat/ecoremoto_cat.php b/admin/WebConsole/idiomas/php/cat/ecoremoto_cat.php index bf04e179..2b3da729 100644 --- a/admin/WebConsole/idiomas/php/cat/ecoremoto_cat.php +++ b/admin/WebConsole/idiomas/php/cat/ecoremoto_cat.php @@ -18,4 +18,4 @@ $TbMsg[10]='ATENCIÓ: Ha ocorregut algun problema al enviar una petició de eco de consola remota a aquest àmbit'; $TbMsg[11]='... esperi si us plau.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/ejecutaracciones_cat.php b/admin/WebConsole/idiomas/php/cat/ejecutaracciones_cat.php index 077ba621..a54e981a 100644 --- a/admin/WebConsole/idiomas/php/cat/ejecutaracciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/ejecutaracciones_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: acciones_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Centres'; @@ -10,10 +10,9 @@ $TbMsg[2]='Aules'; $TbMsg[3]='Grup d\'ordinadors'; $TbMsg[4]='Ordinadors'; - $TbMsg[5]='Execuci de procediments'; - $TbMsg[6]='mbit'; + $TbMsg[5]='Execuci� de procediments'; + $TbMsg[6]='�mbit'; $TbMsg[7]='Procediments'; $TbMsg[8]='Procediments'; $TbMsg[9]='"Executar procediment"'; $TbMsg[10]='"Afegir com autoexec"'; - ?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/estados_cat.php b/admin/WebConsole/idiomas/php/cat/estados_cat.php index 77b35205..40a37436 100644 --- a/admin/WebConsole/idiomas/php/cat/estados_cat.php +++ b/admin/WebConsole/idiomas/php/cat/estados_cat.php @@ -17,5 +17,5 @@ $TbMsg["STATUS_LNXS"]="Sessió GNU/Linux"; $TbMsg["STATUS_OSX"]="macOS"; $TbMsg["STATUS_WIN"]="Windows"; $TbMsg["STATUS_WINS"]="Sessió Windows"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/gestor_ordenadores_cat.php b/admin/WebConsole/idiomas/php/cat/gestor_ordenadores_cat.php index 3eebd1a9..7c1d0665 100644 --- a/admin/WebConsole/idiomas/php/cat/gestor_ordenadores_cat.php +++ b/admin/WebConsole/idiomas/php/cat/gestor_ordenadores_cat.php @@ -6,5 +6,5 @@ //______________________________________________________________ $TbMsg=array(); $TbMsg["DUPLICADO"]="Error al insertar el ordenador, se han encontrado datos duplicados: "; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/hardwares_cat.php b/admin/WebConsole/idiomas/php/cat/hardwares_cat.php index d52d7a82..f2dad48d 100644 --- a/admin/WebConsole/idiomas/php/cat/hardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/hardwares_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: hardwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"Definir nou tipus de hardware"'; @@ -17,14 +17,14 @@ $TbMsg[9]='"Eliminar component"'; $TbMsg[10]='"Nou grup de perfils"'; $TbMsg[11]='"Definir nou perfil"'; - $TbMsg[12]='"Collocar perfil"'; + $TbMsg[12]='"Col�locar perfil"'; $TbMsg[13]='"Eliminar grup de perfils"'; - $TbMsg[14]='"Gesti Components"'; - $TbMsg[15]='"Informaci Perfil"'; + $TbMsg[14]='"Gesti� Components"'; + $TbMsg[15]='"Informaci� Perfil"'; $TbMsg[16]='"Moure perfil"'; $TbMsg[17]='"Eliminar perfil hardware"'; $TbMsg[18]='"Tipus de hardware"'; $TbMsg[19]='"Components hardware"'; $TbMsg[20]='"Perfils hardware"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/iconos_cat.php b/admin/WebConsole/idiomas/php/cat/iconos_cat.php index 20bdbb42..9879a953 100644 --- a/admin/WebConsole/idiomas/php/cat/iconos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/iconos_cat.php @@ -55,5 +55,5 @@ $TbMsg["Particionar"]='Particionar'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/imagenincremental_cat.php b/admin/WebConsole/idiomas/php/cat/imagenincremental_cat.php index 70eb19da..bc5e4c4b 100644 --- a/admin/WebConsole/idiomas/php/cat/imagenincremental_cat.php +++ b/admin/WebConsole/idiomas/php/cat/imagenincremental_cat.php @@ -2,12 +2,11 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: imagenincremental_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Imatges'; - $TbMsg[1]='Gesti de software incremental'; + $TbMsg[1]='Gesti� de software incremental'; $TbMsg[2]='Imatge'; $TbMsg[3]='Nom del software incremental'; - $TbMsg[4]='(*)Per a incloure algun software incremental en aquesta imatge ha de fer click sobre la casella de verificaci corresponent.'; -?>
\ No newline at end of file + $TbMsg[4]='(*)Per a incloure algun software incremental en aquesta imatge ha de fer click sobre la casella de verificaci� corresponent.'; diff --git a/admin/WebConsole/idiomas/php/cat/inclusionacciones_cat.php b/admin/WebConsole/idiomas/php/cat/inclusionacciones_cat.php index 47def840..e360b45c 100644 --- a/admin/WebConsole/idiomas/php/cat/inclusionacciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/inclusionacciones_cat.php @@ -18,4 +18,4 @@ $TbMsg[8]='Procediments disponibles'; $TbMsg[9]='Tasques disponibles'; $TbMsg[10]='Paràmetres'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/incorporaordenadores_cat.php b/admin/WebConsole/idiomas/php/cat/incorporaordenadores_cat.php index 42ffe53f..f6ecef16 100644 --- a/admin/WebConsole/idiomas/php/cat/incorporaordenadores_cat.php +++ b/admin/WebConsole/idiomas/php/cat/incorporaordenadores_cat.php @@ -2,17 +2,17 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: incorporaordenadores_cat.php (Comandos) -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Incorporaci d\'Ordinadors'; + $TbMsg[0]='Incorporaci� d\'Ordinadors'; $TbMsg[1]='Aula'; $TbMsg["MSG_DHCPCODE"]='Codi DHCP'; $TbMsg["MSG_DHCPHOST"]='(declaracions "host")'; - $TbMsg[3]='ATENCI: Hi ha hagut algn problema al incorporar ordinadors des del fitxer'; - $TbMsg[4]='ATENCI: El fitxer est buit'; - $TbMsg[5]='ATENCI: El fitxer no cont informaci amb el format necesari per incorporar ordinadors'; - $TbMsg[6]='ATENCI: Hi ha algn problema per a salvar el fitxer'; + $TbMsg[3]='ATENCI�: Hi ha hagut alg�n problema al incorporar ordinadors des del fitxer'; + $TbMsg[4]='ATENCI�: El fitxer est� buit'; + $TbMsg[5]='ATENCI�: El fitxer no cont� informaci� amb el format necesari per incorporar ordinadors'; + $TbMsg[6]='ATENCI�: Hi ha alg�n problema per a salvar el fitxer'; $TbMsg[7]='S\'han incorporat correctament ordinadors desde fitxer'; $TbMsg[8]='Contingut'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/incrementalcomponente_soft_cat.php b/admin/WebConsole/idiomas/php/cat/incrementalcomponente_soft_cat.php index 16a48e39..3e9826c2 100644 --- a/admin/WebConsole/idiomas/php/cat/incrementalcomponente_soft_cat.php +++ b/admin/WebConsole/idiomas/php/cat/incrementalcomponente_soft_cat.php @@ -2,12 +2,11 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: incrementalcomponente_soft_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Softwares Incrementals'; - $TbMsg[1]='Gesti de components software'; + $TbMsg[1]='Gesti� de components software'; $TbMsg[2]='Software incremental'; $TbMsg[3]='Nombre del component'; - $TbMsg[4]='(*)Per a incloure algun component en aquest software incremental ha de fer click sobre la casella de verificaci corresponent.'; -?>
\ No newline at end of file + $TbMsg[4]='(*)Per a incloure algun component en aquest software incremental ha de fer click sobre la casella de verificaci� corresponent.'; diff --git a/admin/WebConsole/idiomas/php/cat/informacion_acciones_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_acciones_cat.php index 5da6e260..0f5e6359 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_acciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_acciones_cat.php @@ -12,4 +12,4 @@ $TbMsg[4]='Informació sobre Tasques'; $TbMsg[5]='Informació'; $TbMsg[6]='Sense paràmetres'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/informacion_imagenes_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_imagenes_cat.php index d417d4a4..641120e9 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_imagenes_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_imagenes_cat.php @@ -2,17 +2,16 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_imagenes_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Imatges'; - $TbMsg[1]='Informaci sobre imatges'; + $TbMsg[1]='Informaci� sobre imatges'; $TbMsg[2]='Imatge'; - $TbMsg[3]='Informaci de la Imatge'; + $TbMsg[3]='Informaci� de la Imatge'; $TbMsg[4]='Components software'; $TbMsg[5]='Software incremental'; $TbMsg[6]='Perfil Software'; $TbMsg[7]='Ordinadors amb aquesta imatge'; - $TbMsg[8]='Partici'; + $TbMsg[8]='Partici�'; $TbMsg[9]='Comentaris'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_incrementales_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_incrementales_cat.php index a6cdb3ba..399ea6d2 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_incrementales_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_incrementales_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_incrementales_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Software Incremental'; - $TbMsg[1]='Informaci sobre software incremental'; + $TbMsg[1]='Informaci� sobre software incremental'; $TbMsg[2]='Software Incremental'; - $TbMsg[3]='Informaci software incremental'; + $TbMsg[3]='Informaci� software incremental'; $TbMsg[4]='Components software'; $TbMsg[5]='Perfils Combinables'; $TbMsg[6]='Perfils Hardware soportats'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_menus_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_menus_cat.php index f1fba417..d8caaf7e 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_menus_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_menus_cat.php @@ -2,28 +2,27 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_menus_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='tems del Men'; - $TbMsg[1]='Informaci del Men'; - $TbMsg[2]='Men'; - $TbMsg[3]='Informaci Men'; - $TbMsg[4]='Propietats dels tems'; + $TbMsg[0]='�tems del Men�'; + $TbMsg[1]='Informaci� del Men�'; + $TbMsg[2]='Men�'; + $TbMsg[3]='Informaci� Men�'; + $TbMsg[4]='Propietats dels �tems'; $TbMsg[5]='Propietats'; - $TbMsg[6]='Eliminar tem'; - $TbMsg[7]='Ttol'; - $TbMsg[8]='Propietats dels tems pblics del Men'; + $TbMsg[6]='Eliminar �tem'; + $TbMsg[7]='T�tol'; + $TbMsg[8]='Propietats dels �tems p�blics del Men�'; $TbMsg[9]='Coordenada x'; $TbMsg[10]='Coordenada y'; $TbMsg[11]='Modalitat'; - $TbMsg[12]='Propietats de los tems privats del Men'; - $TbMsg[13]='tems pblics '; - $TbMsg[14]='tems privats'; - $TbMsg[15]='Ordre del tem'; - $TbMsg[16]='Literal del tem'; + $TbMsg[12]='Propietats de los �tems privats del Men�'; + $TbMsg[13]='�tems p�blics '; + $TbMsg[14]='�tems privats'; + $TbMsg[15]='Ordre del �tem'; + $TbMsg[16]='Literal del �tem'; $TbMsg[17]='Nombre de la Imatge'; - $TbMsg[18]='Men simple'; - $TbMsg[19]='Men doble'; - $TbMsg[20]='Codi del tem'; -?>
\ No newline at end of file + $TbMsg[18]='Men� simple'; + $TbMsg[19]='Men� doble'; + $TbMsg[20]='Codi del �tem'; diff --git a/admin/WebConsole/idiomas/php/cat/informacion_perfileshard_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_perfileshard_cat.php index ee5c44a3..86aa10c5 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_perfileshard_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_perfileshard_cat.php @@ -2,16 +2,15 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_perfileshard_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Perfils hardware'; - $TbMsg[1]='Informaci sobre Perfils hardware'; + $TbMsg[1]='Informaci� sobre Perfils hardware'; $TbMsg[2]='Perfil hardware'; - $TbMsg[3]='Informaci Perfil hardware'; + $TbMsg[3]='Informaci� Perfil hardware'; $TbMsg[4]='Perfils software disponibles'; $TbMsg[5]='Components software'; $TbMsg[6]='Components hardware '; $TbMsg[7]='Software Incremental'; $TbMsg[8]='Comentaris'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_perfilessoft_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_perfilessoft_cat.php index 3cb41f19..beb43490 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_perfilessoft_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_perfilessoft_cat.php @@ -2,16 +2,15 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_perfilessoft_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Perfils software'; - $TbMsg[1]='Informaci sobre perfils software'; + $TbMsg[1]='Informaci� sobre perfils software'; $TbMsg[2]='Perfil software'; - $TbMsg[3]='Informaci perfils software'; + $TbMsg[3]='Informaci� perfils software'; $TbMsg[4]='Perfils Hardware soportats'; $TbMsg[5]='Components hardware'; $TbMsg[6]='Components software'; $TbMsg[7]='Software Incremental'; $TbMsg[8]='Comentaris'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_procedimientos_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_procedimientos_cat.php index 50e2d796..2d965288 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_procedimientos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_procedimientos_cat.php @@ -2,10 +2,9 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_procedimientos_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Parmetres dels comandaments del Procedment'; - $TbMsg[1]='Parmetre'; + $TbMsg[0]='Par�metres dels comandaments del Procedment'; + $TbMsg[1]='Par�metre'; $TbMsg[2]='Valor'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php index 0501064a..b0728f2e 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_repositorio_cat.php @@ -15,5 +15,5 @@ $TbMsg["IMGTYPE2"]='sincronizada bísica'; $TbMsg["IMGTYPE3"]='sincronizada incremental'; $TbMsg[6]='Ordinadors assignats'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/informacion_tareas_cat.php b/admin/WebConsole/idiomas/php/cat/informacion_tareas_cat.php index e58418e6..73f3bfc5 100644 --- a/admin/WebConsole/idiomas/php/cat/informacion_tareas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/informacion_tareas_cat.php @@ -2,12 +2,11 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: informacion_tareas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Parmetres de les Comandes de la Tasca'; - $TbMsg[1]='Parmetre'; + $TbMsg[0]='Par�metres de les Comandes de la Tasca'; + $TbMsg[1]='Par�metre'; $TbMsg[2]='Valor'; - $TbMsg[3]='mbit'; + $TbMsg[3]='�mbit'; $TbMsg[4]='Nom'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/menucliente_cat.php b/admin/WebConsole/idiomas/php/cat/menucliente_cat.php index cc324849..93aaa9e2 100644 --- a/admin/WebConsole/idiomas/php/cat/menucliente_cat.php +++ b/admin/WebConsole/idiomas/php/cat/menucliente_cat.php @@ -9,4 +9,4 @@ $TbMsg[1]='"Direcció IP"'; $TbMsg[2]='NO S\'HA DETECTAT CAP MENÚ PER AQUEST CLIENT'; $TbMsg[3]='Apagar l\'equip'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/menus_cat.php b/admin/WebConsole/idiomas/php/cat/menus_cat.php index 96d745e9..82ca4639 100644 --- a/admin/WebConsole/idiomas/php/cat/menus_cat.php +++ b/admin/WebConsole/idiomas/php/cat/menus_cat.php @@ -2,19 +2,19 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: menus_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='"Nou grup de mens"'; - $TbMsg[1]='"Definir nou men"'; - $TbMsg[2]='"Collocar men"'; + $TbMsg[0]='"Nou grup de men�s"'; + $TbMsg[1]='"Definir nou men�"'; + $TbMsg[2]='"Col�locar men�"'; $TbMsg[3]='"Renombrar"'; - $TbMsg[4]='"Eliminar grup de mens"'; - $TbMsg[5]='"Informaci Men"'; - $TbMsg[6]='"Moure men"'; + $TbMsg[4]='"Eliminar grup de men�s"'; + $TbMsg[5]='"Informaci� Men�"'; + $TbMsg[6]='"Moure men�"'; $TbMsg[7]='"Propietats"'; - $TbMsg[8]='"Eliminar men"'; - $TbMsg[9]='"Mens"'; + $TbMsg[8]='"Eliminar men�"'; + $TbMsg[9]='"Men�s"'; $TbMsg[10]='"Gestionar Items"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/msgbrowser_cat.php b/admin/WebConsole/idiomas/php/cat/msgbrowser_cat.php index 48f42677..690abe34 100644 --- a/admin/WebConsole/idiomas/php/cat/msgbrowser_cat.php +++ b/admin/WebConsole/idiomas/php/cat/msgbrowser_cat.php @@ -35,4 +35,4 @@ $TbMsg=array(); -?> + diff --git a/admin/WebConsole/idiomas/php/cat/nada_cat.php b/admin/WebConsole/idiomas/php/cat/nada_cat.php index 85d9a1ff..3ffb7495 100644 --- a/admin/WebConsole/idiomas/php/cat/nada_cat.php +++ b/admin/WebConsole/idiomas/php/cat/nada_cat.php @@ -13,4 +13,3 @@ $TbMsg[5]="Navegador"; $TbMsg[6]="Versió Navegador"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/perfilcomponente_hard_cat.php b/admin/WebConsole/idiomas/php/cat/perfilcomponente_hard_cat.php index a3aacff9..501e5669 100644 --- a/admin/WebConsole/idiomas/php/cat/perfilcomponente_hard_cat.php +++ b/admin/WebConsole/idiomas/php/cat/perfilcomponente_hard_cat.php @@ -2,12 +2,11 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: perfilcomponente_hard_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Perfils hardware'; - $TbMsg[1]='Gesti Components hardware'; + $TbMsg[1]='Gesti� Components hardware'; $TbMsg[2]='Perfil hardware'; $TbMsg[3]='Nom del component'; - $TbMsg[4]='(*)Per incloure algun component en aquest perfil ha de fer click sobre la casella de verificaci corresponent.'; -?>
\ No newline at end of file + $TbMsg[4]='(*)Per incloure algun component en aquest perfil ha de fer click sobre la casella de verificaci� corresponent.'; diff --git a/admin/WebConsole/idiomas/php/cat/perfilcomponente_soft_cat.php b/admin/WebConsole/idiomas/php/cat/perfilcomponente_soft_cat.php index 7be75b8f..0d6b732f 100644 --- a/admin/WebConsole/idiomas/php/cat/perfilcomponente_soft_cat.php +++ b/admin/WebConsole/idiomas/php/cat/perfilcomponente_soft_cat.php @@ -2,12 +2,11 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: perfilcomponente_soft_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='Perfils software'; - $TbMsg[1]='Gesti de components software'; + $TbMsg[1]='Gesti� de components software'; $TbMsg[2]='Perfil software'; $TbMsg[3]='Nom del component'; - $TbMsg[4]='(*)Per incloure algun component en aquest perfil ha de fer click sobre la casella de verificaci corresponent.'; -?>
\ No newline at end of file + $TbMsg[4]='(*)Per incloure algun component en aquest perfil ha de fer click sobre la casella de verificaci� corresponent.'; diff --git a/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php b/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php index c2cf710c..916f30a4 100644 --- a/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/pintaParticiones_cat.php @@ -58,5 +58,5 @@ $TbMsg["SEND"]='Protocolo'; $TbMsg["WARN_PROTOCOL"]='La opción "protocolo" sólo se utiliza en las sincronizadas tipo archivo la primera vez que se envía la imagen a caché. <br>En otro caso el protocolo es RSYNC.'; $TbMsg["WARN_DIFFIMAGE"]='Hay una nueva versió de la imagen (se muestra la diferencia de revisiones).'; $TbMsg["WARN_DIFFDISKSIZE"]='ATENCIÓN: no se pueden particionar grupos de ordenadores con distinto tamaño de disco.<br>Marcar la opción de "Desagrupar por tamaño de partición" y pulsar "Aceptar" en el menú superior para aplicar esta operación adecuadamente.'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/procedimientoscomandos_cat.php b/admin/WebConsole/idiomas/php/cat/procedimientoscomandos_cat.php index fff32291..821c2c73 100644 --- a/admin/WebConsole/idiomas/php/cat/procedimientoscomandos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/procedimientoscomandos_cat.php @@ -2,15 +2,14 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: procedimientoscomandos_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Gesti Comandes del Procediment'; + $TbMsg[0]='Gesti� Comandes del Procediment'; $TbMsg[1]='Comandes incloses'; $TbMsg[2]='Procediment'; $TbMsg[3]='Nom Comandes'; $TbMsg[4]='Ord.'; - $TbMsg[5]='Parmetre'; + $TbMsg[5]='Par�metre'; $TbMsg[6]='Valor'; - $TbMsg[7]='(*)Per excloure alguna comanda d\'aquest procediment ha de fer click sobre la casella de verificaci corresponent'; -?>
\ No newline at end of file + $TbMsg[7]='(*)Per excloure alguna comanda d\'aquest procediment ha de fer click sobre la casella de verificaci� corresponent'; diff --git a/admin/WebConsole/idiomas/php/cat/programaciones_cat.php b/admin/WebConsole/idiomas/php/cat/programaciones_cat.php index bf61fc4b..bb7a2da7 100644 --- a/admin/WebConsole/idiomas/php/cat/programaciones_cat.php +++ b/admin/WebConsole/idiomas/php/cat/programaciones_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: programaciones_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ // Literals dels tipus d'accions $LITEJECUCION_COMANDO="Comandes"; @@ -15,5 +15,4 @@ $TbMsg=array(); $TbMsg[0]="Programacions"; $TbMsg[1]="Suspendre temporalment tots els blocs programats"; -$TbMsg[2]="Descripci del bloc"; -?>
\ No newline at end of file +$TbMsg[2]="Descripci� del bloc"; diff --git a/admin/WebConsole/idiomas/php/cat/programacionesaulas_cat.php b/admin/WebConsole/idiomas/php/cat/programacionesaulas_cat.php index 12db16c5..862f52bb 100644 --- a/admin/WebConsole/idiomas/php/cat/programacionesaulas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/programacionesaulas_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: colasreservas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ // Literals dels tipus de reserves @@ -27,7 +27,7 @@ $TbMsg=array(); $TbMsg[8]='Data final'; $TbMsg[9]='Hora inici'; $TbMsg[10]='Hora final'; - $TbMsg[11]='mbit'; + $TbMsg[11]='�mbit'; $TbMsg[12]='Centres'; $TbMsg[13]='Grup d\'aules'; @@ -37,18 +37,17 @@ $TbMsg=array(); $TbMsg[16]='Mes'; $TbMsg[17]='Dia'; $TbMsg[18]='Aula'; - $TbMsg[19]='Ocupaci'; + $TbMsg[19]='Ocupaci�'; $TbMsg[20]='Imatge associada'; - $TbMsg[21]='Descripci'; + $TbMsg[21]='Descripci�'; - $TbMsg[22]='Programaci reserves'; + $TbMsg[22]='Programaci� reserves'; $TbMsg[23]='(Sense especificar)'; $TbMsg[24]='Aula'; - $TbMsg[25]='Sollicitant'; - $TbMsg[26]="Anticipaci prvia"; - $TbMsg[27]="(Sense acci prvia)"; - $TbMsg[28]="Tasca prvia"; + $TbMsg[25]='Sol�licitant'; + $TbMsg[26]="Anticipaci� pr�via"; + $TbMsg[27]="(Sense acci� pr�via)"; + $TbMsg[28]="Tasca pr�via"; $TbMsg[29]="Treball previ"; $TbMsg[30]='Grup de reserves'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/programacionesreservas_cat.php b/admin/WebConsole/idiomas/php/cat/programacionesreservas_cat.php index 4c9c4e1c..f7e278c6 100644 --- a/admin/WebConsole/idiomas/php/cat/programacionesreservas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/programacionesreservas_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: colasreservas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ // Literals dels tipus de reserves @@ -27,7 +27,7 @@ $TbMsg=array(); $TbMsg[8]='Data final'; $TbMsg[9]='Hora inici'; $TbMsg[10]='Hora final'; - $TbMsg[11]='mbit'; + $TbMsg[11]='�mbit'; $TbMsg[12]='Reserves'; $TbMsg[13]='Grup de reserves'; @@ -36,18 +36,17 @@ $TbMsg=array(); $TbMsg[16]='Mes'; $TbMsg[17]='Dia'; $TbMsg[18]='Aula'; - $TbMsg[19]='Ocupaci'; + $TbMsg[19]='Ocupaci�'; $TbMsg[20]='Imatge associada'; - $TbMsg[21]='Descripci'; + $TbMsg[21]='Descripci�'; - $TbMsg[22]='Programaci reserves'; + $TbMsg[22]='Programaci� reserves'; $TbMsg[23]='(Sense especificar)'; $TbMsg[24]='Aula'; - $TbMsg[25]='Sollicitant'; - $TbMsg[26]="Anticipaci prvia"; - $TbMsg[27]="(Sense acci prvia)"; - $TbMsg[28]="Tasca prvia"; + $TbMsg[25]='Sol�licitant'; + $TbMsg[26]="Anticipaci� pr�via"; + $TbMsg[27]="(Sense acci� pr�via)"; + $TbMsg[28]="Tasca pr�via"; $TbMsg[29]="Treball previ"; $TbMsg[30]="Dades Reserva"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_aulas_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_aulas_cat.php index a8185a8d..02c8a984 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_aulas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_aulas_cat.php @@ -59,4 +59,4 @@ $TbMsg['COMM_REMOTEACCESS']="permitir gestión de acceso remoto a los orde $TbMsg['COMM_DEFOGLIVE']="Assignat per l'administrador"; // Ticket-816 PCprofesor $TbMsg['PROP_PROFCOMPUTER']="Ordenador de profesor"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_centros_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_centros_cat.php index 26d81b96..d35360c7 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_centros_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_centros_cat.php @@ -2,17 +2,17 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_ordenadores_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti d'Unitats Organitzatives"; +$TbMsg[4]="Gesti� d'Unitats Organitzatives"; $TbMsg[5]="Nom de la unitat"; $TbMsg[6]="Comentaris"; $TbMsg['DIR']="Directorio"; $TbMsg['MSG_OGUNIT']="Si se elige separar por unidades organizativas, el directorio <b>/opt/opengnsys/images</b><br> debe contener un subdirectorio llamado como el directorio indicado."; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_componentehardwares_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_componentehardwares_cat.php index d32b2e4c..b726ed66 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_componentehardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_componentehardwares_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_componentehardwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Components Hardware"; +$TbMsg[4]="Gesti� Components Hardware"; $TbMsg[5]="Nom"; $TbMsg[6]="Tipus de hardware"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_componentesoftwares_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_componentesoftwares_cat.php index fcbe82e2..b959b2a9 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_componentesoftwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_componentesoftwares_cat.php @@ -2,15 +2,14 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_componentesoftwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Components Software"; +$TbMsg[4]="Gesti� Components Software"; $TbMsg[5]="Nom"; $TbMsg[6]="Tipus de Software"; $TbMsg[7]="Tipus de S.O."; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_entidades_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_entidades_cat.php index 7798aea0..819e4f3b 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_entidades_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_entidades_cat.php @@ -2,16 +2,16 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_ordenadores_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Entitats"; +$TbMsg[4]="Gesti� Entitats"; $TbMsg[5]="Nom de l'Entitat"; $TbMsg[6]="Comentaris"; $TbMsg['OGUNIT']="Separar unidades organizativas"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_entornos_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_entornos_cat.php index 42ae5d85..ac9361bb 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_entornos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_entornos_cat.php @@ -21,4 +21,4 @@ $TbMsg[12]=""; $TbMsg[13]=""; $TbMsg[14]=""; $TbMsg[15]=""; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_grupos_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_grupos_cat.php index b2d56d0e..7c5f6afc 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_grupos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_grupos_cat.php @@ -2,14 +2,14 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_tareas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Grups"; +$TbMsg[4]="Gesti� Grups"; $TbMsg[5]="Nom Grup"; $TbMsg[6]="Comentaris"; $TbMsg[7]="Grups d'Aules"; @@ -24,8 +24,7 @@ $TbMsg[15]="Grups de Perfils Software"; $TbMsg[16]="Grups de Software Incremental"; $TbMsg[17]="Grups de Servidors Rembo"; $TbMsg[18]="Grups de Servidors Dhcp"; -$TbMsg[19]="Grups de Mens"; +$TbMsg[19]="Grups de Men�s"; $TbMsg[20]="Grups de Reserves"; $TbMsg[21]="Grups d'Entitats"; $TbMsg[22]="Grupo d'Ordinadors"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_imagenes_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_imagenes_cat.php index 423eee50..bada5225 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_imagenes_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_imagenes_cat.php @@ -32,4 +32,4 @@ $TbMsg[22]="Introduzca otra Descripción"; $TbMsg['PROP_OS']="Sistema operativo"; $TbMsg['PROP_REMOTEACCESS']="Acceso remoto"; $TbMsg['COMM_REMOTEACCESS']="permitir gestión de acceso remoto a los ordenadores"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php index a6fbbb73..49dc3b7a 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_menus_cat.php @@ -2,25 +2,25 @@ //________________________________________________________________________________________________________ // // Fitxer d'idioms php: propiedades_menus_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Menus"; -$TbMsg[5]="Nom del Men"; -$TbMsg[6]="Ttol"; +$TbMsg[4]="Gesti� Menus"; +$TbMsg[5]="Nom del Men�"; +$TbMsg[6]="T�tol"; $TbMsg[7]="Comentaris"; -$TbMsg[8]="Items de Men Pblico"; +$TbMsg[8]="Items de Men� P�blico"; $TbMsg[9]="Coordenada x"; $TbMsg[10]="Coordenada y"; -$TbMsg[11]="Columnas men automtico"; -$TbMsg[13]="Men simple"; -$TbMsg[14]="Men doble"; -$TbMsg[15]="URL men personalizado"; -$TbMsg[17]="Resoluci de pantalla"; +$TbMsg[11]="Columnas men� autom�tico"; +$TbMsg[13]="Men� simple"; +$TbMsg[14]="Men� doble"; +$TbMsg[15]="URL men� personalizado"; +$TbMsg[17]="Resoluci� de pantalla"; $TbMsg[18]="Imagen de fondo"; $TbMsg["PROP_DEFAULT"]="Detectada por defecto"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_ordenadorestandar_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_ordenadorestandar_cat.php index 0883949f..5a9faa50 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_ordenadorestandar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_ordenadorestandar_cat.php @@ -2,20 +2,20 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_ordenadorestandar_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]="Aula"; $TbMsg[1]="Ordinador plantilla"; $TbMsg[2]="Nom"; -$TbMsg[3]="Direcci IP"; -$TbMsg[4]="Direcci MAC"; +$TbMsg[3]="Direcci� IP"; +$TbMsg[4]="Direcci� MAC"; $TbMsg[5]="Perfil hardware"; $TbMsg[6]="Servidor Dhcp"; $TbMsg[7]="Servidor Rembo "; $TbMsg[8]="Ordinadors per a afegir"; $TbMsg[9]='(*) Per modificar un ordinador amb un certa dada, en aquesta aula, ha d\'introduir el valor corresponent i deixar el camp "Ordinadors a afegir" a zero.'; -$TbMsg[10]="(**) Si es tracta d\'ordinadors nous amb una configuraci per defecte, per no vol modificar els ordinadors ja existents ha d'\introduir un valor ms gran que zero."; -$TbMsg[11]="Grandria Cach"; +$TbMsg[10]="(**) Si es tracta d\'ordinadors nous amb una configuraci� per defecte, per� no vol modificar els ordinadors ja existents ha d'\introduir un valor m�s gran que zero."; +$TbMsg[11]="Grand�ria Cach�"; + -?> diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_perfilhardwares_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_perfilhardwares_cat.php index 1ce3ef22..40203751 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_perfilhardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_perfilhardwares_cat.php @@ -16,5 +16,5 @@ $TbMsg["HARD_COMPUTERS"]="Ordinadors"; $TbMsg["HARD_WINBOOT"]="Arrencada Windows"; $TbMsg["HARD_REBOOT"]="Reinici (reboot)"; $TbMsg["HARD_KEXEC"]="Directe (kexec)"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_perfilsoftwares_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_perfilsoftwares_cat.php index da08d1ef..0494e826 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_perfilsoftwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_perfilsoftwares_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_perfilsoftwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti de Perfils software"; +$TbMsg[4]="Gesti� de Perfils software"; $TbMsg[5]="Nom"; $TbMsg[6]="Comentaris"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_procedimientos_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_procedimientos_cat.php index eecd646b..e90cbdc9 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_procedimientos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_procedimientos_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_procedimientos_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Procediments"; +$TbMsg[4]="Gesti� Procediments"; $TbMsg[5]="Nom Procediment"; $TbMsg[6]="Comentaris"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_reservas_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_reservas_cat.php index 346d0b6c..c20a56e4 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_reservas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_reservas_cat.php @@ -2,29 +2,28 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_reservas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Reserves"; -$TbMsg[5]="Descripci"; -$TbMsg[6]="Nom sollicitant"; +$TbMsg[4]="Gesti� Reserves"; +$TbMsg[5]="Descripci�"; +$TbMsg[6]="Nom sol�licitant"; $TbMsg[7]="Comentaris"; $TbMsg[8]="E-mail"; $TbMsg[9]="Estatus universitari"; $TbMsg[10]="Aula"; $TbMsg[11]="Imatge associada"; -$TbMsg[12]="Anticipaci previa"; +$TbMsg[12]="Anticipaci� previa"; $TbMsg[13]="Confirmada"; $TbMsg[14]="Pendent"; $TbMsg[15]="Denegada"; $TbMsg[16]="Estat de la reserva"; -$TbMsg[17]="(En blanc o 0 minuts indica sense anticipaci)"; -$TbMsg[18]="(Sense acci anticipada)"; -$TbMsg[19]="Tasca prvia"; +$TbMsg[17]="(En blanc o 0 minuts indica sense anticipaci�)"; +$TbMsg[18]="(Sense acci� anticipada)"; +$TbMsg[19]="Tasca pr�via"; $TbMsg[20]="Treball previ"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php index b13e024c..e18e259a 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_tareas_cat.php @@ -2,22 +2,22 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_tareas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Tasques"; +$TbMsg[4]="Gesti� Tasques"; $TbMsg[5]="Nom Tasca"; $TbMsg[6]="Comentaris"; -$TbMsg[7]="Tipus mbit"; -$TbMsg[8]="mbit d\'aplicaci"; +$TbMsg[7]="Tipus �mbit"; +$TbMsg[8]="�mbit d\'aplicaci�"; $TbMsg[9]=""; $TbMsg[10]="Centres"; $TbMsg[11]="Grups d\'Aules"; $TbMsg[12]="Aules"; $TbMsg[13]="Grups d\Ordinadors"; $TbMsg[14]="Ordinadors"; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_tipohardwares_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_tipohardwares_cat.php index 3323ca52..3ea773ca 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_tipohardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_tipohardwares_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_tipohardwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Tipus de Hardware"; +$TbMsg[4]="Gesti� Tipus de Hardware"; $TbMsg[5]="Nom"; $TbMsg[6]="Icona"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_universidades_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_universidades_cat.php index f1a18013..9a576b94 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_universidades_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_universidades_cat.php @@ -2,14 +2,13 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_aulas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Universitats"; +$TbMsg[4]="Gesti� Universitats"; $TbMsg[5]="Nom"; $TbMsg[6]="Comentaris"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php b/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php index 16df7a25..71126a0b 100644 --- a/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php +++ b/admin/WebConsole/idiomas/php/cat/propiedades_usuarios_cat.php @@ -2,14 +2,14 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: propiedades_ordenadores_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); -$TbMsg[0]="Sense Opci"; +$TbMsg[0]="Sense Opci�"; $TbMsg[1]="Afegir"; $TbMsg[2]="Modificar"; $TbMsg[3]="Eliminar"; -$TbMsg[4]="Gesti Usuaris"; +$TbMsg[4]="Gesti� Usuaris"; $TbMsg[5]="Usuari"; $TbMsg[6]="Password*"; $TbMsg[7]="Nom complet"; @@ -20,10 +20,10 @@ $TbMsg[11]="SuperAdministrador "; $TbMsg[12]="Administrador"; $TbMsg[13]="Operador"; $TbMsg[14]="Per realitzar canvis en aquest usuari<br>"; -$TbMsg[15]="creat en el procs d'installaci,<br><br>"; -$TbMsg[16]="premi aqu<br>"; +$TbMsg[15]="creat en el proc�s d'instal�laci�,<br><br>"; +$TbMsg[16]="premi aqu�<br>"; $TbMsg[17]="https://opengnsys.es/trac/wiki/ModificarUsuarios"; $TbMsg[18]="Confirmar password"; $TbMsg['APIKEY']="API key"; -$TbMsg['NEWAPIKEY']="La API key se generar automticamente al insertar el usuario."; -?> +$TbMsg['NEWAPIKEY']="La API key se generar� autom�ticamente al insertar el usuario."; + diff --git a/admin/WebConsole/idiomas/php/cat/purgar_cat.php b/admin/WebConsole/idiomas/php/cat/purgar_cat.php index 792d8700..9a06fe40 100644 --- a/admin/WebConsole/idiomas/php/cat/purgar_cat.php +++ b/admin/WebConsole/idiomas/php/cat/purgar_cat.php @@ -2,9 +2,8 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: actualizar_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Aquest mbit ha estat purgat correctament'; - $TbMsg[1]='ATENCI: Ha ocorregut algn problema al purgar l\'mbit'; -?>
\ No newline at end of file + $TbMsg[0]='Aquest �mbit ha estat purgat correctament'; + $TbMsg[1]='ATENCI�: Ha ocorregut alg�n problema al purgar l\'�mbit'; diff --git a/admin/WebConsole/idiomas/php/cat/repositorios_cat.php b/admin/WebConsole/idiomas/php/cat/repositorios_cat.php index 30677a5b..11437225 100644 --- a/admin/WebConsole/idiomas/php/cat/repositorios_cat.php +++ b/admin/WebConsole/idiomas/php/cat/repositorios_cat.php @@ -21,4 +21,4 @@ $TbMsg[13]='""'; $TbMsg[14]='"Repositoris"'; $TbMsg[15]='"Icones"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/reservas_cat.php b/admin/WebConsole/idiomas/php/cat/reservas_cat.php index f861ef05..cd89359f 100644 --- a/admin/WebConsole/idiomas/php/cat/reservas_cat.php +++ b/admin/WebConsole/idiomas/php/cat/reservas_cat.php @@ -2,19 +2,19 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: reservas_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='"Nou grup de reserves"'; $TbMsg[1]='"Definir nova reserva"'; - $TbMsg[2]='"Collocar reserva"'; + $TbMsg[2]='"Col�locar reserva"'; $TbMsg[3]='"Renombrar"'; $TbMsg[4]='"Eliminar grup de reserves"'; - $TbMsg[5]='"Informaci Reserva"'; + $TbMsg[5]='"Informaci� Reserva"'; $TbMsg[6]='"Moure reserva"'; $TbMsg[7]='"Propietats"'; $TbMsg[8]='"Eliminar Reserva"'; $TbMsg[9]='"Reserves"'; $TbMsg[10]='"Programacions"'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/softwares_cat.php b/admin/WebConsole/idiomas/php/cat/softwares_cat.php index cc41e8be..3e1924e4 100644 --- a/admin/WebConsole/idiomas/php/cat/softwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/softwares_cat.php @@ -2,7 +2,7 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: softwares_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); $TbMsg[0]='""'; @@ -10,17 +10,17 @@ $TbMsg[2]='""'; $TbMsg[3]='"Nou grup de components"'; $TbMsg[4]='"Definir nou component"'; - $TbMsg[5]='"Collocar component"'; + $TbMsg[5]='"Col�locar component"'; $TbMsg[6]='"Renombrar"'; $TbMsg[7]='"Eliminar grup de components"'; $TbMsg[8]='"Moure component"'; $TbMsg[9]='"Eliminar component"'; $TbMsg[10]='"Nou grup de perfils"'; $TbMsg[11]='"Definir nou perfil"'; - $TbMsg[12]='"Collocar perfil"'; + $TbMsg[12]='"Col�locar perfil"'; $TbMsg[13]='"Eliminar grup de perfils"'; - $TbMsg[14]='"Gesti components"'; - $TbMsg[15]='"Informaci Perfil"'; + $TbMsg[14]='"Gesti� components"'; + $TbMsg[15]='"Informaci� Perfil"'; $TbMsg[16]='"Moure perfil"'; $TbMsg[17]='"Eliminar perfil software"'; $TbMsg[18]='"Tipus de software"'; @@ -29,9 +29,8 @@ $TbMsg[21]='"Software Incremental"'; $TbMsg[22]='"Nou grup d\'incrementals"'; $TbMsg[23]='"Definir nova incremental"'; - $TbMsg[24]='"Collocar incremental"'; + $TbMsg[24]='"Col�locar incremental"'; $TbMsg[25]='"Eliminar grup d\'incrementals"'; - $TbMsg[26]='"Informaci incremental"'; + $TbMsg[26]='"Informaci� incremental"'; $TbMsg[27]='"Moure incremental"'; $TbMsg[28]='"Eliminar incremental"'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/cat/sondeo_cat.php b/admin/WebConsole/idiomas/php/cat/sondeo_cat.php index 5fb6c4e0..79e50362 100644 --- a/admin/WebConsole/idiomas/php/cat/sondeo_cat.php +++ b/admin/WebConsole/idiomas/php/cat/sondeo_cat.php @@ -7,4 +7,4 @@ $TbMsg=array(); $TbMsg[0]=''; $TbMsg[1]='ATENCIÓ: Ha ocorregut algun problema al consultar l\'estat del ordinadors'; -?> + diff --git a/admin/WebConsole/idiomas/php/cat/tareascomandos_cat.php b/admin/WebConsole/idiomas/php/cat/tareascomandos_cat.php index 484233b5..7f0406c3 100644 --- a/admin/WebConsole/idiomas/php/cat/tareascomandos_cat.php +++ b/admin/WebConsole/idiomas/php/cat/tareascomandos_cat.php @@ -2,15 +2,14 @@ //________________________________________________________________________________________________________ // // Fitxer d'idiomes php: tareascomandos_cat.php -// Idioma: Catal +// Idioma: Catal� //________________________________________________________________________________________________________ $TbMsg=array(); - $TbMsg[0]='Gesti Comandes de la Tasca'; + $TbMsg[0]='Gesti� Comandes de la Tasca'; $TbMsg[1]='Comandes incloses'; $TbMsg[2]='Tasca'; $TbMsg[3]='Nom Comanda'; $TbMsg[4]='Ord.'; - $TbMsg[5]='Parmetre'; + $TbMsg[5]='Par�metre'; $TbMsg[6]='Valor'; - $TbMsg[7]='(*)Per excloure alguna comanda d\'aquesta tasca ha de fer click sobre la casella de verificaci corresponent'; -?>
\ No newline at end of file + $TbMsg[7]='(*)Per excloure alguna comanda d\'aquesta tasca ha de fer click sobre la casella de verificaci� corresponent'; diff --git a/admin/WebConsole/idiomas/php/cat/tiposhardwares_cat.php b/admin/WebConsole/idiomas/php/cat/tiposhardwares_cat.php index 06474d90..06d6772d 100644 --- a/admin/WebConsole/idiomas/php/cat/tiposhardwares_cat.php +++ b/admin/WebConsole/idiomas/php/cat/tiposhardwares_cat.php @@ -23,5 +23,5 @@ $TbMsg["HARDWARE_net"]="Tarjetas de red"; $TbMsg["HARDWARE_sto"]="Controladores de almacenamiento"; $TbMsg["HARDWARE_usb"]="Controladores USB"; $TbMsg["HARDWARE_vga"]="Tarjetas gráficas"; -?> + diff --git a/admin/WebConsole/idiomas/php/eng/ayuda_eng.php b/admin/WebConsole/idiomas/php/eng/ayuda_eng.php index f0da7af5..eaf1d084 100644 --- a/admin/WebConsole/idiomas/php/eng/ayuda_eng.php +++ b/admin/WebConsole/idiomas/php/eng/ayuda_eng.php @@ -5,11 +5,12 @@ // Idioma: Inglés // __________________________________________________ // Mensajes. -$TbMsg=array(); +if (empty ($TbMsg)) $TbMsg=array(); $TbMsg["HELP_TITLE"]='Help'; $TbMsg["MANUAL"]='User Manual'; -$TbMsg["API"]='API documentation'; +$TbMsg["API"]='Engine API documentation'; $TbMsg["CFG"]='Client configuration'; +$TbMsg["REST"]='REST API documentation'; $TbMsg["CHANGELOG"]='Changes in the version:'; $TbMsg["USERMAIL"]=' User email list'; $TbMsg["WEB"]='Web of the project: opengnsys.es'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php index 16d1d06a..60085635 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php @@ -22,6 +22,6 @@ $TbMsg[14]='Format'; $TbMsg[15]='Hide'; $TbMsg[16]='Show'; - $TbMsg[17]=' Free space !!'; + $TbMsg[17]='Free space !!'; $TbMsg["HD"]='Disk'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/crearimagenbasica_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/crearimagenbasica_eng.php index 6f1d3545..e20b703f 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/crearimagenbasica_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/crearimagenbasica_eng.php @@ -4,13 +4,13 @@ // Php image file: crearimagenbasica_eng.php (Comandos) // Language: English //________________________________________________________________________________________________________ - $TbMsg=array(); + if (empty($TbMsg)) $TbMsg=array(); $TbMsg[0]='Generation of base image <br> (experimental)' ; $TbMsg[1]='Computer features'; - $TbMsg[2]='Name'; - $TbMsg[3]='IP Address'; - $TbMsg[4]='MAC Address'; - $TbMsg[5]='Hardware profile'; + $TbMsg[2]='Name'; + $TbMsg[3]='IP Address'; + $TbMsg[4]='MAC Address'; + $TbMsg[5]='Hardware profile'; $TbMsg[6]='Data to supply'; $TbMsg[7]='Disk'; $TbMsg[8]='Par'; @@ -20,5 +20,5 @@ $TbMsg[12]='Additional Options'; $TbMsg[13]='Delete image previously'; $TbMsg[14]='Copy image to cache'; - $TbMsg[15]='Delete image previously from cache'; + $TbMsg[15]='Deleting image previously from cache'; $TbMsg[16]='Do not delete files from target'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php index a26a34f4..d9a3ccce 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php @@ -4,15 +4,15 @@ // Php language file: crearsoftincremental_eng.php (Comandos) // Language: English //________________________________________________________________________________________________________ - $TbMsg=array(); - $TbMsg[0]='Generation of incremental image <br> (experimental)'; + if (empty($TbMsg)) $TbMsg=array(); + $TbMsg[0]='Generation of incremental image <br> (experimental)'; $TbMsg[1]='Computer features'; $TbMsg[2]='Name'; $TbMsg[3]='IP Address'; $TbMsg[4]='MAC Address'; $TbMsg[5]='Hardware profile'; $TbMsg[6]='Data to supply'; - $TbMsg[7]='Disco'; + $TbMsg[7]='Disk'; $TbMsg[8]='Par'; $TbMsg[9]='OS name'; $TbMsg[10]='Incremental image / Repository'; @@ -20,5 +20,5 @@ $TbMsg[12]='Incremental software'; $TbMsg[13]='Delete Incremental previously'; $TbMsg[14]='Copy Incremental to cache'; - $TbMsg[15]='Delete Incremental previously from cache'; - $TbMsg[16]='Do not delete files from target'; + $TbMsg[15]='Deleting Incremental previously from cache'; + $TbMsg[16]='Do not delete files from target'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php index 38e217ca..fa00a89f 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php @@ -54,7 +54,7 @@ $TbMsg["WCRP31"]='Remote partitions cloning Wizard'; $TbMsg["WCRP32"]='Select MASTER PC:'; - $TbMsg["WCRP33"]='Select the image or partition to send from Master PC'; + $TbMsg["WCRP33"]='Choose the image or partition to send from Master PC'; $TbMsg["WCRP34"]='Select the client target partition'; $TbMsg["WCRP35"]='Select the transfer mode'; $TbMsg["WCRP36"]='Select cloning tool'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php index 8582fc92..3259b608 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/eliminarimagenrepo_eng.php @@ -4,19 +4,19 @@ // Php language file: eliminarimagenrepositorio_eng.php (Comandos) // Language: English //________________________________________________________________________________________________________ - $TbMsg=array(); + if (empty($TbMsg)) $TbMsg=array(); $TbMsg[0]='Image creation'; $TbMsg[1]='Computer features'; $TbMsg[2]='Name'; $TbMsg[3]='IP Address'; $TbMsg[4]='MAC Address'; - $TbMsg[5]='Delete Image from Repository'; + $TbMsg[5]='Deleting Image from Repository'; $TbMsg[6]='Data to supply'; $TbMsg[7]='Available Images'; $TbMsg[8]='Par'; $TbMsg[9]='OS name'; $TbMsg[10]='----------- Image name -----------'; - $TbMsg[11]='Nº'; + $TbMsg[11]='No.'; $TbMsg[12]='Mark'; $TbMsg[13]='Size'; $TbMsg[14]='Locked Image'; @@ -31,11 +31,11 @@ $TbMsg[23]='Version Limitations 1.5'; $TbMsg[24]='Deleting Image is allowed if Repository and Web server are hosted on the same server'; $TbMsg[25]='NOT Created'; - $TbMsg[26]='Delete Image object'; + $TbMsg[26]='Deleting Image object'; $TbMsg[27]='Type'; $TbMsg[28]='View Full Repository'; $TbMsg[29]='View Organizational Unit'; $TbMsg[30]='Organizational Unit'; $TbMsg[31]='Archive'; $TbMsg[32]='Directory'; - $TbMsg[33]='WARNING: Image is hosted in a directory that does not match with the organizational unit.' + $TbMsg[33]='WARNING: Image is hosted in a directory that does not match with the organizational unit.'; diff --git a/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php index 47003e15..d5c979e5 100644 --- a/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php +++ b/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php @@ -4,7 +4,7 @@ // Php language file: particionaryformatear_eng.php (Comandos) // Language: English //________________________________________________________________________________________________________ - $TbMsg=array(); + if(empty($TbMsg)) $TbMsg=array(); $TbMsg[0]='Centers'; $TbMsg[1]='Group of labs'; $TbMsg[2]='Labs'; @@ -22,4 +22,4 @@ $TbMsg[14]='Format'; $TbMsg[15]='Hide'; $TbMsg[16]='Show'; - $TbMsg[17]=' Free space !!'; + $TbMsg[17]='Free space !!'; diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php index f308484e..9191b82d 100644 --- a/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php +++ b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php @@ -4,7 +4,7 @@ // Php language file: propiedades_aulas_eng.php // Language: English //________________________________________________________ -$TbMsg=array(); +if (empty($TbMsg)) $TbMsg=array(); $TbMsg[0]="No Option"; $TbMsg[1]="Insert"; $TbMsg[2]="Modify"; @@ -58,4 +58,4 @@ $TbMsg['PROP_REMOTEACCESS']="Remote access"; $TbMsg['COMM_REMOTEACCESS']="allow remote access management to computers"; $TbMsg['COMM_DEFOGLIVE']="Assigned by administrator"; // Ticket-816 PCprofesor -$TbMsg['PROP_PROFCOMPUTER']="Teacher‘s computer", +$TbMsg['PROP_PROFCOMPUTER']="Teacher‘s computer"; diff --git a/admin/WebConsole/idiomas/php/eng/reservas_eng.php b/admin/WebConsole/idiomas/php/eng/reservas_eng.php index ae1b8d82..ebcd2902 100644 --- a/admin/WebConsole/idiomas/php/eng/reservas_eng.php +++ b/admin/WebConsole/idiomas/php/eng/reservas_eng.php @@ -4,9 +4,9 @@ // Pph language file: reserves_eng.php // Language: English //________________________________________________________________________________________________________ - $TbMsg=array(); + if (empty($TbMsg)) $TbMsg=array(); $TbMsg[0]='"New reservations group"'; - $TbMsg[1]='"Define new reservation"; + $TbMsg[1]='"Define new reservation"'; $TbMsg[2]='"Set reserve"'; $TbMsg[3]='"Rename"'; $TbMsg[4]='"Delete reservations group"'; diff --git a/admin/WebConsole/idiomas/php/esp/acciones_esp.php b/admin/WebConsole/idiomas/php/esp/acciones_esp.php index aa80a687..d918988e 100644 --- a/admin/WebConsole/idiomas/php/esp/acciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/acciones_esp.php @@ -39,4 +39,4 @@ $TbMsg[31]='Tareas'; $TbMsg[32]=''; $TbMsg[33]='Acciones'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php b/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php index 176e57ea..a74091e8 100644 --- a/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php +++ b/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php @@ -21,4 +21,4 @@ $TbMsg[13]='Ord.'; $TbMsg[14]='(*)Para incluir o excluir alguna acción en este menú debe hacer click sobre la casilla de verificación correspondiente'; $TbMsg[15]='A'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/acercade_esp.php b/admin/WebConsole/idiomas/php/esp/acercade_esp.php index 836fe0a4..e08f4806 100644 --- a/admin/WebConsole/idiomas/php/esp/acercade_esp.php +++ b/admin/WebConsole/idiomas/php/esp/acercade_esp.php @@ -17,5 +17,5 @@ $TbMsg["CHANGE"]='Cambios en: '; $TbMsg["MANUAL"]='Manual OpenGnsys '; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/actualizar_esp.php b/admin/WebConsole/idiomas/php/esp/actualizar_esp.php index 4c60f353..1d8b75d1 100644 --- a/admin/WebConsole/idiomas/php/esp/actualizar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/actualizar_esp.php @@ -7,4 +7,3 @@ $TbMsg=array(); $TbMsg[0]='Este ámbito se ha refrescado correctamente'; $TbMsg[1]='ATENCIÓN: Ha habido algún problema al refrescar el ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/administracion_esp.php b/admin/WebConsole/idiomas/php/esp/administracion_esp.php index 41e23b0a..3aba0a93 100644 --- a/admin/WebConsole/idiomas/php/esp/administracion_esp.php +++ b/admin/WebConsole/idiomas/php/esp/administracion_esp.php @@ -19,4 +19,4 @@ $TbMsg[11]='"Usuarios"'; $TbMsg[12]='"Asignar Adminstradores"'; $TbMsg[13]='"Asignar Unidades Organizativas"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php b/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php index b6fc3620..230e4772 100644 --- a/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php +++ b/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php @@ -11,4 +11,4 @@ $TbMsg[3]='Nombre del adminsitrador'; $TbMsg[4]='(*)Para incluir algún adminsitrador en esta Unidad Organizativa debe hacer click sobre la casilla de verificación correspondiente.'; $TbMsg[5]='Administradores disponibles'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php b/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php index 3b802356..620e95ab 100644 --- a/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php +++ b/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php @@ -11,4 +11,4 @@ $TbMsg[3]='Nombre del centro'; $TbMsg[4]='(*)Para asignar algún centro a un administrador determinado debe hacer click sobre la casilla de verificación correspondiente.'; $TbMsg[5]='Centros disponibles'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/aulas_esp.php b/admin/WebConsole/idiomas/php/esp/aulas_esp.php index 56034c0b..0afef7c1 100644 --- a/admin/WebConsole/idiomas/php/esp/aulas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/aulas_esp.php @@ -56,5 +56,5 @@ $TbMsg[48]='"Log en tiempo real"'; $TbMsg[49]='"Sincronización"'; $TbMsg[50]='"Sincronización 2"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/avisos_esp.php b/admin/WebConsole/idiomas/php/esp/avisos_esp.php index f54b994f..cfefbee2 100644 --- a/admin/WebConsole/idiomas/php/esp/avisos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/avisos_esp.php @@ -14,5 +14,5 @@ $TbMsg["WARN_NOTESOFMENU"]='NOTAS: Los menús personalizados tienen mayor $TbMsg["WARN_GPT"]='AVISO: Para tabla de particiones GPT es necesario que la primera partición sea tipo EFI <br>y se recomienda un tamaño en torno a 512Mb.'; $TbMsg["WARN_SCHEDULER"]='AVISO: activar calendario de eventos de la BD para habilitar esta propiedad'; $TbMsg["WARN_SOURCE_PATH"]='AVISO: La ruta de origen sólo se utiliza en las sincronizadas tipo directorio.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/ayuda_esp.php b/admin/WebConsole/idiomas/php/esp/ayuda_esp.php index b45d1da7..bd211813 100644 --- a/admin/WebConsole/idiomas/php/esp/ayuda_esp.php +++ b/admin/WebConsole/idiomas/php/esp/ayuda_esp.php @@ -5,11 +5,12 @@ // Idioma: Español // __________________________________________________ // Mensajes. -$TbMsg=array(); +if (empty ($TbMsg)) $TbMsg=array(); $TbMsg["HELP_TITLE"]='Ayuda'; $TbMsg["MANUAL"]='Manual de usuario'; -$TbMsg["API"]='Documentación de la API'; +$TbMsg["API"]='Documentación de la API del Motor de Clonación'; $TbMsg["CFG"]='Configuración de los clientes'; +$TbMsg["REST"]='Documentación de la API REST'; $TbMsg["CHANGELOG"]='Cambios en la versión:'; $TbMsg["USERMAIL"]='Lista de correos de usuarios'; $TbMsg["WEB"]='Web del proyecto: opengnsys.es'; diff --git a/admin/WebConsole/idiomas/php/esp/barramenu_esp.php b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php index 6d863015..782a60fd 100644 --- a/admin/WebConsole/idiomas/php/esp/barramenu_esp.php +++ b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php @@ -21,5 +21,5 @@ $TbMsg[14]='Buscar'; $TbMsg[15]='Netboot Avanzado'; $TbMsg[16]='Unidad Organizativa'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php b/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php index 60ac8877..c6173005 100644 --- a/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php @@ -1,53 +1,53 @@ -<?php
-//____________________________________________________________
-//
-// Fichero de idiomas php: aulas_esp.php
-// Idioma: Espaol
-//_____________________________________________________________
- $TbMsg=array();
- $TbMsg[0]='Nuevo';
- $TbMsg[1]='Modificar';
- $TbMsg[2]='Eliminar';
- $TbMsg[3]='Nueva Columna de Arranque';
- $TbMsg[4]='Modificar Columna de Arranque';
- $TbMsg[5]='Eliminar Columna de Arranque';
- $TbMsg[6]='Arranque Creado Correctamente';
- $TbMsg[7]='Arranque Modificado Correctamente';
- $TbMsg[8]='Arranque Eliminado Correctamente';
- $TbMsg[9]='Selecciona Columna Arranque';
- $TbMsg[10]='"Modo Usuario"';
- $TbMsg[11]='"Modo Administracion"';
- $TbMsg[12]='Nombre';
- $TbMsg[13]='Aceptar';
- $TbMsg[14]='Introduzca un Nombre de Columna';
- $TbMsg[15]='"Renombrar"';
- $TbMsg[16]='Cancelar';
- $TbMsg[17]='Plantilla';
- $TbMsg[18]='Sin Plantilla';
- $TbMsg[19]='Comandos';
- $TbMsg[20]='Descripcion';
- $TbMsg[21]='Fichero';
- $TbMsg[22]='##NO-TOCAR-ESTA-LINEA ';
- $TbMsg[23]='NO HAY COLUMNA NUEVA';
- $TbMsg[24]='mbito: Centros';
- $TbMsg[25]='mbito: Grupo de aulas';
- $TbMsg[26]='mbito: Grupo de ordenadores';
- $TbMsg[27]='"Incorporar ordenadores"';
- $TbMsg[28]='"Procedimientos"';
- $TbMsg[29]='"Reservas de aulas"';
- $TbMsg[30]='"Confirmadas"';
- $TbMsg[31]='"Pendientes"';
- $TbMsg[32]='"Denegadas"';
- $TbMsg[33]='"Consola remota"';
- $TbMsg[34]='"Programacin reservas"';
- $TbMsg[35]='"Operadores"';
- $TbMsg[36]='"Eliminar Operador"';
- $TbMsg[37]='"Aadir nuevo Operador"';
- $TbMsg[38]='"Asistentes"';
- $TbMsg[39]='"Eco de Consola"';
- $TbMsg[40]='"NetBoot avanzado"';
- $TbMsg[41]='"Reubicar ordenadores"';
- $TbMsg[42]='Gestión Arranque Avanzado';
- $TbMsg[43]='"Guardar"';
- $TbMsg[44]='Ubicador Ordenadores';
- $TbMsg[45]='Nombre mbito';
+<?php +//____________________________________________________________ +// +// Fichero de idiomas php: boot_grub4dos_esp.php +// Idioma: Español +//_____________________________________________________________ + if (!empty($TbMsg)) $TbMsg=array(); + $TbMsg[0]='Nuevo'; + $TbMsg[1]='Modificar'; + $TbMsg[2]='Eliminar'; + $TbMsg[3]='Nueva Columna de Arranque'; + $TbMsg[4]='Modificar Columna de Arranque'; + $TbMsg[5]='Eliminar Columna de Arranque'; + $TbMsg[6]='Arranque Creado Correctamente'; + $TbMsg[7]='Arranque Modificado Correctamente'; + $TbMsg[8]='Arranque Eliminado Correctamente'; + $TbMsg[9]='Selecciona Columna Arranque'; + $TbMsg[10]='"Modo Usuario"'; + $TbMsg[11]='"Modo Administracion"'; + $TbMsg[12]='Nombre'; + $TbMsg[13]='Aceptar'; + $TbMsg[14]='Introduzca un Nombre de Columna'; + $TbMsg[15]='"Renombrar"'; + $TbMsg[16]='Cancelar'; + $TbMsg[17]='Plantilla'; + $TbMsg[18]='Sin Plantilla'; + $TbMsg[19]='Comandos'; + $TbMsg[20]='Descripcion'; + $TbMsg[21]='Fichero'; + $TbMsg[22]='##NO-TOCAR-ESTA-LINEA '; + $TbMsg[23]='NO HAY COLUMNA NUEVA'; + $TbMsg[24]='Ámbito: Centros'; + $TbMsg[25]='Ámbito: Grupo de aulas'; + $TbMsg[26]='Ámbito: Grupo de ordenadores'; + $TbMsg[27]='"Incorporar ordenadores"'; + $TbMsg[28]='"Procedimientos"'; + $TbMsg[29]='"Reservas de aulas"'; + $TbMsg[30]='"Confirmadas"'; + $TbMsg[31]='"Pendientes"'; + $TbMsg[32]='"Denegadas"'; + $TbMsg[33]='"Consola remota"'; + $TbMsg[34]='"Programación reservas"'; + $TbMsg[35]='"Operadores"'; + $TbMsg[36]='"Eliminar Operador"'; + $TbMsg[37]='"Añadir nuevo Operador"'; + $TbMsg[38]='"Asistentes"'; + $TbMsg[39]='"Eco de Consola"'; + $TbMsg[40]='"NetBoot avanzado"'; + $TbMsg[41]='"Reubicar ordenadores"'; + $TbMsg[42]='Gestión Arranque Avanzado'; + $TbMsg[43]='"Guardar"'; + $TbMsg[44]='Ubicador Ordenadores'; + $TbMsg[45]='Nombre ámbito'; diff --git a/admin/WebConsole/idiomas/php/esp/buscar_esp.php b/admin/WebConsole/idiomas/php/esp/buscar_esp.php index 82281b92..a7855fde 100644 --- a/admin/WebConsole/idiomas/php/esp/buscar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/buscar_esp.php @@ -17,5 +17,5 @@ $TbMsg["SEARCH_NOMATCHES"]="No se encuentran resultados"; $TbMsg["SEARCH_NOVALUE"]="Debe introducir un valor para el criterio de búsqueda"; $TbMsg["SEARCH_PROFESSOR"]="Ordenadores de profesor"; $TbMsg["SEARCH_NOREPO"]="Ordenadores sin repositorio"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php index 61d30f59..2872a44a 100644 --- a/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php @@ -83,4 +83,4 @@ $TbMsg=array(); $TbMsg[59]='Ámbito:'; $TbMsg[60]='Todos'; $TbMsg[61]='Todas'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php b/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php index 47cc462e..8cc63c31 100644 --- a/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php @@ -50,4 +50,3 @@ $TbMsg=array(); $TbMsg[28]="Tarea previa"; $TbMsg[29]="Trabajo previo"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php index ed52489e..8cd1519c 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Apagar ordenadores'; $TbMsg[6]='Ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php index 0fdae000..017f0a38 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php @@ -17,4 +17,3 @@ $TbMsg[9]='Unicast'; $TbMsg[10]='Método de arranque'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php index 80adc851..dfe93134 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php @@ -13,4 +13,4 @@ $TbMsg[5]='Apagar ordenadores'; $TbMsg[6]='Ámbito'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php index 49bfc20b..a0f93e72 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php @@ -46,4 +46,4 @@ $TbMsg[34]='Perfil software'; $TbMsg["HD"]='Disco'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php index 67ab7a7c..2bf01b26 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Conmutar ordenadores'; $TbMsg[6]='Ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php index 5ee1bc70..4ed4cfb2 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php @@ -22,4 +22,4 @@ $TbMsg[14]='Copiar Imagen en cache'; $TbMsg[15]='Borrarla previamente de la cache'; $TbMsg[16]='No borrar archivos en destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php index fa67edff..82b51ed4 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php @@ -17,4 +17,4 @@ $TbMsg[9]='Nombre S.O.'; $TbMsg[10]='Descripción de la Imagen '; $TbMsg[11]='Repositorio de destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php index d5778d84..8a286109 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php @@ -22,4 +22,4 @@ $TbMsg[14]='Copiar Incremental en cache'; $TbMsg[15]='Borrarla previamente de la cache'; $TbMsg[16]='No borrar archivos en destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php index 5f823ab2..ad4db994 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php @@ -58,5 +58,5 @@ $TbMsg["WCRP35"]='Elige el metodo de transferencia'; $TbMsg["WCRP36"]='Elige herramienta de clonación:'; $TbMsg["WCRP37"]='Elige compresor para la herramienta de clonación:'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagencache_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagencache_esp.php index 2107a4f8..557785c2 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagencache_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagencache_esp.php @@ -26,4 +26,4 @@ $TbMsg[18]='Tamaño de la imagen disponible si Repositorio y Servidor Web alojados en el mismo Servidor'; $TbMsg[19]='Tipo'; $TbMsg["CONFIG_NOCONFIG"]='Sin configuración: cliente no conectado al servidor.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php index d63711a9..e9b9950f 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/eliminarimagenrepo_esp.php @@ -39,4 +39,4 @@ $TbMsg[31]='Archivo'; $TbMsg[32]='Directorio'; $TbMsg[33]='AVISO: La imagen está situada en un directorio que no corresponde a la unidad organizativa.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/enviarmensaje_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/enviarmensaje_esp.php index 1e24f37f..1bb76fad 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/enviarmensaje_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/enviarmensaje_esp.php @@ -20,5 +20,5 @@ $TbMsg["OGAGENT"]="AVISO: Sólo se puede utilizar en los equipos que se haya iniciado la sesión <br>y tengan instalado en nuevo agente de OpenGnsys."; $TbMsg["OPTION"]="AVISO: El nuevo agente, en esta versión, no permite utilizar la cola de acciones."; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php index 1b8386e5..f33d2e1f 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php @@ -10,4 +10,3 @@ $TbMsg[3]='"ATENCIÓN: El fichero no tiene la extensión .rbc"'; $TbMsg[4]='"ATENCIÓN: El fichero no contiene código Rembo-C para ejecutar"'; $TbMsg[5]='"ATENCIÓN: Hay algún problema para salvar el fichero de script"'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php index e0ddaf0e..10e664bc 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php @@ -16,4 +16,4 @@ $TbMsg[8]='Par'; $TbMsg[9]='Nombre S.O.'; $TbMsg[10]='Nombre de la Imagen '; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php index ee14ae66..6d2394c0 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php @@ -13,4 +13,4 @@ $TbMsg[5]='Inventario Hardware'; $TbMsg[6]='Ámbito'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php index b26bada7..574bf332 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php @@ -15,4 +15,4 @@ $TbMsg[7]='Datos a suministrar'; $TbMsg[8]='Par'; $TbMsg[9]='Nombre S.O.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php index 391a39e4..3ab35fe2 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/mensajes_esp.php @@ -25,5 +25,5 @@ $TbMsg["COMMAND_RestaurarSoftIncremental"]="Restaurar Imagen Incremental"; $TbMsg["WIZARD_Asistente Particionado"]="Asistente de particionado"; $TbMsg["WIZARD_Asistente Clonacion Particiones Remotas"]="Clonar particiones remotas"; $TbMsg["WIZARD_Asistente Deploy de Imagenes"]="Deploy de imagenes"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php index 469b7bbc..d2f123ed 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/opcionesacciones_esp.php @@ -18,4 +18,3 @@ $TbMsgAux[10]='Guardar como una tarea nueva' ; $TbMsgAux[11]='Incluir en una tarea existente' ; $TbMsgAux[12]='Orden de ejecución'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php index 55d0e2f6..71a4acce 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php @@ -23,4 +23,3 @@ $TbMsg[15]='Ocultar'; $TbMsg[16]='Mostrar'; $TbMsg[17]='¡¡ Espacio libre !!'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php index f523fa5f..8acb26c1 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Reiniciar ordenadores'; $TbMsg[6]='Ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php index 1c437219..1caefb80 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Activar Rembo OffLine'; $TbMsg[6]='Ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php index 7c05b974..d0cd16c7 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php @@ -42,4 +42,4 @@ $TbMsg[32]='Tamaño de partición'; $TbMsg[33]='Nombre de la Imagen '; $TbMsg[34]='Perfil software'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php index 598351fe..d34adfd5 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php @@ -50,4 +50,4 @@ $TbMsg[39]='Método'; $TbMsg[40]='Unicast'; $TbMsg[41]='Multicast'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php index e7b63c0a..fb2f9999 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php @@ -48,4 +48,4 @@ $TbMsg[37]='Borrarla previamente de la cache'; $TbMsg[38]='Software Incremental'; $TbMsg[39]='No borrar archivos en destino'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php index a11a381a..2316c610 100644 --- a/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php +++ b/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Tomar configuración'; $TbMsg[6]='Ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php index 4571d8ee..ac830a8d 100644 --- a/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php @@ -60,5 +60,5 @@ $TbMsg[44]='Equipo sin perfil de hardware'; $TbMsg[45]='Agregue perfil para obtener datos'; $TbMsg[495]='Fecha/Caché'; $TbMsg[4951]='Caché libre'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/conmutar_esp.php b/admin/WebConsole/idiomas/php/esp/conmutar_esp.php index cdb455e9..3aab0b93 100644 --- a/admin/WebConsole/idiomas/php/esp/conmutar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/conmutar_esp.php @@ -7,4 +7,3 @@ $TbMsg=array(); $TbMsg[0]='Este ámbito ha conmutado correctamente'; $TbMsg[1]='ATENCIÓN: Ha habido algún problema al conmutar el ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php b/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php index c8f54c24..5e42f928 100644 --- a/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php +++ b/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php @@ -21,4 +21,4 @@ $TbMsg[13]='ATENCIÓN.- Ha elegido un ámbito de aplicación para la consola remota distinto al de "ordenador". <BR>Para visulizar el eco de cualquier cliente pulse sobre él con el botón secundario y elija "Eco de consola"; <BR>Se abrirá una ventana que se referescará automáticamente donde podrá hacer un seguiento del comando/script introducido'; $TbMsg[14]='...Espere por favor, se está enviando el código del script'; $TbMsg[15]='...El código del script se ha enviado, para ver la salida de cualquier ordenador elija "Eco de Consola"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/descargas_esp.php b/admin/WebConsole/idiomas/php/esp/descargas_esp.php index fa4898ff..0c210427 100644 --- a/admin/WebConsole/idiomas/php/esp/descargas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/descargas_esp.php @@ -10,4 +10,4 @@ $TbMsg['DOWNLOADS']="Descargas disponibles"; $TbMsg['NOFILES']="No hay ficheros disponibles"; // Aviso: no dejar ningún carácter fuera del código PHP. -?> + diff --git a/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php b/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php index d291a1ec..70529a47 100644 --- a/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php +++ b/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php @@ -18,4 +18,4 @@ $TbMsg[10]='ATENCIÓN: Ha habido algún problema al enviar una petición de eco consola remota a este ámbito'; $TbMsg[11]='... espere por favor.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php b/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php index 7007ecd0..c76d7773 100644 --- a/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php @@ -16,4 +16,4 @@ $TbMsg[8]='Procedimientos'; $TbMsg[9]='"Ejecutar procedimiento"'; $TbMsg[10]='"Incluir como autoexec"'; - ?> + diff --git a/admin/WebConsole/idiomas/php/esp/estados_esp.php b/admin/WebConsole/idiomas/php/esp/estados_esp.php index 75adfdf4..cf911251 100644 --- a/admin/WebConsole/idiomas/php/esp/estados_esp.php +++ b/admin/WebConsole/idiomas/php/esp/estados_esp.php @@ -17,5 +17,5 @@ $TbMsg["STATUS_LNXS"]="Sesión GNU/Linux"; $TbMsg["STATUS_OSX"]="macOS"; $TbMsg["STATUS_WIN"]="Windows"; $TbMsg["STATUS_WINS"]="Sesión Windows"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/gestor_ordenadores_esp.php b/admin/WebConsole/idiomas/php/esp/gestor_ordenadores_esp.php index 2946a0c4..95330ca5 100644 --- a/admin/WebConsole/idiomas/php/esp/gestor_ordenadores_esp.php +++ b/admin/WebConsole/idiomas/php/esp/gestor_ordenadores_esp.php @@ -6,5 +6,5 @@ //______________________________________________________________ $TbMsg=array(); $TbMsg["DUPLICADO"]="Error al insertar el ordenador, se han encontrado datos duplicados: "; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/hardwares_esp.php b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php index 070cbe82..fca4ae44 100644 --- a/admin/WebConsole/idiomas/php/esp/hardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php @@ -26,5 +26,5 @@ $TbMsg[18]='"Tipos de hardware"'; $TbMsg[19]='"Componentes hardware"'; $TbMsg[20]='"Perfiles hardware"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/iconos_esp.php b/admin/WebConsole/idiomas/php/esp/iconos_esp.php index ef11d99c..d25dfe9d 100644 --- a/admin/WebConsole/idiomas/php/esp/iconos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/iconos_esp.php @@ -55,5 +55,5 @@ $TbMsg["Particionar"]='Particionar'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php b/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php index 8e934497..c0ae8e77 100644 --- a/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php +++ b/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php @@ -10,4 +10,3 @@ $TbMsg[2]='Imagen'; $TbMsg[3]='Nombre del software incremental'; $TbMsg[4]='(*)Para incluir algún software incremental en esta imagen debe hacer click sobre la casilla de verificación correspondiente.'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php b/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php index fd834a03..c46969e0 100644 --- a/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php @@ -18,4 +18,4 @@ $TbMsg[8]='Procedimientos disponibles'; $TbMsg[9]='Tareas disponibles'; $TbMsg[10]='Parámetros'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php b/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php index 533490ae..c339f990 100644 --- a/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php +++ b/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php @@ -13,4 +13,4 @@ $TbMsg[4]='ATENCIÓN: Ha ocurrido alǵun problema en el proceso de incorporación de ordenadores'; $TbMsg[5]='ATENCIÓN: Se han intentado incorporar ordenadores que ya existen'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php b/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php index ae73e175..6ddce12b 100644 --- a/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php +++ b/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php @@ -10,4 +10,3 @@ $TbMsg[2]='Software incremental'; $TbMsg[3]='Nombre del componente'; $TbMsg[4]='(*)Para incluir algún componente en este software incremental debe hacer click sobre la casilla de verificación correspondiente.'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php index 00d0b0b0..4f1c52f1 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php @@ -12,4 +12,4 @@ $TbMsg[4]='Información sobre Tareas'; $TbMsg[5]='Información'; $TbMsg[6]='Sin parámetros'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php index 2ff8c16d..4618a19a 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php @@ -15,4 +15,4 @@ $TbMsg[6]='Perfil Software'; $TbMsg[7]='Ordenadores con esta imagen'; $TbMsg[8]='Partición'; $TbMsg[9]='Comentarios'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php index e72f55ea..4f01f74b 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php @@ -12,4 +12,3 @@ $TbMsg[4]='Componentes software'; $TbMsg[5]='Perfiles Combinables'; $TbMsg[6]='Perfiles Hardware soportados'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php index 1c51b61d..ca723efc 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php @@ -28,4 +28,4 @@ $TbMsg[20]='Código del item'; $TbMsg[21]='Ordenadores con este menú'; $TbMsg[22]='Items'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php index c5f034cb..1e3c435b 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php @@ -16,4 +16,4 @@ $TbMsg[8]='Comentarios'; $TbMsg[9]='Partición'; $TbMsg[10]='Comentarios'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php index 48ff637c..332f7cb0 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php @@ -14,4 +14,4 @@ $TbMsg[6]='Componentes software'; $TbMsg[7]='Ordenades con este perfil'; $TbMsg[8]='Comentarios'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php index 52774eaa..13c112a1 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php @@ -8,4 +8,3 @@ $TbMsg[0]='Parámetros de los Comandos del Procedimiento'; $TbMsg[1]='Parámetro'; $TbMsg[2]='Valor'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php index ccfd489d..0d8601bb 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php @@ -15,5 +15,5 @@ $TbMsg["IMGTYPE2"]='sincronizada bísica'; $TbMsg["IMGTYPE3"]='sincronizada incremental'; $TbMsg[6]='Ordenadores asigandos'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php index 2e27a880..7651deb4 100644 --- a/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php @@ -10,4 +10,3 @@ $TbMsg[2]='Valor'; $TbMsg[3]='Ámbito'; $TbMsg[4]='Nombre'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/menucliente_esp.php b/admin/WebConsole/idiomas/php/esp/menucliente_esp.php index 8a532162..5248ca80 100644 --- a/admin/WebConsole/idiomas/php/esp/menucliente_esp.php +++ b/admin/WebConsole/idiomas/php/esp/menucliente_esp.php @@ -9,4 +9,4 @@ $TbMsg[1]='"Dirección IP"'; $TbMsg[2]='NO SE HA DETECTADO NINGÚN MENÚ PARA ESTE CLIENTE'; $TbMsg[3]='Apagar el equipo'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/menus_esp.php b/admin/WebConsole/idiomas/php/esp/menus_esp.php index 5f7acc40..4b45117b 100644 --- a/admin/WebConsole/idiomas/php/esp/menus_esp.php +++ b/admin/WebConsole/idiomas/php/esp/menus_esp.php @@ -16,4 +16,4 @@ $TbMsg[8]='"Eliminar menú"'; $TbMsg[9]='"Menús"'; $TbMsg[10]='"Gestionar Items"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php index 7d3d8625..0ffdb4da 100644 --- a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php +++ b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php @@ -44,4 +44,4 @@ $TbMsg=array(); $TbMsg[34]='El proceso de restauración de imagen básica ha terminado correctamente'; $TbMsg[35]='ATENCIÓN, ha habido algún error en el proceso de restauración de imagen básica'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/nada_esp.php b/admin/WebConsole/idiomas/php/esp/nada_esp.php index 24ffedbe..597a97f2 100644 --- a/admin/WebConsole/idiomas/php/esp/nada_esp.php +++ b/admin/WebConsole/idiomas/php/esp/nada_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]="Navegador"; $TbMsg[6]="Versión Navegador"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php b/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php index e40db5fa..28841d57 100644 --- a/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php +++ b/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php @@ -10,4 +10,3 @@ $TbMsg[2]='Perfil hardware'; $TbMsg[3]='Nombre del component e'; $TbMsg[4]='(*)Para incluir algún componente en este perfil debe hacer click sobre la casilla de verificación correspondiente.'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php b/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php index d70a6dfd..24ee8b01 100644 --- a/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php +++ b/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php @@ -10,4 +10,3 @@ $TbMsg[2]='Perfil software'; $TbMsg[3]='Nombre del componente'; $TbMsg[4]='(*)Para incluir algún componente en este perfil debe hacer click sobre la casilla de verificación correspondiente.'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php b/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php index 889eef9b..3fc9a6a7 100644 --- a/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/pintaParticiones_esp.php @@ -58,5 +58,5 @@ $TbMsg["SEND"]='Protocolo'; $TbMsg["WARN_PROTOCOL"]='La opción "protocolo" sólo se utiliza en las sincronizadas tipo archivo la primera vez que se envía la imagen a caché. <br>En otro caso el protocolo es RSYNC.'; $TbMsg["WARN_DIFFIMAGE"]='Hay una nueva versión de la imagen (se muestra la diferencia de revisiones).'; $TbMsg["WARN_DIFFDISKSIZE"]='ATENCIÓN: no se pueden particionar grupos de ordenadores con distinto tamaño de disco.<br>Marcar la opción de "Desagrupar por tamaño de partición" y pulsar "Aceptar" en el menú superior para aplicar esta operación adecuadamente.'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php b/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php index ec630b99..2f60230f 100644 --- a/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php @@ -13,4 +13,3 @@ $TbMsg[5]='Parámetro'; $TbMsg[6]='Valor'; $TbMsg[7]='(*)Para excluir algún comando de este procedimiento debe hacer click sobre la casilla de verificación correspondiente'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/programaciones_esp.php b/admin/WebConsole/idiomas/php/esp/programaciones_esp.php index 3447d1e8..0033ec3f 100644 --- a/admin/WebConsole/idiomas/php/esp/programaciones_esp.php +++ b/admin/WebConsole/idiomas/php/esp/programaciones_esp.php @@ -15,4 +15,3 @@ $TbMsg=array(); $TbMsg[0]="Programaciones"; $TbMsg[1]="Suspender temporalmente todos los bloques programados"; $TbMsg[2]="Descripción del bloque"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php b/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php index fe53ba81..527f590c 100644 --- a/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php @@ -51,4 +51,3 @@ $TbMsg=array(); $TbMsg[29]="Trabajo previo"; $TbMsg[30]='Grupo de reservas'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php b/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php index 483472a0..d09e295a 100644 --- a/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php @@ -50,4 +50,3 @@ $TbMsg=array(); $TbMsg[29]="Trabajo previo"; $TbMsg[30]="Datos Reserva"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php index 1685d60f..d811f04b 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php @@ -59,5 +59,5 @@ $TbMsg['COMM_REMOTEACCESS']="permitir gestión de acceso remoto a los orde $TbMsg['COMM_DEFOGLIVE']="Asignado por el administrador"; // Ticket-816 PCprofesor $TbMsg['PROP_PROFCOMPUTER']="Ordenador de profesor"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php index 9ae392d5..348ffe1e 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php @@ -14,4 +14,4 @@ $TbMsg[5]="Nombre de la unidad"; $TbMsg[6]="Comentarios"; $TbMsg['DIR']="Directorio"; $TbMsg['MSG_OGUNIT']="Si se elige separar por unidades organizativas, el directorio <b>/opt/opengnsys/images</b><br> debe contener un subdirectorio llamado como el directorio indicado."; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php index e567637a..5ab7ad36 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php @@ -12,4 +12,3 @@ $TbMsg[3]="Eliminar"; $TbMsg[4]="Gestión Componentes Hardware"; $TbMsg[5]="Nombre"; $TbMsg[6]="Tipo de hardware"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php index 7c03d6e8..20ce10a5 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php @@ -13,4 +13,3 @@ $TbMsg[4]="Gestión Componentes Software"; $TbMsg[5]="Nombre"; $TbMsg[6]="Tipo de Software"; $TbMsg[7]="Tipo de S.O."; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php index 2136aa78..b292525b 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php @@ -13,4 +13,4 @@ $TbMsg[4]="Gestión Entidades"; $TbMsg[5]="Nombre de la Entidad"; $TbMsg[6]="Comentarios"; $TbMsg['OGUNIT']="Separar unidades organizativas"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php index 3366d1b1..fec58009 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php @@ -21,4 +21,4 @@ $TbMsg[12]=""; $TbMsg[13]=""; $TbMsg[14]=""; $TbMsg[15]=""; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php index 0cb12716..45a580e4 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php @@ -31,4 +31,3 @@ $TbMsg[22]="Grupos de Ordenadores"; $TbMsg[23]="Grupos de Imágenes Monolíticas"; $TbMsg[24]="Grupos de Imágenes Básicas"; $TbMsg[25]="Grupos de Imágenes Incrementales"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php index 058f7512..b9e4972d 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php @@ -32,4 +32,4 @@ $TbMsg[22]="Introduzca otra Descripción"; $TbMsg['PROP_OS']="Sistema operativo"; $TbMsg['PROP_REMOTEACCESS']="Acceso remoto"; $TbMsg['COMM_REMOTEACCESS']="permitir gestión de acceso remoto a los ordenadores"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php index 7435bb5a..6bf04065 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php @@ -22,4 +22,4 @@ $TbMsg[15]="URL menú personalizado"; $TbMsg[17]="Resolución de pantalla"; $TbMsg[18]="Imagen de fondo"; $TbMsg["PROP_DEFAULT"]="Detectada por defecto"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php index a46a21f5..ec6c58e7 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php @@ -18,4 +18,4 @@ $TbMsg[9]='(*) Para modificar un ordenador con cierto dato, en esta aula, debe i $TbMsg[10]="(**)Si se trata de ordenadores nuevos con una configuración por defecto, pero no quiere modificar los ordenadores ya existentes debe introducir un valor mayor que cero."; $TbMsg[11]="Tamaño Caché"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php index 933b2c7f..ebb319a4 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php @@ -16,5 +16,5 @@ $TbMsg["HARD_COMPUTERS"]="Ordenadores"; $TbMsg["HARD_WINBOOT"]="Arranque Windows"; $TbMsg["HARD_REBOOT"]="Reinicio (reboot)"; $TbMsg["HARD_KEXEC"]="Directo (kexec)"; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php index b46fcc9d..63a6112c 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php @@ -12,4 +12,3 @@ $TbMsg[3]="Eliminar"; $TbMsg[4]="Gestión de Perfiles software"; $TbMsg[5]="Nombre"; $TbMsg[6]="Comentarios"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php index f0ffdfc8..e14bcfdc 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php @@ -12,4 +12,3 @@ $TbMsg[3]="Eliminar"; $TbMsg[4]="Gestión Procedimientos"; $TbMsg[5]="Nombre Procedimiento"; $TbMsg[6]="Comentarios"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php index 49abddd6..5214903b 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php @@ -27,4 +27,3 @@ $TbMsg[18]="(Sin acción anticipada)"; $TbMsg[19]="Tarea previa"; $TbMsg[20]="Trabajo previo"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php index cb62e5c8..ecd1309c 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php @@ -20,4 +20,3 @@ $TbMsg[11]="Grupos de Aulas"; $TbMsg[12]="Aulas"; $TbMsg[13]="Grupos de Ordenadores"; $TbMsg[14]="Ordenadores"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php index aa1a5668..999f058d 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php @@ -12,4 +12,3 @@ $TbMsg[3]="Eliminar"; $TbMsg[4]="Gestión Tipos de Hardware"; $TbMsg[5]="Nombre"; $TbMsg[6]="icono"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php index e96e4d53..52e4ff31 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php @@ -12,4 +12,3 @@ $TbMsg[3]="Eliminar"; $TbMsg[4]="Gestión Universidades"; $TbMsg[5]="Nombre"; $TbMsg[6]="Comentarios"; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php index 2014eaa9..90ec0572 100644 --- a/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php +++ b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php @@ -26,4 +26,4 @@ $TbMsg[17]="https://opengnsys.es/trac/wiki/ModificarUsuarios"; $TbMsg[18]="Confirmar password"; $TbMsg['APIKEY']="API key"; $TbMsg['NEWAPIKEY']="La API key se generará automáticamente al insertar el usuario."; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/purgar_esp.php b/admin/WebConsole/idiomas/php/esp/purgar_esp.php index db6c41f8..8927ef40 100644 --- a/admin/WebConsole/idiomas/php/esp/purgar_esp.php +++ b/admin/WebConsole/idiomas/php/esp/purgar_esp.php @@ -7,4 +7,3 @@ $TbMsg=array(); $TbMsg[0]='Este ámbito se ha purgado correctamente'; $TbMsg[1]='ATENCIÓN: Ha habido algún problema al purgar el ámbito'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/repositorios_esp.php b/admin/WebConsole/idiomas/php/esp/repositorios_esp.php index e5d9919b..49008a1c 100644 --- a/admin/WebConsole/idiomas/php/esp/repositorios_esp.php +++ b/admin/WebConsole/idiomas/php/esp/repositorios_esp.php @@ -21,4 +21,4 @@ $TbMsg[13]='""'; $TbMsg[14]='"Repositorios"'; $TbMsg[15]='"Iconos"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/reservas_esp.php b/admin/WebConsole/idiomas/php/esp/reservas_esp.php index 2fdc7fb7..f40c4786 100644 --- a/admin/WebConsole/idiomas/php/esp/reservas_esp.php +++ b/admin/WebConsole/idiomas/php/esp/reservas_esp.php @@ -17,4 +17,4 @@ $TbMsg[9]='"Reservas"'; $TbMsg[10]='"Programaciones"'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/softwares_esp.php b/admin/WebConsole/idiomas/php/esp/softwares_esp.php index 43a759cf..f876f20e 100644 --- a/admin/WebConsole/idiomas/php/esp/softwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/softwares_esp.php @@ -34,4 +34,3 @@ $TbMsg[26]='"Información Incremental"'; $TbMsg[27]='"Mover incremental"'; $TbMsg[28]='"Eliminar incremental"'; -?>
\ No newline at end of file diff --git a/admin/WebConsole/idiomas/php/esp/sondeo_esp.php b/admin/WebConsole/idiomas/php/esp/sondeo_esp.php index 78bf8d37..0eff15f2 100644 --- a/admin/WebConsole/idiomas/php/esp/sondeo_esp.php +++ b/admin/WebConsole/idiomas/php/esp/sondeo_esp.php @@ -7,4 +7,4 @@ $TbMsg=array(); $TbMsg[0]=''; $TbMsg[1]='ATENCIÓN: Ha habido algún problema al consultar el estado de los ordenadore'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php b/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php index 9e2b1fe7..500ec245 100644 --- a/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php +++ b/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php @@ -15,4 +15,4 @@ $TbMsg[7]='(*)Para excluir algún comando de esta tarea debe hacer click sobre la casilla de verificación correspondiente'; $TbMsg[8]='Ámbito'; $TbMsg[9]='Nombre'; -?> + diff --git a/admin/WebConsole/idiomas/php/esp/tiposhardwares_esp.php b/admin/WebConsole/idiomas/php/esp/tiposhardwares_esp.php index 764cdf56..f3ec436e 100644 --- a/admin/WebConsole/idiomas/php/esp/tiposhardwares_esp.php +++ b/admin/WebConsole/idiomas/php/esp/tiposhardwares_esp.php @@ -23,5 +23,5 @@ $TbMsg["HARDWARE_net"]="Tarjetas de red"; $TbMsg["HARDWARE_sto"]="Controladores de almacenamiento"; $TbMsg["HARDWARE_usb"]="Controladores USB"; $TbMsg["HARDWARE_vga"]="Tarjetas gráficas"; -?> + diff --git a/admin/WebConsole/images/ver.php b/admin/WebConsole/images/ver.php index edfae853..fbbeae63 100644 --- a/admin/WebConsole/images/ver.php +++ b/admin/WebConsole/images/ver.php @@ -44,4 +44,4 @@ echo '<TABLE width="100%" border="0"><TR>'; echo '</TR></TABLE>';
/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
-?>
+
diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php index 816843b5..9cbd6fcf 100644 --- a/admin/WebConsole/includes/ConfiguracionesParticiones.php +++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php @@ -833,5 +833,5 @@ function tomaCache($numpar,$ordenadores,$numdisk = 1) } } } -?> + diff --git a/admin/WebConsole/includes/CreaComando.php b/admin/WebConsole/includes/CreaComando.php index 056ac3ae..156ff225 100644 --- a/admin/WebConsole/includes/CreaComando.php +++ b/admin/WebConsole/includes/CreaComando.php @@ -21,4 +21,4 @@ function CreaComando($cadenaconexion){ $cmd->Conexion=&$cn; return($cmd); } -?> + diff --git a/admin/WebConsole/includes/CreaTablaParametros.php b/admin/WebConsole/includes/CreaTablaParametros.php index 9d5468f4..a395c849 100644 --- a/admin/WebConsole/includes/CreaTablaParametros.php +++ b/admin/WebConsole/includes/CreaTablaParametros.php @@ -1,51 +1,51 @@ -<?php
-// *************************************************************************************************************************************************
-// Aplicación WEB: ogAdmWebCon.
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: 2009-2010
-// Fecha Última modificación: Agosto-2010
-// Nombre del fichero: CreaTablaParametros.php
-// Descripción :
-// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando
-// Parametros:
-// - cmd: Un comando ya operativo (con conexión abierta)
-// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones
-// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla
-// *************************************************************************************************************************************************
-function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){
- $rs=new Recordset;
- $cmd->texto="SELECT * FROM parametros";
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return; // Error al abrir recordset
- $rs->Primero();
- $cont=0;
- while (!$rs->EOF){
-echo "<br>".$rs->campos["nemonico"];
- $auxtabla_parametros="";
- $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"];
- $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
- $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
- $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
- $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
- $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"];
- $tabla_parametros[$cont][1]=$auxtabla_parametros;
- $cont++;
- $rs->Siguiente();
- }
- $auxnemonico="";
- // Ordena según el nemonico
- for ($i=0;$i<$cont-1;$i++){
- for ($j=$i+1;$j<$cont;$j++){
- if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){
- $auxnemonico=$tabla_parametros[$i][0];
- $tabla_parametros[$i][0]=$tabla_parametros[$j][0];
- $tabla_parametros[$j][0]=$auxnemonico;
- $auxtabla_parametros=$tabla_parametros[$i][1];
- $tabla_parametros[$i][1]=$tabla_parametros[$j][1];
- $tabla_parametros[$j][1]=$auxtabla_parametros;
- }
- }
- }
- $cont_parametros=$cont;
-}
-?>
+<?php +// ************************************************************************************************************************************************* +// Aplicación WEB: ogAdmWebCon. +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: 2009-2010 +// Fecha Última modificación: Agosto-2010 +// Nombre del fichero: CreaTablaParametros.php +// Descripción : +// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando +// Parametros: +// - cmd: Un comando ya operativo (con conexión abierta) +// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones +// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla +// ************************************************************************************************************************************************* +function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){ + $rs=new Recordset; + $cmd->texto="SELECT * FROM parametros"; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + $cont=0; + while (!$rs->EOF){ +echo "<br>".$rs->campos["nemonico"]; + $auxtabla_parametros=array(); + $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"]; + $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"]; + $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"]; + $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"]; + $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"]; + $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"]; + $tabla_parametros[$cont][1]=$auxtabla_parametros; + $cont++; + $rs->Siguiente(); + } + $auxnemonico=""; + // Ordena según el nemonico + for ($i=0;$i<$cont-1;$i++){ + for ($j=$i+1;$j<$cont;$j++){ + if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){ + $auxnemonico=$tabla_parametros[$i][0]; + $tabla_parametros[$i][0]=$tabla_parametros[$j][0]; + $tabla_parametros[$j][0]=$auxnemonico; + $auxtabla_parametros=$tabla_parametros[$i][1]; + $tabla_parametros[$i][1]=$tabla_parametros[$j][1]; + $tabla_parametros[$j][1]=$auxtabla_parametros; + } + } + } + $cont_parametros=$cont; +} + diff --git a/admin/WebConsole/includes/FicherosPost.php b/admin/WebConsole/includes/FicherosPost.php index 10f38b0e..6791b3fd 100644 --- a/admin/WebConsole/includes/FicherosPost.php +++ b/admin/WebConsole/includes/FicherosPost.php @@ -48,5 +48,5 @@ function TomaPathFisico($UrlPagina,$NombreFichero){ $PathFisicoFichero=$PathFisicoCarpetaPagina."/iconos/".$NombreFichero; return($PathFisicoFichero); } -?> + diff --git a/admin/WebConsole/includes/InvFecha.php b/admin/WebConsole/includes/InvFecha.php index e4de8b83..5202b8d0 100644 --- a/admin/WebConsole/includes/InvFecha.php +++ b/admin/WebConsole/includes/InvFecha.php @@ -34,4 +34,4 @@ function metefechaDB($fecha){ function HoraValida($hora){ if ($hora=="00:00:00")return(""); } -?> + diff --git a/admin/WebConsole/includes/RecopilaIpesMacs.php b/admin/WebConsole/includes/RecopilaIpesMacs.php index 70a7f8e3..2ded1775 100644 --- a/admin/WebConsole/includes/RecopilaIpesMacs.php +++ b/admin/WebConsole/includes/RecopilaIpesMacs.php @@ -165,5 +165,5 @@ function RecorreOrdenadores($cmd){ } $rs->Cerrar(); } -?> + diff --git a/admin/WebConsole/includes/RedireccionaError.php b/admin/WebConsole/includes/RedireccionaError.php index 420f47a4..ded595ad 100644 --- a/admin/WebConsole/includes/RedireccionaError.php +++ b/admin/WebConsole/includes/RedireccionaError.php @@ -10,4 +10,3 @@ function RedireccionaError($herror){ $wurl="../seguridad/logerror.php?herror=".$urlerror; Header('Location: '.$wurl); } -?>
\ No newline at end of file diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php index b89701ac..7f326fd5 100644 --- a/admin/WebConsole/includes/comunes.php +++ b/admin/WebConsole/includes/comunes.php @@ -5,10 +5,10 @@ // Parámetros: // - trama: La trama // Devuelve: - // Una matriz con las parejas de paramertos "nombre=valor" + // Una matriz con las parejas de parámertos "nombre=valor" //________________________________________________________________________________________ function extrae_parametros($parametros,$chsep,$chval){ - $ParametrosCadena=""; + $ParametrosCadena=array(); $auxP=explode($chsep,$parametros); for ($i=0;$i<sizeof($auxP);$i++){ $dualparam=explode($chval,$auxP[$i]); @@ -121,7 +121,7 @@ $cont=0; while (!$rs->EOF){ $nemo=$rs->campos["nemonico"]; - $auxtabla_parametros=""; + $auxtabla_parametros=array(); $auxtabla_parametros["nemonico"]=$nemo; $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"]; $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"]; @@ -300,7 +300,7 @@ Devuelve la descripción de un ambito Parametros: - - cmd: Objeto comando (Operativo) + - cmd: Objeto comando (Operativo) - ambito: tipo de ambito - idambito: Identificador del ambito - textambito: Por referencia. Es donde se devuelve la descripción @@ -309,7 +309,7 @@ - Los dos parámetros pasados por referencia ________________________________________________________________________*/ - function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito) + function tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito) { global $AMBITO_CENTROS; global $AMBITO_GRUPOSAULAS; @@ -334,7 +334,7 @@ $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador'); break; default: - $textambito; + $textambito=""; } } /*______________________________________________________________________ diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php index 40c568e1..702ece43 100644 --- a/admin/WebConsole/includes/constantes.php +++ b/admin/WebConsole/includes/constantes.php @@ -172,6 +172,3 @@ $msk_cache=0x12; $IMAGENES_MONOLITICAS=0x01; $IMAGENES_BASICAS=0x02; $IMAGENES_INCREMENTALES=0x03; - -/* AVISO: no crear salto de línea ni líneas en blanco tras el fin del código PHP. */ -?> diff --git a/admin/WebConsole/includes/ctrlacc.php b/admin/WebConsole/includes/ctrlacc.php index 9e09b9b7..c6988027 100644 --- a/admin/WebConsole/includes/ctrlacc.php +++ b/admin/WebConsole/includes/ctrlacc.php @@ -45,4 +45,4 @@ if ($swacc){ // Error en alguna variable de sesión die("***Error de acceso"); } //=============================================================================================== -?> + diff --git a/admin/WebConsole/includes/cuestionacciones.php b/admin/WebConsole/includes/cuestionacciones.php index 1f027adc..9c79894d 100644 --- a/admin/WebConsole/includes/cuestionacciones.php +++ b/admin/WebConsole/includes/cuestionacciones.php @@ -76,4 +76,4 @@ function CuestionAcciones($cmd,$shidra,$parametros){ } return(true); } - ?> + diff --git a/admin/WebConsole/includes/cuestionaccionescab.php b/admin/WebConsole/includes/cuestionaccionescab.php index d41d0324..0d0647db 100644 --- a/admin/WebConsole/includes/cuestionaccionescab.php +++ b/admin/WebConsole/includes/cuestionaccionescab.php @@ -20,4 +20,4 @@ if (isset($_POST["nwdescritarea"])) $nwdescritarea=$_POST["nwdescritarea"]; if (isset($_POST["sw_mkprocedimiento"])) $sw_mkprocedimiento=$_POST["sw_mkprocedimiento"]; if (isset($_POST["nwidprocedimiento"])) $nwidprocedimiento=$_POST["nwidprocedimiento"]; if (isset($_POST["nwdescriprocedimiento"])) $nwdescriprocedimiento=$_POST["nwdescriprocedimiento"]; -?> + diff --git a/admin/WebConsole/includes/opciones.php b/admin/WebConsole/includes/opciones.php index 4e8c1033..9cc12c8d 100644 --- a/admin/WebConsole/includes/opciones.php +++ b/admin/WebConsole/includes/opciones.php @@ -13,4 +13,3 @@ $op_modificacion=2; $op_eliminacion=3; $op_movida=4; $op_ejecucion=5; -?>
\ No newline at end of file diff --git a/admin/WebConsole/includes/opcionesbotonesop.php b/admin/WebConsole/includes/opcionesbotonesop.php index 85138063..da89b776 100644 --- a/admin/WebConsole/includes/opcionesbotonesop.php +++ b/admin/WebConsole/includes/opcionesbotonesop.php @@ -6,4 +6,4 @@ echo '<TD width=20></TD>'; echo '<TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="confirmar('.$opcion.')" ></A></TD>'; echo '</TR>'; echo '</TABLE>'; -?> + diff --git a/admin/WebConsole/includes/opcionesprotocolos.php b/admin/WebConsole/includes/opcionesprotocolos.php index 29a845bd..aaafab5d 100644 --- a/admin/WebConsole/includes/opcionesprotocolos.php +++ b/admin/WebConsole/includes/opcionesprotocolos.php @@ -105,5 +105,5 @@ return($torrentsyntax); -?> + diff --git a/admin/WebConsole/includes/pintaParticiones.php b/admin/WebConsole/includes/pintaParticiones.php index 44c3f10c..6a5ff20c 100644 --- a/admin/WebConsole/includes/pintaParticiones.php +++ b/admin/WebConsole/includes/pintaParticiones.php @@ -34,7 +34,7 @@ function splitConfigurationsByDisk($configuraciones){ // Descripción: // Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, // grupo de ordenadores o aula -// Parametros: +// Parámetros: // $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato // sería una secuencia de cadenas del tipo "clave de configuración" separados por "@" // Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 @@ -137,13 +137,11 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc) for ($x=0;$x<count($ima); $x++) { if(substr($ima[$x],-3)==".MB") { if ( $ima[$x] == "0.MB" ){ - echo '<font color=red><strong>'.$TbMsg["CACHE_COMPLETE"].': '.$ima[$x].'</strong></font>'; + echo '<span style="color: red"><strong>'.$TbMsg["CACHE_COMPLETE"].': '.$ima[$x].'</strong></span>'; }else{ echo '<strong>'.$TbMsg["CACHE_FREESPACE"].': '.$ima[$x].'</strong>'; } }elseif (! empty($ima[1])){ - // $dir=is_dir('$ima');echo $dir; - // if ($ima == "directorio"){$dir="si";} // Esto para la informacion de la imagen if (substr($ima[$x],-5)==".diff"){$info="F";}elseif(substr($ima[$x],-4)==".img"){$info="F";}else{$info="D";} // Esto para numerarla @@ -152,7 +150,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc) } elseif(preg_match("/.sum/",$ima[$x]) or preg_match("/.torrent/",$ima[$x]) or preg_match("/.full.sum/",$ima[$x])) { echo '<br /> '.$ima[$x]; }else{ - echo '<br /><font color=blue>('.$info.') </font>'.$numero++.'.-<font color=blue>'.$ima[$x]."</font>"; + echo '<br /><span style="color: blue">('.$info.') </span>'.$numero++.'.-<span style="color: blue">'.$ima[$x]."</span>"; } } } @@ -193,7 +191,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc) if (!empty($aviso)) { echo '<tr><th colspan="'.$columns.'"> * '.$aviso.' </th></tr>'."\n"; } - echo '<tr height="5"><td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </td></tr>'; + echo '<tr><td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height: 5px;"> </td></tr>'; } @@ -203,7 +201,7 @@ function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc) // (Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php) // Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, // grupo de ordenadores o aula -// Parametros: +// Parámetros: // $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato // sería una secuencia de cadenas del tipo "clave de configuración" separados por "@" // Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 @@ -289,7 +287,7 @@ function pintaParticionesRestaurarImagen($cmd,$configuraciones,$idordenadores,$c } } } - echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </TD></TR>'; + echo '<TR><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height:5px;"> </TD></TR>'; } /*________________________________________________________________________________________________________ @@ -298,7 +296,7 @@ function pintaParticionesRestaurarImagen($cmd,$configuraciones,$idordenadores,$c (Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php) Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, grupo de ordenadores o aula - Parametros: + Parámetros: $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato sería una secuencia de cadenas del tipo "clave de configuración" separados por "@" Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 @@ -342,7 +340,7 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) $sf=tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores,true); echo '<td>'.HTMLSELECT_sistemasficheros($cmd,$sf).'</td>'; $tm=tomaTamano($tbKeys[$k]["numpar"],$idordenadores); - echo '<td><input type="text" style="width:100" value="'.$tm.'"></td>'; + echo '<td><input type="text" style="width:100px" value="'.$tm.'"></td>'; echo '<td>'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'</td>'; echo '<td>'.opeFormatear().'</td>'; echo '</tr>'; @@ -361,8 +359,8 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) // Datos del disco $tm=tomaTamano(0,$idordenadores); echo '<tr id="TRIMG_'.$cc.'" align="center">'. - "\n<td></td>\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0px; "'.">".$TbMsg["DISK"]."</td>". - "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0px; "> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>"))." <input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100' value='".$tm."'></td>". + "\n<td></td>\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "'.">".$TbMsg["DISK"]."</td>". + "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>"))." <input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100px' value='".$tm."'></td>". "\n<td></td>\n<td></td>\n</tr>"; echo '<tr><th colspan="'.$colums.'"> '.$TbMsg["WARN_DISKSIZE"].'</th></tr>'; // Mostrar aviso: solo disco 1 con tabla MSDOS. @@ -371,14 +369,14 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) } // Botones de añadir y confirmar. if (isset($tm)) { - echo '<TR height=30><TD style="BACKGROUND-COLOR: #FFFFFF;" colspan='.$colums.' align=center>'; - echo ' <A href="#add" style="text-decoration:none"> - <IMG id="IMG_'.$icp.'" border=0 src="../images/boton_insertar.gif" - value="'.$k.'" onclick="addParticion(this,'.$cc.')"></A> - - <A href="#add" style="text-decoration:none"> - <IMG border=0 src="../images/boton_aceptar.gif" onclick="Confirmar('.$cc.')"></A></TD> - </TR>'; + echo '<tr><td style="background-color: #FFFFFF; height: 30px;" colspan="'.$colums.'" align="center">'; + echo ' <a href="#add" style="text-decoration:none"> + <img id="IMG_'.$icp.'" border=0 src="../images/boton_insertar.gif" + value="'.$k.'" onclick="addParticion(this,'.$cc.')"></a> + + <a href="#add" style="text-decoration:none"> + <img border=0 src="../images/boton_aceptar.gif" onclick="Confirmar('.$cc.')"></a></td> + </tr>'; } else { echo '<tr><th colspan="'.$colums.'">'.$TbMsg["WARN_DIFFDISKSIZE"].'</th></tr>'."\n"; } @@ -386,24 +384,24 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) /* // -// Descripcion: -// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php) +// Descripcián: +// (Esta función es llamada por pintaConfiguraciones que está incluida en ConfiguracionesParticiones.php) // Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, // grupo de ordenadores o aula -// Parametros: -// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato -// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@" +// Parámetros: +// $configuraciones: Cadena con las configuraciones de particioners del ámbito. El formato +// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@" // Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 // Devuelve: -// El c�digo html de la tabla +// El código html de la tabla //________________________________________________________________________________________________________ // // */ function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito) { - global $tbKeys; // Tabla contenedora de claves de configuraci�n - global $conKeys; // Contador de claves de configuraci�n + global $tbKeys; // Tabla contenedora de claves de configuración + global $conKeys; // Contador de claves de configuración global $TbMsg; global $_SESSION; @@ -445,7 +443,7 @@ function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$i echo '<TR>'.chr(13); echo '<TD align=center> </TD>'; if($swcc){ - $icp=$cc."_".$tbKeys[$k]["numdisk"]."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n + $icp=$cc."_".$tbKeys[$k]["numdisk"]."_".$tbKeys[$k]["numpar"]; // Identificador de la configuración-partición echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numdisk"].";".$tbKeys[$k]["numpar"].'></TD>'.chr(13); echo '<TD align=center> '.$tbKeys[$k]["numpar"].' </TD>'.chr(13); echo '<TD align=center> '.$tbKeys[$k]["tipopar"].' </TD>'.chr(13); @@ -479,169 +477,6 @@ function pintaParticionesRestaurarImagenSincronizacion1($cmd,$configuraciones,$i } } - echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </TD></TR>'; + echo '<TR><TD colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF; height: 5px;"> </TD></TR>'; echo '<tr><th colspan="14">'.$TbMsg["WARN_PROTOCOL"].'</th></tr>'; } -/** - * Las funcion pintaParticionesRestaurarImagenSincronizacion1 sustituye a las funciones - * pintaParticionesRestaurarSoftIncremental y pintaParticionesRestaurarImagenBasica - * para volver a usarlas tan sólo hay que ir al fichero comandos/RestaurarImagenBasica o comandos/RestaurarSoftIncremental y cambiar la - * llamada a la función que queramos en el parametro de pintaConfiguraciones. - * Actualmente en ambos ficheros llaman a la función pintaParticionesRestaurarImagenSincronizacion1 ya que pintan - * exactamente lo mismo. - * - -//********************************************************************************************* -// FUNCIONES -//********************************************************************************************* -// -// Descripci�n: -// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php) -// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, -// grupo de ordenadores o aula -// Parametros: -// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato -// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@" -// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 -// Devuelve: -// El c�digo html de la tabla -//________________________________________________________________________________________________________ -// -// -function pintaParticionesRestaurarSoftIncremental($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito) -{ - global $tbKeys; // Tabla contenedora de claves de configuraci�n - global $conKeys; // Contador de claves de configuraci�n - global $TbMsg; - global $_SESSION; - - // Separamos las configuraciones segun el disco al que pertenezcan - $diskConfigs = splitConfigurationsByDisk($configuraciones); - - $columns=9; - echo '<TR>'; - echo '<TH align=center> </TH>'; - echo '<th align="center"> '.$TbMsg["DISK"].' </th>'; // Número de disco - echo '<TH align=center> '.$TbMsg["PARTITION"].' </TH>'; - echo '<th align="center"> '.$TbMsg["PARTITION_TYPE"].' </th>'; // Tipo de partición - echo '<th align="center"> '.$TbMsg["INST_SO"].' </th>'; // Sistema Operativo Instalado - echo '<th align="center"> '.$TbMsg["FILESYSTEM_SHORT"].' </th>'; // Sistema de ficheros - echo '<th align="center"> '.$TbMsg["SIZE_KB"].' </th>'; // Tamaño - echo '<TH align=center> '.$TbMsg[10].' </TH>'; - echo '<TH align=center> '.$TbMsg[16].' </TH>'; - echo '</TR>'; - - - // Recorremos todas las configuraciones encontradas para cada disco - - foreach($diskConfigs as $disk => $diskConfig){ - $disk = (int)$disk; - echo'<tr height="16">'.chr(13); - echo '<td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;"> '.$TbMsg["DISK"].' '.$disk.'</td>'.chr(13); - - $auxCfg=explode("@",$diskConfig); // Crea lista de particiones - for($i=0;$i<sizeof($auxCfg);$i++){ - $auxKey=explode(";",$auxCfg[$i]); // Toma clave de configuracion - for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa partici�n - if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas - $swcc=$tbKeys[$k]["clonable"]; - echo '<TR>'.chr(13); - echo '<TD align=center> </TD>'; - if($swcc){ - $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n - echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13); - echo '<TD align=center> '.$tbKeys[$k]["numpar"].' </TD>'.chr(13); - echo '<TD align=center> '.$tbKeys[$k]["tipopar"].' </TD>'.chr(13); - echo '<TD align=center> '.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo'<TD align=center> '.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo'<TD align=center> '.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>'; - $metodos="CACHE=".$TbMsg[13].chr(13); - $metodos.="REPO=".$TbMsg[9]; - echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>'; - - } - echo '</TR>'.chr(13); - } - } - } - } - echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </TD></TR>'; -} - -//********************************************************************************************* -// FUNCIONES -//********************************************************************************************* -// -// Descripci�n: -// (Esta funci�n es llamada por pintaConfiguraciones que est� incluida en ConfiguracionesParticiones.php) -// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador, -// grupo de ordenadores o aula -// Parametros: -// $configuraciones: Cadena con las configuraciones de particioners del �mbito. El formato -// ser�a una secuencia de cadenas del tipo "clave de configuraci�n" separados por "@" -// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0 -// Devuelve: -// El c�digo html de la tabla -//________________________________________________________________________________________________________ -// -// -function pintaParticionesRestaurarImagenBasica($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito) -{ - global $tbKeys; // Tabla contenedora de claves de configuraci�n - global $conKeys; // Contador de claves de configuraci�n - global $TbMsg; - global $_SESSION; - - // Separamos las configuraciones segun el disco al que pertenezcan - $diskConfigs = splitConfigurationsByDisk($configuraciones); - - $columns=9; - echo '<TR>'; - echo '<TH align=center> </TH>'; - echo '<th align="center"> '.$TbMsg["DISK"].' </th>'; // Número de disco - echo '<TH align=center> '.$TbMsg["PARTITION"].' </TH>'; - echo '<th align="center"> '.$TbMsg["PARTITION_TYPE"].' </th>'; // Tipo de partición - echo '<th align="center"> '.$TbMsg["INST_SO"].' </th>'; // Sistema Operativo Instalado - echo '<th align="center"> '.$TbMsg["FILESYSTEM_SHORT"].' </th>'; // Sistema de ficheros - echo '<th align="center"> '.$TbMsg["SIZE_KB"].' </th>'; // Tamaño - echo '<TH align=center> '.$TbMsg[10].' </TH>'; - echo '<TH align=center> '.$TbMsg[16].' </TH>'; - echo '</TR>'; - - // Recorremos todas las configuraciones encontradas para cada disco - - foreach($diskConfigs as $disk => $diskConfig){ - $disk = (int)$disk; - echo'<tr height="16">'.chr(13); - echo '<td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;"> '.$TbMsg["DISK"].' '.$disk.'</td>'.chr(13); - - $auxCfg=explode("@",$diskConfig); // Crea lista de particiones - for($i=0;$i<sizeof($auxCfg);$i++){ - $auxKey=explode(";",$auxCfg[$i]); // Toma clave de configuracion - for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa partici�n - if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas - $swcc=$tbKeys[$k]["clonable"]; - if($swcc){ - echo '<TR>'.chr(13); - echo '<TD align=center> </TD>'; - $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuraci�n-partici�n - echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13); - echo '<TD align=center> '.$tbKeys[$k]["numpar"].' </TD>'.chr(13); - echo '<TD align=center> '.$tbKeys[$k]["tipopar"].' </TD>'.chr(13); - echo '<TD align=center> '.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo'<TD align=center> '.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo'<TD align=center> '.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).' </TD>'.chr(13); - echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>'; - $metodos="CACHE=".$TbMsg[13].chr(13); - $metodos.="REPO=".$TbMsg[9]; - echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>'; - } - } - } - } - } - echo '<TR height=5><TD colspan='.$columns.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;"> </TD></TR>'; -} -**/ - diff --git a/admin/WebConsole/includes/pintaTablaConfiguraciones.php b/admin/WebConsole/includes/pintaTablaConfiguraciones.php index 27e6fac4..6491856e 100644 --- a/admin/WebConsole/includes/pintaTablaConfiguraciones.php +++ b/admin/WebConsole/includes/pintaTablaConfiguraciones.php @@ -38,10 +38,10 @@ function tablaConfiguracionesIniciarSesion($cmd,$idambito,$ambito){ // CONSULTA BD: grupo de equipos con iguales sistemas operativos: idordenadores,configuracion $cmd->texto=""; // agrupamos equipos con igual conf de disco. - $cmd->texto="select GROUP_CONCAT(pcconf.idordenador SEPARATOR ',') AS idordenadores, pcconf.configuraciones FROM ("; + $cmd->texto="SELECT GROUP_CONCAT(pcconf.idordenador SEPARATOR ',') AS idordenadores, pcconf.configuraciones FROM ("; // partconf agrupa la configuracion de todas las part: idordenador | configuracionTodasPart - $cmd->texto.=" select partconf.idordenador , GROUP_CONCAT(partconf.configuracion ORDER BY partconf.configuracion ASC SEPARATOR '@' ) AS configuraciones FROM ("; + $cmd->texto.=" SELECT partconf.idordenador, GROUP_CONCAT(partconf.configuracion ORDER BY partconf.configuracion ASC SEPARATOR '@') AS configuraciones FROM ("; // particion conf: idordenador, numdisk, configuracion (numdisk;numpar;idnombreso) $cmd->texto.="SELECT ordenadores_particiones.idordenador,ordenadores_particiones.numdisk, CONCAT_WS(';',ordenadores_particiones.numdisk, ordenadores_particiones.numpar, ordenadores_particiones.idnombreso) AS configuracion FROM ordenadores_particiones "; @@ -138,9 +138,7 @@ function tablaConfiguracionesInventarioSoftware($cmd,$idordenador){ WHERE ordenadores.idordenador=".$idordenador." AND nombresos.nombreso!='DATA' ORDER BY ordenadores_particiones.numdisk,ordenadores_particiones.numpar"; - - $rs->Comando=&$cmd; - $rs=new Recordset; + $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset diff --git a/admin/WebConsole/includes/restfunctions.php b/admin/WebConsole/includes/restfunctions.php index 3f91f7f5..374e4f0c 100644 --- a/admin/WebConsole/includes/restfunctions.php +++ b/admin/WebConsole/includes/restfunctions.php @@ -69,4 +69,4 @@ function multiRequest($data, $options=array(CURLOPT_SSL_VERIFYHOST => false, CUR return $result; } -?> + diff --git a/admin/WebConsole/includes/tftputils.php b/admin/WebConsole/includes/tftputils.php index 5cf2da88..6798577b 100644 --- a/admin/WebConsole/includes/tftputils.php +++ b/admin/WebConsole/includes/tftputils.php @@ -17,7 +17,7 @@ define("PXEDIR", "/opt/opengnsys/tftpboot/menu.lst"); /** * @brief Sustituye espacio por "_" y quita acentos y tildes. - * @param cadena Cadena a modificar. + * @param string Cadena a modificar. * @return string Cadena modificada. * @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado. * @author @@ -50,10 +50,10 @@ function clientKernelVersion () { * createBootMode ($cmd, $bootopt, $hostid, $lang) * @brief Crea un fichero PXE para el ordenador basado en la plantilla indicada y usando * los datos almacenados en la BD. - * @param {Object} cmd Objeto de conexión a la base de datos. - * @param {String} bootopt Plantilla de arranque PXE. - * @param {Number} hostid Id. del ordenador. - * @param {String} lang Idioma de arranque. + * @param Object cmd Objeto de conexión a la base de datos. + * @param String bootopt Plantilla de arranque PXE. + * @param Integer hostid Id. del ordenador. + * @param String lang Idioma de arranque. * @version 1.0.5 - Primera versión, adaptada de NetBoot Avanzado (Antonio J. Doblas Viso - Universidad de Málaga) * @author Ramón Gómez - ETSII Universidad de Sevilla * @date 2013-04-25 @@ -63,7 +63,7 @@ function clientKernelVersion () { * @version 1.1.0 - La segunda fase de carga del ogLive se define en el SERVER para evitar erores de sincronismo entre versiones (ticket #787). * @author Antonio J. Doblas Viso - Universidad de Malaga * @date 2017-06-01 - * @version 1.1.0 - Se incluye el nombre del perfil hardware y se elimina el winboot (ticket #828). + * @version 1.1.0 - Se incluye el nombre del perfil hardware y se elimina el winboot (ticket #828). * @author Antonio J. Doblas Viso - Universidad de Malaga * @date 2018-01-21 */ @@ -180,7 +180,7 @@ function createBootMode ($cmd, $bootopt, $hostid, $lang) { /** * deleteBootFile ($mac) * @brief Borra el fichero PXE del ordenador con la dirección MAC correspondiente. - * @param {String} mac Dirección MAC del ordenador (sin caracteres ":"). + * @param String mac Dirección MAC del ordenador (sin caracteres ":"). * @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado. * @authors Ramón Gómez - ETSII Universidad de Sevilla * @date 2013-04-25 @@ -198,10 +198,10 @@ function deleteBootFile ($mac) { * updateBootMode ($cmd, $idfield, $idvalue, $lang) * @brief Ejecuta la función para componer fichero PXE para todos los clientes que cumplan * con un determinado criterio de búsqueda basado en clave ejena. - * @param {Object} cmd Objeto de conexión con la base de datos. - * @param {String} idfield Campo identificador de la clave ajena para buscar ordenadores. - * @param {Number} idvalue Valor a buscar en el ídentificador de la clave ajena. - * @param {String} lang Idioma de arranque. + * @param Object cmd Objeto de conexión con la base de datos. + * @param String idfield Campo identificador de la clave ajena para buscar ordenadores. + * @param Integer idvalue Valor a buscar en el ídentificador de la clave ajena. + * @param String lang Idioma de arranque. * @versión 1.0.5 - Primera versión, adaptada de NetBoot Avanzado. * @authors Ramón Gómez - ETSII Universidad de Sevilla * @date 2013-04-25 @@ -239,9 +239,9 @@ function updateBootMode ($cmd, $idfield, $idvalue, $lang) { /** * updateBootRepo ($cmd, $repoid) * @brief Actualiza la IP del repositorio en los ficheros PXE de todos sus equipos asociados. - * @param {Object} cmd Objeto de conexión con la base de datos - * @param {Integer} repoid Campo identificador del repositorio - * @return {Integer} 0, sin errores; -1, error acceso a BD; >0, ficheros no modificados + * @param Object cmd Objeto de conexión con la base de datos + * @param Integer repoid Campo identificador del repositorio + * @return Integer 0, sin errores; -1, error acceso a BD; >0, ficheros no modificados * @versión 1.1.0 - Primera versión. * @authors Ramón Gómez - ETSII Universidad de Sevilla * @date 2018-01-19 @@ -266,7 +266,7 @@ function updateBootRepo ($cmd, $repoid) { if ($pxecode = @file_get_contents($macfile)) { $pxecode = preg_replace("/ogrepo=[^ ]*/", "ogrepo=$repo", $pxecode); if (! @file_put_contents($macfile, $pxecode)) { - $erros++; + $errors++; } } $rs->Siguiente(); diff --git a/admin/WebConsole/jscripts/consolaremota.js b/admin/WebConsole/jscripts/consolaremota.js index b5f78ba8..7255e769 100644 --- a/admin/WebConsole/jscripts/consolaremota.js +++ b/admin/WebConsole/jscripts/consolaremota.js @@ -5,7 +5,7 @@ function confirmar() { ambito=document.fdatos.ambito.value; if(ambito==AMBITO_ORDENADORES){ - var diveco=document.getElementById("diveco"); // Contenedor de salida de cdigo + var diveco=document.getElementById("diveco"); // Contenedor de salida de código diveco.innerHTML=" "; // } var Obtcmd=document.getElementById("comando"); @@ -37,9 +37,9 @@ function enviaMsg(cmd) } //______________________________________________________________________________________________________ function resultadocmd(resul){ - if(resul==1){ // Si todo va bien se llama a la funcin que recupera elfichero de eco + if(resul===1){ // Si todo va bien se llama a la función que recupera elfichero de eco //alert(TbMsg[1]) - if(ambito==AMBITO_ORDENADORES){ + if(ambito===AMBITO_ORDENADORES){ sw=2; enviaMsg(null); } diff --git a/admin/WebConsole/principal/actualizar.php b/admin/WebConsole/principal/actualizar.php index a67e3585..63f2d1b3 100644 --- a/admin/WebConsole/principal/actualizar.php +++ b/admin/WebConsole/principal/actualizar.php @@ -59,5 +59,5 @@ } else echo "0"; // Error de conexión -?> + diff --git a/admin/WebConsole/principal/ayuda.php b/admin/WebConsole/principal/ayuda.php index b5380e5c..3bd8aeae 100644 --- a/admin/WebConsole/principal/ayuda.php +++ b/admin/WebConsole/principal/ayuda.php @@ -28,6 +28,7 @@ $version=(empty($data->project)) ? "OpenGnsys" : @$data->project.' '.@$data->ver <p class=subcabeceras><a class="help_menu" href="manual.php"> <?php echo $TbMsg["MANUAL"] ?> </a> </p> <p class=subcabeceras><a class="help_menu" href="../api/index.html"> <?php echo $TbMsg["API"] ?> </a></p> <p class=subcabeceras><a class="help_menu" href="engine.php"> <?php echo $TbMsg["CFG"] ?> </a> </p> + <p class=subcabeceras><a class="help_menu" href="../rest/"> <?php echo $TbMsg["REST"] ?> </a></p> <p> </p> <p class=subcabeceras><a class="help_menu" href="changelog.php"> <?php echo $TbMsg["CHANGELOG"]." ".$version ?> </a> </p> <p class=subcabeceras><a class="help_menu" href="https://listas.unizar.es/cgi-bin/mailman/listinfo/opengnsys-users" target="_blank"> <?php echo $TbMsg["USERMAIL"] ?> </a> </p> diff --git a/admin/WebConsole/principal/changelog.php b/admin/WebConsole/principal/changelog.php index bf829826..ddfc8f9f 100644 --- a/admin/WebConsole/principal/changelog.php +++ b/admin/WebConsole/principal/changelog.php @@ -22,14 +22,12 @@ $changelog=(file_exists ($changelogfile)) ? file_get_contents($changelogfile, TR <body> - <div><p align=center class=cabeceras><img border=0 nod="aulas-1" value="Sala Virtual" style="cursor:pointer" src="../images/iconos/aula.gif" > <?php echo $TbMsg["CHANGELOG_TITLE"] ?><br> - <span id="aulas-1" class=subcabeceras><?php echo $version ?></span></p> + <div><p align="center" class="cabeceras"><img border="0" src="../images/iconos/aula.gif" > <?php echo $TbMsg["CHANGELOG_TITLE"] ?><br> + <span id="aulas-1" class="subcabeceras"><?php echo $version ?></span></p> </div> - <div style="margin: 0 3em 0 3em"> - <pre> - <?php echo $changelog; ?> - <pre> + <div style="margin: 3em"> + <pre><?php echo $changelog; ?><pre> </div> </body> </html> diff --git a/admin/WebConsole/principal/colasacciones.php b/admin/WebConsole/principal/colasacciones.php index 1c6558d7..ad927564 100644 --- a/admin/WebConsole/principal/colasacciones.php +++ b/admin/WebConsole/principal/colasacciones.php @@ -141,8 +141,8 @@ //________________________________________________________________________________________________________ ?> <HTML> - <TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT> @@ -175,8 +175,8 @@ $HTMLCriterios=""; $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'; // Filtro de búsquedas - $HTMLCriterios.=' <TR HEIGHT=30>'; - $HTMLCriterios.=' <TD style=" BORDER-BOTTOM:#5a86b5 1px solid;"colspan=2 align="center" >'; + $HTMLCriterios.=' <TR>'; + $HTMLCriterios.=' <TD HEIGHT="30px" style="BORDER-BOTTOM:#5a86b5 1px solid;" colspan=2 align="center">'; $HTMLCriterios.=' <SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">____ '.$TbMsg[1].'____</SPAN></TD></TR>'; @@ -861,11 +861,10 @@ function escribeResumen($oA) { global $cmd; global $TbMsg; - global $ACCION_EXITOSA; global $ACCION_FALLIDA; - global $ACCION_SINRESULTADO; - + global $ACCION_SINRESULTADO; + global $ACCION_DETENIDA; global $EJECUCION_TAREA; $html=""; @@ -1198,9 +1197,7 @@ function ContextualXMLComun() global $EJECUCION_TAREA; global $sesion; - $layerXML=""; - - $layerXML.='<ITEM'; + $layerXML ='<ITEM'; $layerXML.=' alpulsar="eleccion(1,document.facciones.localaccion)"'; $layerXML.=' imgitem="../images/iconos/eliminar.gif"'; $layerXML.=' textoitem='.$TbMsg[46]; @@ -1244,5 +1241,4 @@ function ContextualXMLComun() $layerXML.='</MENUCONTEXTUAL>'; return($layerXML); } -?> diff --git a/admin/WebConsole/principal/configuraciones.php b/admin/WebConsole/principal/configuraciones.php index 7c6e02aa..39093914 100644 --- a/admin/WebConsole/principal/configuraciones.php +++ b/admin/WebConsole/principal/configuraciones.php @@ -280,7 +280,7 @@ function datosGruposOrdenadores($cmd,$idgrupo) } $rs->Cerrar(); } - if ($numordenadores==0) + if ($ordenadores==0) { $cmd->texto="SELECT *, COUNT(*) AS numordenadores FROM gruposordenadores diff --git a/admin/WebConsole/principal/ecoconsola.php b/admin/WebConsole/principal/ecoconsola.php index cdd09205..5832e8e9 100644 --- a/admin/WebConsole/principal/ecoconsola.php +++ b/admin/WebConsole/principal/ecoconsola.php @@ -78,4 +78,4 @@ } -?> + diff --git a/admin/WebConsole/principal/engine.php b/admin/WebConsole/principal/engine.php index 55004b8d..d7d10db1 100644 --- a/admin/WebConsole/principal/engine.php +++ b/admin/WebConsole/principal/engine.php @@ -18,14 +18,12 @@ $config=(file_exists ($cfgfile)) ? file_get_contents($cfgfile, TRUE) : "No hay a <body> - <div><p align=center class=cabeceras><img border=0 nod="aulas-1" value="Sala Virtual" style="cursor:pointer" src="../images/iconos/aula.gif" > <?php echo $TbMsg["ENGINE_TITLE"] ?><br> - <span id="aulas-1" class=subcabeceras><?php echo $TbMsg["ENGINE_SUBTITLE"] ?></span></p> + <div><p align="center" class="cabeceras"><img border="0" src="../images/iconos/aula.gif" > <?php echo $TbMsg["ENGINE_TITLE"] ?><br> + <span id="aulas-1" class="subcabeceras"><?php echo $TbMsg["ENGINE_SUBTITLE"] ?></span></p> </div> - <div style="margin: 0 3em 0 3em"> - <pre> - <?php echo $config; ?> - <pre> + <div style="margin: 3em"> + <pre><?php echo $config; ?><pre> </div> </body> </html> diff --git a/admin/WebConsole/principal/manual.php b/admin/WebConsole/principal/manual.php index ce9885cc..85921d75 100644 --- a/admin/WebConsole/principal/manual.php +++ b/admin/WebConsole/principal/manual.php @@ -37,7 +37,8 @@ foreach ($fichero as $ficheros) { </head> <body class='acercade'> -<div><p align=center class=cabeceras><img border=0 nod="aulas-1" value="Sala Virtual" style="cursor:pointer" src="../images/iconos/aula.gif" > <?php echo $TbMsg["MANUAL"] ?><br> +<p align=center class=cabeceras><img border=0 style="cursor: pointer;" src="../images/iconos/aula.gif" > <?php echo $TbMsg["MANUAL"] ?></p> +<br> <table width='100%' border='0'> <tr> diff --git a/admin/WebConsole/principal/purgar.php b/admin/WebConsole/principal/purgar.php index d3d0aaaa..bc945ffd 100644 --- a/admin/WebConsole/principal/purgar.php +++ b/admin/WebConsole/principal/purgar.php @@ -59,5 +59,5 @@ } else echo "0"; // Error de conexión -?> + diff --git a/admin/WebConsole/principal/repositorios.php b/admin/WebConsole/principal/repositorios.php index e2144b7f..5b273ed4 100644 --- a/admin/WebConsole/principal/repositorios.php +++ b/admin/WebConsole/principal/repositorios.php @@ -34,8 +34,8 @@ $XMLcontextual=ContextualXMLComandos($LITAMBITO_CENTROS,$AMBITO_CENTROS); //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT> @@ -70,7 +70,7 @@ echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreacontextualXMLRepositorio(); // Repositorio echo $flotante->CreaMenuContextual($XMLcontextual); ?> -</BODY OnContextMenu="return false;"> +</BODY> </HTML> <?php // ************************************************************************************************************************************************* @@ -325,7 +325,8 @@ function ContextualXMLComandos($litambito,$ambito){ global $cmd; global $TbMsg; $maxlongdescri=0; - $rs=new Recordset; + $descrip=""; + $rs=new Recordset; $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion FROM comandos WHERE activo=1 AND aplicambito & ".$ambito.">0 @@ -335,9 +336,10 @@ function ContextualXMLComandos($litambito,$ambito){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ - if (isset($TbMsg["COMMAND_".$rs->campos["funcion"]])) {$descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]];}else{$descrip;} - //$descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; - if (empty ($descrip)) { + if (isset($TbMsg["COMMAND_".$rs->campos["funcion"]])) { + $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; + } + if (empty($descrip)) { $descrip=$rs->campos["funcion"]; } $layerXML.='<ITEM'; diff --git a/admin/WebConsole/principal/shellconsola.php b/admin/WebConsole/principal/shellconsola.php index 64c44f79..a37276f0 100644 --- a/admin/WebConsole/principal/shellconsola.php +++ b/admin/WebConsole/principal/shellconsola.php @@ -189,4 +189,4 @@ function RecorreOrdenadores($cmd){ } $rs->Cerrar(); } -?> + diff --git a/admin/WebConsole/principal/sondeo.php b/admin/WebConsole/principal/sondeo.php index cc63ec60..ca3e8b5e 100644 --- a/admin/WebConsole/principal/sondeo.php +++ b/admin/WebConsole/principal/sondeo.php @@ -95,5 +95,5 @@ } } echo $trama_notificacion; -?> + diff --git a/admin/WebConsole/propiedades/propiedades_aulas.php b/admin/WebConsole/propiedades/propiedades_aulas.php index cace8c5f..44cb4185 100644 --- a/admin/WebConsole/propiedades/propiedades_aulas.php +++ b/admin/WebConsole/propiedades/propiedades_aulas.php @@ -81,8 +81,8 @@ if (!$resul) //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/validators.js"></SCRIPT> @@ -110,7 +110,7 @@ function abrir_ventana(URL){ <input type="hidden" name="oglive" value="<?php echo $oglive ?>"> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=5 cellPadding=1 cellSpacing=1 class=tabla_datos > <!-- AGP --> <!-------------------------------------------------- AGP -----------------------------------------------------------------> <TR> @@ -126,7 +126,7 @@ function abrir_ventana(URL){ <br />'.$TbMsg[21].': '. $ordenadores.'</td>'; } else{ - echo '<td><input class="formulariodatos" name=nombreaula style="width:215" type=text value="'. $nombreaula.'" /></td>'; + echo '<td><input class="formulariodatos" name=nombreaula style="width:215px" type=text value="'. $nombreaula.'" /></td>'; echo'<td rowspan="5" colspan="2" valign="top" align="left"><img border="3" style="border-color:#63676b" src="../images/fotos/'.$urlfoto.'" /><br />'.$TbMsg[21].': '. $ordenadores.'<br />(150X110)-(jpg - gif - png) ---- '.$TbMsg[5091].'<br /><input name="archivo" type="file" id="archivo" size="16" /></td>'; } ?> @@ -175,7 +175,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<td>'.$puestos.'</td>'; else - echo '<td><input class="formulariodatos" name=puestos style="width:30" type=text value='.$puestos.'></td>'; + echo '<td><input class="formulariodatos" name=puestos style="width:30px" type=text value='.$puestos.'></td>'; ?> </tr> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -252,7 +252,7 @@ function abrir_ventana(URL){ if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.$router.'</TD>'; else - echo '<TD colspan=3><INPUT class="formulariodatos" name=router style="width:100" type=text value='.$router.'></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=router style="width:100px" type=text value='.$router.'></TD>'; ?> </TR> <!---- ADV --------------------------netmask-------------------------------------------------------------------------------------------------------------------------------------------> @@ -261,7 +261,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.$netmask.'</TD>'; else - echo '<TD colspan=3><INPUT class="formulariodatos" name=netmask style="width:100" type=text value='.$netmask.'></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=netmask style="width:100px" type=text value='.$netmask.'></TD>'; ?> </TR> <!---- Ramón ------------------------ntp-------------------------------------------------> @@ -270,7 +270,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) { echo '<td colspan="3">'.$ntp.'</td>'; } else { - echo '<td colspan="3"><input class="formulariodatos" name="ntp" style="width:100" type="text" maxlength="15" value="'.$ntp.'" /> '; + echo '<td colspan="3"><input class="formulariodatos" name="ntp" style="width:100px" type="text" maxlength="15" value="'.$ntp.'" /> '; if (exec("timedatectl status | awk -F'[:()]' '/Time.*zone/ {print $2}'", $out, $err)) { echo '<em>('.$TbMsg['COMM_DEFTIMEZONE'].': '.$out[0].')</em>'; } @@ -284,7 +284,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<td colspan="3">'.$dns.'</td>'; else - echo '<td colspan="3"><input class="formulariodatos" name="dns" style="width:100" type="text" maxlength="15" value="'.$dns.'" /></td>'; + echo '<td colspan="3"><input class="formulariodatos" name="dns" style="width:100px" type="text" maxlength="15" value="'.$dns.'" /></td>'; ?> </tr> <!---- Ramón ------------------------proxy-------------------------------------------------> @@ -293,7 +293,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<td colspan="3">'.$proxy.'</td>'; else - echo '<td colspan="3"><input class="formulariodatos" name="proxy" style="width:200" type="text" maxlength="30" value="'.$proxy.'" /></td>'; + echo '<td colspan="3"><input class="formulariodatos" name="proxy" style="width:200px" type="text" maxlength="30" value="'.$proxy.'" /></td>'; ?> </tr> <!---- ADV --------------------------p2pmodo-------------------------------------------------------------------------------------------------------------------------------------------> @@ -318,7 +318,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.$timep2p.'</TD>'; else - echo '<TD colspan=3><INPUT class="formulariodatos" name=timep2p style="width:100" type=text value='.$timep2p.'></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=timep2p style="width:100px" type=text value='.$timep2p.'></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -344,7 +344,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.$ipmul.'</TD>'; else - echo '<TD colspan=3><INPUT class="formulariodatos" name=ipmul style="width:100" type=text value='.$ipmul.'></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=ipmul style="width:100px" type=text value='.$ipmul.'></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -368,11 +368,11 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.$velmul.'</TD>'; else - echo '<TD colspan=3><INPUT class="formulariodatos" name=velmul style="width:100" type=text value='.$velmul.'></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=velmul style="width:100px" type=text value='.$velmul.'></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> -</TABLE></br> +</TABLE><p> <!-- ########################################### PROPIEDADES APLICABLES A TODOS LOS ORDENADORES #################################################################################--> <TABLE align=center border=7 cellPadding=3 cellSpacing=1 class=tabla_listados > @@ -412,7 +412,7 @@ function abrir_ventana(URL){ } echo HTMLCTESELECT($ogliveList,"oglive","estilodesple"," ",$cntDiff==0?$oglive:" ",200); if ($cntDiff > 0) { - echo ' <font color=red><strong>'.$TbMsg[34]." ==> $cntDiff</strong></font>\n"; + echo ' <div style="color: red; font-weight: bold;">'.$TbMsg[34]." ==> $cntDiff</div>\n"; } echo "</td>\n"; } @@ -454,7 +454,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<td colspan="3">'.$paginalogin.'</td>'; else - echo '<td colspan="3"><input class="formulariodatos" name="paginalogin" style="width:200" type="text" value="'.$paginalogin.'"></td>'; + echo '<td colspan="3"><input class="formulariodatos" name="paginalogin" style="width:200px" type="text" value="'.$paginalogin.'"></td>'; ?> </tr> <tr> @@ -462,7 +462,7 @@ function abrir_ventana(URL){ <?php if ($opcion==$op_eliminacion) echo '<td colspan="3">'.$paginavalidacion.'</td>'; else - echo '<td colspan="3"><input class="formulariodatos" name="paginavalidacion" style="width:200" type="text" value="'.$paginavalidacion.'"></td>'; + echo '<td colspan="3"><input class="formulariodatos" name="paginavalidacion" style="width:200px" type="text" value="'.$paginavalidacion.'"></td>'; ?> </tr> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -675,5 +675,3 @@ function TomaConfiguracion($cmd) { } return(false); } -?> - diff --git a/admin/WebConsole/propiedades/propiedades_centros.php b/admin/WebConsole/propiedades/propiedades_centros.php index c4f89fb2..887cc5cd 100644 --- a/admin/WebConsole/propiedades/propiedades_centros.php +++ b/admin/WebConsole/propiedades/propiedades_centros.php @@ -50,7 +50,7 @@ if ($opcion!=$op_alta){ ?> <HTML> <HEAD> -<TITLE>Administración web de aulas</TITLE> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_centros.js"></SCRIPT> @@ -65,18 +65,18 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=idcentro value=<?php echo $idcentro?>> <INPUT type=hidden name=identidad value=<?php echo $identidad?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> -<!--------------------------------------------------------------------------------------------------------------------------------------------------> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> <TH> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion){?> <TD><?php echo $nombrecentro?></TD> <?php }else{?> - <TD><INPUT type=text class=cajatexto name="nombrecentro" style="width:350" value="<?php echo $nombrecentro?>"> + <TD><INPUT type=text class=cajatexto name="nombrecentro" style="width:350px" value="<?php echo $nombrecentro?>"> <?php }?> </TR> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) @@ -85,8 +85,7 @@ if ($opcion!=$op_alta){ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=66>'.$comentarios.'</TEXTAREA></TD>'; ?> </TR> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> <?php if ($opcion!=$op_eliminacion) { echo " <TR>\n". " <TH align=center> ".$TbMsg['DIR']." </TH>\n". @@ -97,7 +96,7 @@ echo " <TR>\n". " </TR>\n"; } ?> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> </TABLE> </FORM> <?php diff --git a/admin/WebConsole/propiedades/propiedades_componentehardwares.php b/admin/WebConsole/propiedades/propiedades_componentehardwares.php index 4cba86ad..7ccae62b 100644 --- a/admin/WebConsole/propiedades/propiedades_componentehardwares.php +++ b/admin/WebConsole/propiedades/propiedades_componentehardwares.php @@ -40,8 +40,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_componentehardwares.js"></SCRIPT> @@ -49,24 +49,25 @@ if ($opcion!=$op_alta){ <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_componentehardwares_'.$idioma.'.js"></SCRIPT>'?> </HEAD> <BODY> -<FORM name="fdatos" action="../gestores/gestor_componentehardwares.php" method="post"> +<div align="center"> +<FORM name="fdatos" action="../gestores/gestor_componentehardwares.php" method="post"> <INPUT type=hidden name=opcion value="<?php echo $opcion?>"> - <INPUT type=hidden name=idhardware value=<?php echo $idhardware?>> - <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> - <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <INPUT type=hidden name=idhardware value="<?php echo $idhardware?>"> + <INPUT type=hidden name=grupoid value="<?php echo $grupoid?>"> + <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:215">'.$descripcion.'</TD>'; + echo '<TD style="width:215px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250" type=text value="'.$descripcion.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250px" type=text value="'.$descripcion.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.TomaDato($cmd,0,'tipohardwares',$idtipohardware,'idtipohardware','descripcion').'</TD>'; @@ -77,7 +78,7 @@ if ($opcion!=$op_alta){ <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> -</DIV> +</div> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -109,4 +110,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_componentesoftwares.php b/admin/WebConsole/propiedades/propiedades_componentesoftwares.php index 381ee125..68f4e95b 100644 --- a/admin/WebConsole/propiedades/propiedades_componentesoftwares.php +++ b/admin/WebConsole/propiedades/propiedades_componentesoftwares.php @@ -41,8 +41,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_componentesoftwares.js"></SCRIPT> @@ -50,23 +50,24 @@ if ($opcion!=$op_alta){ <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_componentesoftwares_'.$idioma.'.js"></SCRIPT>'?> </HEAD> <BODY> +<div align="center"> <FORM name="fdatos" action="../gestores/gestor_componentesoftwares.php" method="post"> <INPUT type=hidden name=opcion value="<?php echo $opcion?>"> <INPUT type=hidden name=idsoftware value=<?php echo $idsoftware?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> - <TR width="100px" style="display:block"> + <TR style="display:block"> <TH width="100px" align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:215">'.$descripcion.'</TD>'; + echo '<TD style="width:215px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250" type=text value="'.$descripcion.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250px" type=text value="'.$descripcion.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> - <TR width="100px" style="display:block" > + <TR style="display:block" > <TH width="100px" align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) @@ -77,22 +78,20 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <?php if($idtiposoftware!=1) - echo '<TR width="100px" id="tridtiposo" style="display:none">'; - else - echo '<TR width="100px" id="tridtiposo" style="display:block">'; + echo '<tr id="tridtiposo" style="display:none">'; + else + echo '<tr id="tridtiposo" style="display:block">'; + echo ' <TH width="100px" align=center> <?php echo $TbMsg[7]?> </TH>'; + if ($opcion==$op_eliminacion) + echo '<TD>'.TomaDato($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion').'</TD>'; + else + echo '<TD>'.HTMLSELECT($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion',250).'</TD>'; + echo '</tr>'; ?> - <TH width="100px" align=center> <?php echo $TbMsg[7]?> </TH> - <?php - if ($opcion==$op_eliminacion) - echo '<TD>'.TomaDato($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion').'</TD>'; - else - echo '<TD>'.HTMLSELECT($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion',250).'</TD>'; - ?> - </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> -</DIV> +</div> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -126,4 +125,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_entidades.php b/admin/WebConsole/propiedades/propiedades_entidades.php index 18b0abb2..e221d96a 100644 --- a/admin/WebConsole/propiedades/propiedades_entidades.php +++ b/admin/WebConsole/propiedades/propiedades_entidades.php @@ -51,7 +51,7 @@ if ($opcion!=$op_alta){ ?> <HTML> <HEAD> -<TITLE>Administración web de aulas</TITLE> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_entidades.js"></SCRIPT> @@ -60,45 +60,45 @@ if ($opcion!=$op_alta){ <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_entidades_'.$idioma.'.js"></SCRIPT>'?> </HEAD> <BODY> +<div align="center"> <FORM name="fdatos" action="../gestores/gestor_entidades.php" method="post"> <INPUT type=hidden name=opcion value=<?php echo $opcion?>> <INPUT type=hidden name=identidad value=<?php echo $identidad?>> <INPUT type=hidden name=iduniversidad value=<?php echo $iduniversidad?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> -<!--------------------------------------------------------------------------------------------------------------------------------------------------> - <TR> - <TH> <?php echo $TbMsg[5]?> </TH> - <?php if ($opcion==$op_eliminacion){?> - <TD><?php echo $nombreentidad?></TD> - <?php }else{?> - <TD><INPUT type=text class=cajatexto name="nombreentidad" style="width:350" value="<?php echo $nombreentidad?>"> - <?php }?> - </TR> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> - <?php if ($opcion==$op_eliminacion) + <TH> <?php echo $TbMsg[5]?> </TH> + <?php if ($opcion==$op_eliminacion){ + echo '<TD>'.$nombreentidad.'</TD>'; + }else{ + echo '<TD><INPUT type=text class=cajatexto name="nombreentidad" style="width:350px" value="'.$nombreentidad.'">'; + } ?> + </TR> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> + <TR> + <TH align=center> <?php echo $TbMsg[6]?> </TH> + <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=66>'.$comentarios.'</TEXTAREA></TD>'; ?> </TR> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> - <?php if ($opcion!=$op_eliminacion) { - ($ogunit == 1) ? $checked = "checked" : $checked = ""; -echo " <TR>\n". - " <TH align=center> ".$TbMsg['OGUNIT']." </TD>\n". +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> + <?php if ($opcion!=$op_eliminacion) { + $checked = ($ogunit == 1) ? "checked" : ""; + echo " <TR>\n". + " <TH align=center> ".$TbMsg['OGUNIT']." </TH>\n". " <TD><input class='formulariodatos' name='ogunit' value='1' type='checkbox' $checked onchange='mensaje_ogunit()'> </TD>\n". " </TR>\n"; - } - ?> -<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + } ?> +<!-- -------------------------------------------------------------------------------------------------------------------------------------------- --> </TABLE> </FORM> -</DIV> +</div> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -133,4 +133,4 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> + diff --git a/admin/WebConsole/propiedades/propiedades_entornos.php b/admin/WebConsole/propiedades/propiedades_entornos.php index 2d21fa30..dec84f96 100644 --- a/admin/WebConsole/propiedades/propiedades_entornos.php +++ b/admin/WebConsole/propiedades/propiedades_entornos.php @@ -49,8 +49,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_entornos.js"></SCRIPT> @@ -60,18 +60,18 @@ if ($opcion!=$op_alta){ </HEAD> <BODY> <DIV align=center> -<FORM name="fdatos" name="fdatos" action="../gestores/gestor_entornos.php" method="post"> +<FORM name="fdatos" action="../gestores/gestor_entornos.php" method="post"> <INPUT type=hidden name=identorno value="<?php echo $identorno?>"> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos > <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion){ echo '<TD>'. $ipserveradm.'</TD>'; @@ -84,7 +84,7 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$portserveradm.' </TD>'; else @@ -94,7 +94,7 @@ if ($opcion!=$op_alta){ <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$protoclonacion.'</TD>'; @@ -149,4 +149,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_grupos.php b/admin/WebConsole/propiedades/propiedades_grupos.php index 4a40470f..142f6d19 100644 --- a/admin/WebConsole/propiedades/propiedades_grupos.php +++ b/admin/WebConsole/propiedades/propiedades_grupos.php @@ -129,8 +129,8 @@ switch($literaltipo){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_grupos.js"></SCRIPT> @@ -149,19 +149,19 @@ switch($literaltipo){ <INPUT type=hidden name=iduniversidad value=<?php echo $iduniversidad?>> <INPUT type=hidden name=idaula value=<?php echo $idaula?>> <P align=center class=cabeceras><IMG src="<?php echo $urlimg?>"> <?php echo $textambito?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos > <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$nombregrupo.'</TD>'; + echo '<TD style="width:300px">'.$nombregrupo.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=nombregrupo style="width:320" type=text value="'.$nombregrupo.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=nombregrupo style="width:320px" type=text value="'.$nombregrupo.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -211,5 +211,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> - diff --git a/admin/WebConsole/propiedades/propiedades_imagenes.php b/admin/WebConsole/propiedades/propiedades_imagenes.php index 4f31f607..cc108c17 100644 --- a/admin/WebConsole/propiedades/propiedades_imagenes.php +++ b/admin/WebConsole/propiedades/propiedades_imagenes.php @@ -34,6 +34,7 @@ $modelo=""; $numdisk=0; $numpar=0; $codpar=0; +$tipopar=""; $idperfilsoft=0; $perfilsoft=""; $comentarios=""; @@ -45,6 +46,7 @@ $tipoimg=0; $idrepositorio=0; $repoip=""; $repokey=""; +$sistoperativo=""; $fechacreacion=""; $revision=0; $imagenid=0; @@ -116,8 +118,8 @@ if ($opcion!=$op_alta and isset($repokey)) { //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/validators.js"></SCRIPT> @@ -155,35 +157,37 @@ if ($opcion!=$op_alta and isset($repokey)) { ?> <P align=center class=cabeceras><?php echo $lit?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN> </P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[11]?> </TD> + <TH align=center> <?php echo $TbMsg[11]?> </TH> <?php if ($opcion==$op_eliminacion || !empty($idperfilsoft) || $opcion == 2) - echo '<TD style="width:150">'.$nombreca.' + echo '<TD style="width:150px">'.$nombreca.' <INPUT type="hidden" name="nombreca" value="'.$nombreca.'"></TD>'; else - echo '<TD><INPUT class="formulariodatos" name=nombreca style="width:150" type=text value="'.$nombreca.'"></TH>';if ($validnombreca == 1){echo '<font color=red><strong> '.$TbMsg[18].'</strong>';}?> + echo '<TD><INPUT class="formulariodatos" name=nombreca style="width:150px" type=text value="'.$nombreca.'">'; + if ($validnombreca == 1){echo '<div style="color: red; font-weight: bold;"> '.$TbMsg[18].'</div>';} + echo '</TD>';?> </TR> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) { - echo '<TD style="width:300">'.$descripcion.' + echo '<TD style="width:300px">'.$descripcion.' <INPUT type="hidden" name="descripcion" value="'.$descripcion.'"></TD>'; } else { - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:350" type=text value="'.$descripcion.'">'; - if ($validnombreca == 0 && $validdescripcion == 1){echo '<font color=red><strong> '.$TbMsg[22].'</strong>';} + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:350px" type=text value="'.$descripcion.'">'; + if ($validnombreca == 0 && $validdescripcion == 1){echo '<div style="color: red; font-weight: bold;"> '.$TbMsg[22].'</div>';} echo '</TD>'; } ?> </TR> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <?php if($tipoimg==$IMAGENES_INCREMENTALES){?> <TR> - <TH align=center> <?php echo $TbMsg[14]?> </TD> + <TH align=center> <?php echo $TbMsg[14]?> </TH> <?php if ($opcion==$op_eliminacion || !empty($idperfilsoft)) echo '<TD>'.TomaDato($cmd,$idcentro,'imagenes',$imagenid,'imagenid','descripcion').' <INPUT type="hidden" name="imagenid" value="'.$imagenid.'"></TD>'; @@ -194,9 +198,9 @@ if ($opcion!=$op_alta and isset($repokey)) { </TR> <?php } ?> <?php if($tipoimg!=$IMAGENES_INCREMENTALES){?> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[10]?> </TD> + <TH align=center> <?php echo $TbMsg[10]?> </TH> <?php if ($opcion==$op_eliminacion || !empty($idperfilsoft)) echo '<TD>'.$nombrerepositorio.' <INPUT type="hidden" name="idrepositorio" value="'.$idrepositorio.'"></TD>'; @@ -204,20 +208,20 @@ if ($opcion!=$op_alta and isset($repokey)) { echo '<TD>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio',300).'</TD>'; ?> </TR> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <?php if($tipoimg==$IMAGENES_BASICAS){?> <TR> - <TH align=center> <?php echo $TbMsg[16]?> </TD> + <TH align=center> <?php echo $TbMsg[16]?> </TH> <?php if ($opcion==$op_eliminacion || !empty($idperfilsoft)) echo '<TD>'.$ruta.' <INPUT type="hidden" name="ruta" value="'.$ruta.'"></TD>'; else - echo '<TD><INPUT class="formulariodatos" name=ruta style="width:350" type=text value="'.$ruta.'"></TH>';?> + echo '<TD><INPUT class="formulariodatos" name=ruta style="width:350px" type=text value="'.$ruta.'"></TH>';?> </TR> <?php }?> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -264,7 +268,7 @@ if ($opcion!=$op_alta and isset($repokey)) { </tr> <!-- Perfil de software --> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if (isset($modelo)) { echo '<TD> '.$perfilsoft.' @@ -319,7 +323,7 @@ EOT; echo '<tr><th colspan="14">'.$TbMsg["WARN_SOURCE_PATH"].'</th></tr>'; } }?> - <!--------------------------------------------------------------------------------------> + <!-- -------------------------------------------------------------------------------- --> </TABLE> </FORM> @@ -327,7 +331,7 @@ EOT; if (!empty($idperfilsoft)){ // Nota a pie de página indicando que cuando la imagen tiene perfilsoft no pueden modificarse ciertos campos echo ' <DIV id="Layer_nota" align=center > - <SPAN align=center class=notas><I>'.$TbMsg[15].'</I></SPAN> + <SPAN class=notas><em>'.$TbMsg[15].'</em></SPAN> </DIV><br>'; } //________________________________________________________________________________________________________ @@ -503,4 +507,3 @@ function ValidaDescripcion($cmd,$nombreca,$descripcion){ } $rs->Cerrar(); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_menus.php b/admin/WebConsole/propiedades/propiedades_menus.php index 8e996841..66d44a84 100644 --- a/admin/WebConsole/propiedades/propiedades_menus.php +++ b/admin/WebConsole/propiedades/propiedades_menus.php @@ -50,8 +50,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_menus.js"></SCRIPT> @@ -59,28 +59,29 @@ if ($opcion!=$op_alta){ <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_menus_'.$idioma.'.js"></SCRIPT>'?> </HEAD> <BODY> +<div align="center"> <FORM name="fdatos" action="../gestores/gestor_menus.php" method="post"> <INPUT type=hidden name=opcion value=<?php echo $opcion?>> <INPUT type=hidden name=idmenu value=<?php echo $idmenu?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <table align="center" border="0" cellPadding="1" cellSpacing="1" class="tabla_datos"> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <tr> <th align="center"> <?php echo $TbMsg[5]?> </th> <?php if ($opcion==$op_eliminacion) - echo '<td style="width:300">'.$descripcion.'</td>'; + echo '<td style="width:300px">'.$descripcion.'</td>'; else - echo '<td><input class="formulariodatos" name="descripcion" style="width:300" type="text" value="'.$descripcion.'" /></td>';?> + echo '<td><input class="formulariodatos" name="descripcion" style="width:300px" type="text" value="'.$descripcion.'" /></td>';?> </tr> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <tr> <th align=center> <?php echo $TbMsg[6]?> </th> <?php if ($opcion==$op_eliminacion) - echo '<td style="width:300">'.$titulo.'</td>'; + echo '<td style="width:300px">'.$titulo.'</td>'; else - echo '<td ><input class="formulariodatos" name="titulo" style="width:300" type="text" value="'.$titulo.'" /></td>';?> + echo '<td ><input class="formulariodatos" name="titulo" style="width:300px" type="text" value="'.$titulo.'" /></td>';?> </tr> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <tr> @@ -177,7 +178,7 @@ if ($opcion!=$op_alta){ <?php if ($opcion==$op_eliminacion){ $tbmodalidad[1]=$TbMsg[13]; $tbmodalidad[2]=$TbMsg[14]; - echo '<TD style="width:100">'.$tbmodalidad[$modalidad].'</TD>'; + echo '<TD style="width:100px">'.$tbmodalidad[$modalidad].'</TD>'; } else{ $parametros="1=1".chr(13); @@ -195,7 +196,7 @@ if ($opcion!=$op_alta){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=5>'.$htmlmenupub.'</TD>'; else - echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupub style="width:350" type=text value="'.$htmlmenupub.'"></TD>'; + echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupub style="width:350px" type=text value="'.$htmlmenupub.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -208,7 +209,7 @@ if ($opcion!=$op_alta){ <?php if ($opcion==$op_eliminacion){ $tbmodalidad[1]=$TbMsg[13]; $tbmodalidad[2]=$TbMsg[14]; - echo '<TD style="width:100">'.$tbmodalidad[$smodalidad].'</TD>'; + echo '<TD style="width:100px">'.$tbmodalidad[$smodalidad].'</TD>'; } else{ $parametros="1=1".chr(13); @@ -225,7 +226,7 @@ if ($opcion!=$op_alta){ <?php if ($opcion==$op_eliminacion) echo '<TD colspan=5">'.$htmlmenupri.'</TD>'; else - echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupri style="width:350" type=text value="'.$htmlmenupri.'"></TD>'; + echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupri style="width:350px" type=text value="'.$htmlmenupri.'"></TD>'; ?> </TR> </TABLE> @@ -237,7 +238,7 @@ if ($opcion!=$op_alta){ ?> </table> </FORM> -</DIV> +</div> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -284,4 +285,4 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> + diff --git a/admin/WebConsole/propiedades/propiedades_ordenadores.php b/admin/WebConsole/propiedades/propiedades_ordenadores.php index 887e87e0..e00f33ee 100644 --- a/admin/WebConsole/propiedades/propiedades_ordenadores.php +++ b/admin/WebConsole/propiedades/propiedades_ordenadores.php @@ -61,8 +61,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <html> -<title>Administración web de aulas</title> <head> + <title>Administración web de aulas</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="../estilos.css" /> <SCRIPT language="javascript" src="../jscripts/validators.js"></SCRIPT> @@ -196,6 +196,7 @@ function abrir_ventana(URL){ <TR> <th align=center> <?php echo $TbMsg[18]?> </th> <?php +$bdogLive=""; $cmd->texto="SELECT * FROM ordenadores WHERE idordenador=".$idordenador; $rs=new Recordset; $rs->Comando=&$cmd; @@ -210,14 +211,14 @@ if ($opcion==$op_eliminacion){ echo '<td colspan="3">'.$bdogLive.'</td>'; }else{ exec("bash /opt/opengnsys/bin/oglivecli list", $listogcli); - echo '<TD colspan=3><select class="formulariodatos" name="seleoglive" style=width:250>'."\n"; + echo '<TD colspan=3><select class="formulariodatos" name="seleoglive" style=width:250px>'."\n"; echo '<option value="ogLive">'.$TbMsg['COMM_DEFOGLIVE'].'</option>'; foreach ($listogcli as $oglive) { if (preg_match("/ogLive/",$oglive)){ $oglive=substr($oglive,1); $oglive=trim($oglive); $Selectcli = '<option value="'.$oglive.'"'; - If ($bdogLive==$oglive) $Selectcli.= ' selected ' ; + if ($bdogLive==$oglive) $Selectcli.= ' selected ' ; $Selectcli.= '>'.$oglive.'</OPTION>'; echo $Selectcli; } diff --git a/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php b/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php index 6decd954..89292c9e 100644 --- a/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php +++ b/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php @@ -42,8 +42,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_ordenadorestandar.js"></SCRIPT> @@ -53,11 +53,11 @@ if ($opcion!=$op_alta){ <BODY> <FORM name="fdatos"> <P align=center class=cabeceras><IMG border=0 src="../images/iconos/aula.gif"> <?php echo $TbMsg[0]?>:<SPAN class=cabeceras><?php echo $nombreaula?></SPAN><BR> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[1]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $TbMsg[1]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[2]?> </TD> + <TH align=center> <?php echo $TbMsg[2]?> </TH> <?php echo '<TD><INPUT class="formulariodatos" name=nombreordenador type=text value="'.$nombreordenador.'"></TD>'; ?> @@ -65,45 +65,45 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[3]?> </TD> + <TH align=center> <?php echo $TbMsg[3]?> </TH> <?php echo '<TD><INPUT class="formulariodatos" name=ip type=text value="'.$ip.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[4]?> </TD> + <TH align=center> <?php echo $TbMsg[4]?> </TH> <?php echo '<TD><INPUT class="formulariodatos" name=mac type=text value="'. $mac.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion',250).'</TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorios',250).'</TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[11]?> </TD> + <TH align=center> <?php echo $TbMsg[11]?> </TH> <?php - echo '<TD colspan=3><INPUT style="width:250"class="formulariodatos" name=cache type=text value="'. $cache.'"></TD>'; + echo '<TD colspan=3><INPUT style="width:250px" class="formulariodatos" name=cache type=text value="'. $cache.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[8]?> </TD> + <TH align=center> <?php echo $TbMsg[8]?> </TH> <?php - echo '<TD colspan=3><INPUT class="formulariodatos" name=numorde type=text value=0 style="width:250"></TD>'; + echo '<TD colspan=3><INPUT class="formulariodatos" name=numorde type=text value=0 style="width:250px"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> diff --git a/admin/WebConsole/propiedades/propiedades_perfilhardwares.php b/admin/WebConsole/propiedades/propiedades_perfilhardwares.php index e9a1cadc..3edd2ef6 100644 --- a/admin/WebConsole/propiedades/propiedades_perfilhardwares.php +++ b/admin/WebConsole/propiedades/propiedades_perfilhardwares.php @@ -45,8 +45,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <html> -<title>Administración web de aulas</title> <head> + <title>Administración web de aulas</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="../estilos.css" /> <script language="javascript" src="../jscripts/propiedades_perfilhardwares.js"></script> @@ -62,16 +62,16 @@ if ($opcion!=$op_alta){ <input type="hidden" name="grupoid" value="<?php echo $grupoid?>" /> <input type="hidden" name="winboot" value="reboot" /> <p align="center" class="cabeceras"><?php echo $TbMsg["HARD_TITLE"]?><br /> - <span align="center" class="subcabeceras"><?php echo $opciones[$opcion]?></span></p> + <span class="subcabeceras"><?php echo $opciones[$opcion]?></span></p> <table align="center" border="0" cellPadding="1" cellSpacing="1" class="tabla_datos"> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <tr> <th align="center"> <?php echo $TbMsg["HARD_NAME"]?> </th> <?php if ($opcion==$op_eliminacion) - echo '<td style="width:215">'.$descripcion.'</td>'; + echo '<td style="width:215px">'.$descripcion.'</td>'; else - echo '<td><input class="formulariodatos" name="descripcion" style="width:215" type="text" value="'.$descripcion.'" /></td>'; ?> - <td align="left" rowspan="3"><img border="3" style="border-color:#63676b" src="../images/aula.jpg" /><br /> <?php echo $TbMsg["HARD_COMPUTERS"].": $ordenadores"?></td> + echo '<td><input class="formulariodatos" name="descripcion" style="width:215px" type="text" value="'.$descripcion.'" /></td>'; ?> + <td align="left" rowspan="3"><img border="3" style="border-color:#63676b" src="../images/aula.jpg" alt="*" /><br /> <?php echo $TbMsg["HARD_COMPUTERS"].": $ordenadores"?></td> </tr> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <tr> @@ -123,4 +123,4 @@ function TomaPropiedades($cmd,$id) $rs->Cerrar(); return(true); } -?> + diff --git a/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php b/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php index 64fadafc..2a6368b8 100644 --- a/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php +++ b/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php @@ -39,8 +39,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_perfilsoftwares.js"></SCRIPT> @@ -55,16 +55,16 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=imagenes value=<?php echo $imagenes?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:215">'.$descripcion.'</TD>'; + echo '<TD style="width:215px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:215" type=text value="'.$descripcion.'"></TD>';?> - <TD align=left rowspan=2><IMG border=3 style="border-color:#63676b" src="../images/aula.jpg"><br><center> Images: <?php echo $imagenes?></center></TD> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:215px" type=text value="'.$descripcion.'"></TD>';?> + <TD align=left rowspan=2><IMG border=3 style="border-color:#63676b" src="../images/aula.jpg"><br><div align="center"> Images: <?php echo $imagenes?></div></TD> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> @@ -123,4 +123,4 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> + diff --git a/admin/WebConsole/propiedades/propiedades_procedimientos.php b/admin/WebConsole/propiedades/propiedades_procedimientos.php index d5e51816..c8003a4c 100644 --- a/admin/WebConsole/propiedades/propiedades_procedimientos.php +++ b/admin/WebConsole/propiedades/propiedades_procedimientos.php @@ -38,8 +38,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_procedimientos.js"></SCRIPT> @@ -53,19 +53,19 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=idprocedimiento value=<?php echo $idprocedimiento?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$descripcion.'</TD>'; + echo '<TD style="width:300px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300" type=text value="'.$descripcion.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300px" type=text value="'.$descripcion.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -107,4 +107,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_repositorios.php b/admin/WebConsole/propiedades/propiedades_repositorios.php index b2407b8a..7bdb6713 100644 --- a/admin/WebConsole/propiedades/propiedades_repositorios.php +++ b/admin/WebConsole/propiedades/propiedades_repositorios.php @@ -74,8 +74,8 @@ if($apiKeyRepo != ""){ //######################################################################### ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/validators.js"></SCRIPT> @@ -92,44 +92,44 @@ if($apiKeyRepo != ""){ <INPUT type=hidden name=ordenadores value="<?php echo $ordenadores?>"> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos > <!----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> - <TH align="center"> <?php echo $TbMsg[5]?> </TD> + <TH align="center"> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$nombrerepositorio.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name="nombrerepositorio" style="width:200" type="text" value="'.$nombrerepositorio.'"></TD>'; + echo '<TD><INPUT class="formulariodatos" name="nombrerepositorio" style="width:200px" type="text" value="'.$nombrerepositorio.'"></TD>'; ?> - <TD valign="top" align="left" rowspan="4" ><CENTER> + <TD valign="top" align="center" rowspan="4"> <IMG border="3" style="border-color:#63676b" src="../images/aula.jpg"> - <BR> Ordenadores: <?php echo $ordenadores?></CENTER></TD> + <BR> Ordenadores: <?php echo $ordenadores?></TD> </TR> <!----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$ip.'</TD>'; else - echo'<TD><INPUT class="formulariodatos" name="ip" type="text" style="width:200" value="'.$ip.'"></TD>'; + echo'<TD><INPUT class="formulariodatos" name="ip" type="text" style="width:200px" value="'.$ip.'"></TD>'; ?> </TR> <!----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[17]?> </TD> + <TH align=center> <?php echo $TbMsg[17]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>********</TD>'; else - echo'<TD><INPUT class="formulariodatos" name="apiKeyRepo" type="text" style="width:200" value="'.$apiKeyRepo.'"></TD>'; + echo'<TD><INPUT class="formulariodatos" name="apiKeyRepo" type="text" style="width:200px" value="'.$apiKeyRepo.'"></TD>'; ?> </TR> <!----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD colspan="2">'.$comentarios.'</TD>'; @@ -148,10 +148,10 @@ if($apiKeyRepo != ""){ <?php if ($repoWithApi) { ?> <TR> - <TH align=center width=125> <?php echo $TbMsg[11]?> </TD> - <TH align=center width=120> <?php echo $TbMsg[12]?> </TD> - <TH align=center width=120> <?php echo $TbMsg[13]?> </TD> - <TH align=center width=101> <?php echo $TbMsg[14]?> </TD> + <TH align=center width=125> <?php echo $TbMsg[11]?> </TH> + <TH align=center width=120> <?php echo $TbMsg[12]?> </TH> + <TH align=center width=120> <?php echo $TbMsg[13]?> </TH> + <TH align=center width=101> <?php echo $TbMsg[14]?> </TH> </TR> <TR> <TD align=center width=125> <?php echo $totalrepo?> </TD> diff --git a/admin/WebConsole/propiedades/propiedades_reservas.php b/admin/WebConsole/propiedades/propiedades_reservas.php index 1cf4f79c..3c49cdde 100644 --- a/admin/WebConsole/propiedades/propiedades_reservas.php +++ b/admin/WebConsole/propiedades/propiedades_reservas.php @@ -49,8 +49,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> @@ -66,13 +66,13 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <INPUT type=hidden name=estado value=<?php echo $estado?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$descripcion.'</TD>'; + echo '<TD style="width:300px">'.$descripcion.'</TD>'; else echo '<TD><TEXTAREA class="formulariodatos" name=descripcion rows=3 cols=55">'.$descripcion.'</TEXTAREA></TD>';?> </TR> @@ -80,18 +80,18 @@ if ($opcion!=$op_alta){ <TR> <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$solicitante.'</TD>'; + echo '<TD style="width:300px">'.$solicitante.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=solicitante style="width:300" type=text value="'.$solicitante.'"></TD>'; + echo '<TD><INPUT class="formulariodatos" name=solicitante style="width:300px" type=text value="'.$solicitante.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> <TH align=center> <?php echo $TbMsg[8]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$email.'</TD>'; + echo '<TD style="width:300px">'.$email.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=email style="width:300" type=text value="'.$email.'"></TD>'; + echo '<TD><INPUT class="formulariodatos" name=email style="width:300px" type=text value="'.$email.'"></TD>'; ?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> @@ -153,7 +153,7 @@ if ($opcion!=$op_alta){ <TR> <TH align=center> <?php echo $TbMsg[16]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300"><IMG src="'.$tbimg[$estado].'"> ('.$TbMsg[12+$estado].')</TD>'; + echo '<TD style="width:300px"><IMG src="'.$tbimg[$estado].'"> ('.$TbMsg[12+$estado].')</TD>'; else{ echo '<TD>'; echo '<INPUT name=xestado type=radio value="'.$RESERVA_CONFIRMADA.'"'; @@ -174,7 +174,7 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -184,6 +184,7 @@ if ($opcion!=$op_alta){ <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> +</DIV> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -232,4 +233,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_tareas.php b/admin/WebConsole/propiedades/propiedades_tareas.php index 8926e69c..c95b6e46 100644 --- a/admin/WebConsole/propiedades/propiedades_tareas.php +++ b/admin/WebConsole/propiedades/propiedades_tareas.php @@ -43,8 +43,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_tareas.js"></SCRIPT> @@ -60,19 +60,19 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <INPUT type=hidden name=idambito value=<?php echo $idambito?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos > <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$descripcion.'</TD>'; + echo '<TD style="width:300px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300" type=text value="'.$descripcion.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300px" type=text value="'.$descripcion.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -81,7 +81,7 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[7]?> </TD> + <TH align=center> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion){ $Mambitos[$AMBITO_CENTROS]=$TbMsg[10]; @@ -103,7 +103,7 @@ if ($opcion!=$op_alta){ </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[8]?> </TD> + <TH align=center> <?php echo $TbMsg[8]?> </TH> <?php if ($opcion==$op_eliminacion){ tomaDescriAmbito($cmd,$ambito,$idambito,$textambito); @@ -117,6 +117,7 @@ if ($opcion!=$op_alta){ <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> +</DIV> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -152,4 +153,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_tipohardwares.php b/admin/WebConsole/propiedades/propiedades_tipohardwares.php index ede51000..d5b08f5a 100644 --- a/admin/WebConsole/propiedades/propiedades_tipohardwares.php +++ b/admin/WebConsole/propiedades/propiedades_tipohardwares.php @@ -40,8 +40,8 @@ if ($opcion!=$op_alta){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_tipohardwares.js"></SCRIPT> @@ -56,19 +56,19 @@ if ($opcion!=$op_alta){ <INPUT type=hidden name=idtipohardware value=<?php echo $idtipohardware?>> <INPUT type=hidden name=grupoid value=<?php echo $grupoid?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos > <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[5]?> </TD> + <TH align=center> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion) - echo '<TD style="width:300">'.$descripcion.'</TD>'; + echo '<TD style="width:30px">'.$descripcion.'</TD>'; else - echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300" type=text value="'.$descripcion.'"></TD>';?> + echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300px" type=text value="'.$descripcion.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD colspan=3>'.TomaDato($cmd,0,'iconos',basename($urlimg),'urlicono','urlicono',0).'</TD>'; @@ -76,10 +76,10 @@ if ($opcion!=$op_alta){ echo '<TD colspan=3>'.HTMLSELECT($cmd,0,'iconos',basename($urlimg),'urlicono','descripcion',250,"","","idtipoicono=1").'</TD>'; ?> </TR> - </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> </TABLE> </FORM> +</DIV> <?php //________________________________________________________________________________________________________ include_once("../includes/opcionesbotonesop.php"); @@ -111,4 +111,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_universidades.php b/admin/WebConsole/propiedades/propiedades_universidades.php index 448f3cdc..07debf8d 100644 --- a/admin/WebConsole/propiedades/propiedades_universidades.php +++ b/admin/WebConsole/propiedades/propiedades_universidades.php @@ -41,8 +41,8 @@ else //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de universidades</TITLE> <HEAD> + <TITLE>Administración web de universidades</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_universidades.js"></SCRIPT> @@ -55,16 +55,16 @@ else <INPUT type=hidden name=opcion value=<?php echo $opcion?>> <INPUT type=hidden name=iduniversidad value=<?php echo $iduniversidad?>> <P align=center class=cabeceras><?php echo $TbMsg[4]?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center ><?php echo $TbMsg[5]?> </TD> + <TH align=center ><?php echo $TbMsg[5]?> </TH> <?php echo '<TD colspan=3><INPUT class="formulariodatos" name=nombreuniversidad style="width:350" type=text value="'.$nombreuniversidad.'"></TD>';?> </TR> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> - <TH align=center> <?php echo $TbMsg[6]?> </TD> + <TH align=center> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion) echo '<TD>'.$comentarios.'</TD>'; else @@ -106,4 +106,3 @@ function TomaPropiedades($cmd,$id){ $rs->Cerrar(); return(true); } -?> diff --git a/admin/WebConsole/propiedades/propiedades_usuarios.php b/admin/WebConsole/propiedades/propiedades_usuarios.php index 05441502..8ea60d74 100644 --- a/admin/WebConsole/propiedades/propiedades_usuarios.php +++ b/admin/WebConsole/propiedades/propiedades_usuarios.php @@ -20,7 +20,8 @@ include_once("../idiomas/php/".$idioma."/propiedades_usuarios_".$idioma.".php"); $opcion=0; $opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]); //________________________________________________________________________________________________________ -$idusuario=0; +$litusu=""; +$idusuario=0; $usuario=""; $pasguor=""; $nombre=""; @@ -64,8 +65,8 @@ switch($idtipousuario){ //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/propiedades_usuarios.js"></SCRIPT> @@ -73,6 +74,7 @@ switch($idtipousuario){ <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_usuarios_'.$idioma.'.js"></SCRIPT>'?> </HEAD> <BODY> +<div align="center"> <FORM name="fdatos" action="../gestores/gestor_usuarios.php" method="post"> <INPUT type=hidden name=opcion value=<?php echo $opcion?>> <INPUT type=hidden name=idusuario value=<?php echo $idusuario?>> @@ -80,15 +82,15 @@ switch($idtipousuario){ <INPUT type=hidden name=idambito value=<?php echo $idambito?>> <P align=center class=cabeceras><?php echo $TbMsg[4]." (".$litusu.")"?><BR> - <SPAN align=center class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> + <SPAN class=subcabeceras><?php echo $opciones[$opcion]?></SPAN></P> <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos> <!------------------------------------------------ NOMBRE USUARIO --------------------------------------------------------------------------------------------------> <TR> <TH> <?php echo $TbMsg[5]?> </TH> <?php if ($opcion==$op_eliminacion || $opcion==$op_modificacion && $idusuario==1){?> - <TD><INPUT type=hidden class=cajatexto name="usuario" style="width:100" value="<?php echo $usuario?>"></INPUT><?php echo $usuario?>  <IMG src="<?php echo $urlimg ?>"></TD> + <TD><INPUT type=hidden class=cajatexto name="usuario" style="width:100px" value="<?php echo $usuario?>"><?php echo $usuario?>  <IMG src="<?php echo $urlimg ?>"></TD> <?php }else{?> - <TD><INPUT type=text class=cajatexto name="usuario" style="width:100" value="<?php echo $usuario?>"> + <TD><INPUT type=text class=cajatexto name="usuario" style="width:100px" value="<?php echo $usuario?>"> <IMG src="<?php echo $urlimg ?>"> <?php }?> @@ -98,27 +100,27 @@ switch($idtipousuario){ <!-- disables autocomplete --><input type="password" style="display:none"> <TH> <?php echo $TbMsg[6]?> </TH> <?php if ($opcion==$op_eliminacion || $opcion==$op_modificacion && $idusuario==1){?> - <TD><INPUT type=hidden class=cajatexto name="pasguor" style="width:100" value=""></INPUT>****</TD> + <TD><INPUT type=hidden class=cajatexto name="pasguor" style="width:100px" value="">****</TD> <?php }else{?> - <TD><INPUT type=password class=cajatexto name="pasguor" style="width:100" value=""> + <TD><INPUT type=password class=cajatexto name="pasguor" style="width:100px" value=""> <?php }?> </TR> <!---------------------------------------------------- CONFIRMAR PASSWORD ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <TR> <TH> <?php echo $TbMsg[18]?> </TH> <?php if ($opcion==$op_eliminacion || $opcion==$op_modificacion && $idusuario==1){?> - <TD><INPUT type=hidden class=cajatexto name="confirmarpasguor" style="width:100" value=""></INPUT>****</TD> + <TD><INPUT type=hidden class=cajatexto name="confirmarpasguor" style="width:100px" value="">****</TD> <?php }else{?> - <TD><INPUT type=password class=cajatexto name="confirmarpasguor" style="width:100" value=""> + <TD><INPUT type=password class=cajatexto name="confirmarpasguor" style="width:100px" value=""> <?php }?> </TR> <!--------------------------------------------------- NOMBRE COMPLETO -----------------------------------------------------------------------------------------------> <TR> <TH> <?php echo $TbMsg[7]?> </TH> <?php if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idusuario==1)){?> - <TD><INPUT type=hidden class=cajatexto name="nombre" style="width:250" value="<?php echo $nombre?>"></INPUT><?php echo $nombre?></TD> + <TD><INPUT type=hidden class=cajatexto name="nombre" style="width:250px" value="<?php echo $nombre?>"><?php echo $nombre?></TD> <?php }else{?> - <TD><INPUT type=text class=cajatexto name="nombre" style="width:250" value="<?php echo $nombre?>"> + <TD><INPUT type=text class=cajatexto name="nombre" style="width:250px" value="<?php echo $nombre?>"> <?php }?> </TR> <!--------------------------------------------------------------------------------------------------------------------------------------------------> @@ -127,7 +129,7 @@ switch($idtipousuario){ <?php if ($opcion==$op_eliminacion){?> <TD><?php echo $email?></TD> <?php }else{?> - <TD><INPUT type=text class=cajatexto name="email" style="width:250" value="<?php echo $email?>"> + <TD><INPUT type=text class=cajatexto name="email" style="width:250px" value="<?php echo $email?>"> <?php }?> </TR> <!---------------------------------------------------------------------------------------------------------------------------------------------------> @@ -157,8 +159,7 @@ switch($idtipousuario){ </TABLE> </FORM> -</DIV> - +</div> <?php if ($idusuario==1){ ///* @@ -216,4 +217,3 @@ function TomaPropiedades($cmd,$id){ else return(false); } -?> diff --git a/admin/WebConsole/rest/common.php b/admin/WebConsole/rest/common.php index bc39ced9..d26acc4b 100644 --- a/admin/WebConsole/rest/common.php +++ b/admin/WebConsole/rest/common.php @@ -248,6 +248,7 @@ $app->hook('slim.after', function() use ($app) { * @return JSON object with basic server information (version, services, etc.) */ $app->get('/info', function() { + $hasOglive = false; $response = new \stdClass; // Reading version file. $data = json_decode(@file_get_contents(VERSION_FILE)); @@ -293,4 +294,4 @@ $app->get('/status', function() { jsonResponse(200, $response); } ); -?> + diff --git a/admin/WebConsole/rest/index.php b/admin/WebConsole/rest/index.php index 46957ab6..aa7cd483 100644 --- a/admin/WebConsole/rest/index.php +++ b/admin/WebConsole/rest/index.php @@ -72,4 +72,4 @@ $app->get('/', // Execute REST using Slim. $app->run(); -?> + diff --git a/admin/WebConsole/rest/ogagent.php b/admin/WebConsole/rest/ogagent.php index b250c6ac..3e78da0e 100644 --- a/admin/WebConsole/rest/ogagent.php +++ b/admin/WebConsole/rest/ogagent.php @@ -32,6 +32,7 @@ function writeLog($message = "") { $app->post('/ogagent/started', function() use ($app) { global $cmd; + $secret = ""; $osType = $osVersion = "none"; try { // Reading POST parameters in JSON format. @@ -131,6 +132,7 @@ $app->post('/ogagent/stopped', $app->post('/ogagent/loggedin', function() use ($app) { global $cmd; + $osType = $osVersion = "none"; $redirto = Array(); $result = Array(); diff --git a/admin/WebConsole/rest/remotepc.php b/admin/WebConsole/rest/remotepc.php index 4bf7b6b5..bddbb0c5 100644 --- a/admin/WebConsole/rest/remotepc.php +++ b/admin/WebConsole/rest/remotepc.php @@ -551,4 +551,4 @@ EOD; } ); -?> + diff --git a/admin/WebConsole/rest/repository.php b/admin/WebConsole/rest/repository.php index 7ac6e88e..bc2fdec6 100644 --- a/admin/WebConsole/rest/repository.php +++ b/admin/WebConsole/rest/repository.php @@ -10,6 +10,13 @@ * @date 2016-04-06 */ +include_once("../clases/SockHidra.php"); + +include_once("../includes/comunes.php"); + +define("LENHEXPRM", 5); // Length of hexdecimal chain containing total frame length +define("LENHEAD", 16); // Frame head length + // Auxiliar functions. /** * @brief Validate API key included in "Authorization" HTTP header. @@ -184,32 +191,46 @@ $app->get('/repository/image(/:ouname)/:imagename(/)', 'validateRepositoryApiKey */ $app->post('/repository/poweron', 'validateRepositoryApiKey', function() use($app) { - // Debe venir el parametro macs en el post (objeto JSON con array de MACs) - $data = json_decode($app->request()->getBody()); - if(empty($data->macs)){ - // Print error message. - $response['message'] = 'Required param macs not found'; - jsonResponse(400, $response); - } - else{ - $strMacs = ""; - foreach($data->macs as $mac){ - $strMacs .= " ".$mac; - } - // Ejecutar comando wakeonlan, debe estar disponible en el sistema operativo - if(commandExist("wakeonlan")){ - $response["output"] = "Executing wakeonlan ".trim($strMacs)."\n"; - $response["output"] .= shell_exec("wakeonlan ".trim($strMacs)); - // Comprobar si el comando se ejecutórrectamente - jsonResponse(200, $response); - } - else{ + // Fetch repository token from ogAdmServer.cfg configuration file. + @$confFile = parse_ini_file('../../etc/ogAdmServer.cfg', 'r'); + if ($confFile) { + // The macs parameter must come in the post (JSON object with array of MACs) + $data = json_decode($app->request()->getBody()); + if (empty($data->macs)) { // Print error message. - $response['message'] = 'Wakeonlan command not found in this repository'; - jsonResponse(404, $response); + $response['message'] = 'Required param macs not found'; + jsonResponse(400, $response); + } else { + // Execute WakeOnLan command with ogAdmServer + $strMacs = implode(';', $data->macs); + $strMacs = str_replace(':', '', $strMacs); + $strIps = implode(';', $data->ips); + $params="nfn=Arrancar" . chr(13) . "mac=" . $strMacs . chr(13) . "iph=" . $strIps . chr(13) . + "mar=" . $data->mar . chr(13); + $shidra=new SockHidra($confFile['ServidorAdm'], $confFile['PUERTO']); + if ($shidra->conectar()) { // The connection to the hydra server has been established + $resul=$shidra->envia_comando($params); + if($resul) { + $frame=$shidra->recibe_respuesta(); + $hlonprm=hexdec(substr($frame, LENHEAD, LENHEXPRM)); + $params=substr($frame, LENHEAD + LENHEXPRM, $hlonprm); + $ParamsValue=extrae_parametros($params, chr(13), '='); + $resul=$ParamsValue["res"]; + jsonResponse(200, $resul); + } else { + $response['message'] = 'Error in ogAdmServer'; + jsonResponse(404, $response); + } + $shidra->desconectar(); + } } + } else { + // Cannot access configuration file. + $response['message'] = "An error occurred, please try again"; + jsonResponse(500, $response); + $app->stop(); } } ); -?> + diff --git a/admin/WebConsole/validacion/access_controller.php b/admin/WebConsole/validacion/access_controller.php index f0babd8a..7ed6c3fc 100644 --- a/admin/WebConsole/validacion/access_controller.php +++ b/admin/WebConsole/validacion/access_controller.php @@ -95,5 +95,5 @@ switch($action){ } /**/ -?> + diff --git a/admin/WebConsole/validacion/functions.php b/admin/WebConsole/validacion/functions.php index a4780fd1..102f1577 100644 --- a/admin/WebConsole/validacion/functions.php +++ b/admin/WebConsole/validacion/functions.php @@ -79,7 +79,7 @@ function GeneraMenu($rs,$tipo,$iph){ global $ITEMS_PUBLICOS; global $ITEMS_PRIVADOS; global $UrlPaginaIconos; - + $lit=''; $titulo=$rs->campos["titulo"]; $modalidad=$rs->campos["modalidad"]; $smodalidad=$rs->campos["smodalidad"]; @@ -120,7 +120,7 @@ function GeneraMenu($rs,$tipo,$iph){ $codeHTML.='<TD align=center> <A href="ejecutaritem.php?iph='.$iph.'&idt='.$idaccionmenu.'"> <IMG border=0 src="http://'.$UrlPaginaIconos.'/'.$urlicono.'" width=64></A></TD>'; - $codeHTML.='<TD style="font-family:Arial;color: #a71026;FONT-SIZE:14"> + $codeHTML.='<TD style="font-family:Arial,sans-serif;color: #a71026;FONT-SIZE:14px"> <A style="text-decoration:none" href="ejecutaritem.php?iph='.$iph.'&idt='.$idaccionmenu.'"> <span style="FONT-FAMILY: Verdana,Arial, Helvetica, sans-serif;FONT-SIZE: 12px;COLOR:#999999">'.$descripitem.'</span></A></TD>'; if($mod>1){ @@ -163,5 +163,4 @@ function GeneraMenu($rs,$tipo,$iph){ return($codeHTML); } -?> diff --git a/admin/WebConsole/validacion/html/close.php b/admin/WebConsole/validacion/html/close.php index a6b197b6..6f8fb44a 100644 --- a/admin/WebConsole/validacion/html/close.php +++ b/admin/WebConsole/validacion/html/close.php @@ -1,5 +1,5 @@ <?php session_start(); $_SESSION["validated"] = false; -?> + diff --git a/admin/WebConsole/validacion/html/validacion_ldap.php b/admin/WebConsole/validacion/html/validacion_ldap.php index 1929402a..5e18e7e2 100644 --- a/admin/WebConsole/validacion/html/validacion_ldap.php +++ b/admin/WebConsole/validacion/html/validacion_ldap.php @@ -29,7 +29,7 @@ function validate_user($user,$password){ $thedata = $info[0]["dn"]; if ($r=@ldap_bind($ds,$thedata,$password)){ $result['validation'] = 1; - // A parte de la validacion, se podran coger otros datos... + // A parte de la validacion, se podrían coger otros datos... /* $result['name'] = $info[0]["cn"][0]; $result['dni'] = $info[0]["uhuuserdni"][0]; @@ -50,7 +50,7 @@ function validate_user($user,$password){ } /** - * Sincroniza una base de datos externa con la de opengnsys. + * Sincroniza una base de datos externa con la de OpenGnsys. * No es necesaria su implementacion, puede dejarse en blanco */ function synchronize($validation){ @@ -71,5 +71,3 @@ function validate($VARS){ } return $result; } - -?> diff --git a/admin/WebConsole/validacion/html/validacion_prueba.php b/admin/WebConsole/validacion/html/validacion_prueba.php index 78ea208e..f98a1932 100644 --- a/admin/WebConsole/validacion/html/validacion_prueba.php +++ b/admin/WebConsole/validacion/html/validacion_prueba.php @@ -21,4 +21,4 @@ function validate($VARS){ return $result; } -?> + diff --git a/admin/WebConsole/validacion/html/validacion_template.php b/admin/WebConsole/validacion/html/validacion_template.php index 0ec37e30..171eb6d2 100644 --- a/admin/WebConsole/validacion/html/validacion_template.php +++ b/admin/WebConsole/validacion/html/validacion_template.php @@ -17,4 +17,4 @@ function validate($VARS){ return true; } -?> + diff --git a/admin/WebConsole/varios/acceso_operador.php b/admin/WebConsole/varios/acceso_operador.php index 79402878..c2c0cde4 100644 --- a/admin/WebConsole/varios/acceso_operador.php +++ b/admin/WebConsole/varios/acceso_operador.php @@ -8,7 +8,7 @@ // Descripción : Presenta la pantalla de login del operador // ************************************************************************************************************************************************* -session_start(); // Activa variables de sesi� +session_start(); // Activa variables de sesión $herror=0; @@ -31,11 +31,10 @@ $TbErr[2]="ERROR de conexión con el servidor de datos"; //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <LINK rel="stylesheet" type="text/css" href="estilos.css"> -</HEAD> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT LANGUAGE="JAVASCRIPT"> //________________________________________________________________________________________________________ function confirmar(){ @@ -44,12 +43,12 @@ function confirmar(){ } //________________________________________________________________________________________________________ function comprobar_datos(){ - if (document.fdatos.usu.value==""){ + if (document.fdatos.usu.value===""){ alert("Debe introducir un nombre de Usuario"); document.fdatos.usu.focus(); return(false) } - if (document.fdatos.pss.value==""){ + if (document.fdatos.pss.value===""){ alert("Debe introducir una contraseña"); document.fdatos.pss.focus(); return(false) @@ -67,20 +66,20 @@ function PulsaEnter(oEvento){ else return false; } - if (iAscii == 13) confirmar(); + if (iAscii === 13) confirmar(); return true; } //________________________________________________________________________________________________________ </SCRIPT> </HEAD> <BODY> -<DIV style="POSITION:absolute;top:20;left:150"> +<DIV style="POSITION:absolute;top:20px;left:150px"> <FORM action="accesoperadores.php" name="fdatos" method="post"> <DIV align="center"> <IMG src="../images/login_operador.png" width=500 > - <INPUT onkeypress="PulsaEnter(event)" name="usu" style="POSITION:absolute;top:125px;left:365px;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;"> - <INPUT onkeypress="PulsaEnter(event)" name="pss" type="password" style="POSITION:absolute;top:160px;left:365;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;"> - <IMG onclick="confirmar()" src="../images/botonok.png" style="POSITION:absolute;top:190;left:400;CURSOR: hand"> + <INPUT onkeypress="PulsaEnter(event)" name="usu" style="POSITION:absolute;top:125px;left:365px;width:90px;height:20px;COLOR: #999999; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 12px;"> + <INPUT onkeypress="PulsaEnter(event)" name="pss" type="password" style="POSITION:absolute;top:160px;left:365px;width:90px;height:20px;COLOR: #999999; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 12px;"> + <IMG onclick="confirmar()" src="../images/botonok.png" style="POSITION:absolute;top:190px;left:400px;CURSOR: hand"> </DIV> </FORM> </DIV> diff --git a/admin/WebConsole/varios/accionmenu.php b/admin/WebConsole/varios/accionmenu.php index fed455d0..3205350c 100644 --- a/admin/WebConsole/varios/accionmenu.php +++ b/admin/WebConsole/varios/accionmenu.php @@ -65,6 +65,7 @@ else{ // Viene de menus ?> <HTML> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> @@ -178,6 +179,7 @@ else function pintaMenus($cmd,$identificador,$tipoaccion,$op) { + global $pagerror; global $TbMsg; global $ITEM_PUBLICO; global $ITEM_PRIVADO; diff --git a/admin/WebConsole/varios/buscar.php b/admin/WebConsole/varios/buscar.php index 552e32b7..09c2e45c 100644 --- a/admin/WebConsole/varios/buscar.php +++ b/admin/WebConsole/varios/buscar.php @@ -142,8 +142,8 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri //_________________________________ ?> <html> -<title>Administración web de aulas</title> <head> + <title>Administración web de aulas</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <link rel="stylesheet" type="text/css" href="../estilos.css"> <script languaje="javascript"> @@ -154,7 +154,7 @@ function confirmar(){ } //_________________________________ function comprobar_datos(){ - if (document.fdatos.valor.value=="" && document.fdatos.criterio.value!="duplic" && document.fdatos.criterio.value!="profe" && document.fdatos.criterio.value!="norepo") { + if (document.fdatos.valor.value==="" && document.fdatos.criterio.value!=="duplic" && document.fdatos.criterio.value!="profe" && document.fdatos.criterio.value!=="norepo") { alert("<?php echo $TbMsg["SEARCH_NOVALUE"] ?>"); document.fdatos.valor.focus(); return(false) @@ -172,7 +172,7 @@ function PulsaEnter(oEvento){ else return false; } - if (iAscii == 13) confirmar(); + if (iAscii === 13) confirmar(); return true; } </script> @@ -186,7 +186,7 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri echo '<p class="subcabeceras" align="center">'.$TbMsg["SEARCH_NOMATCHES"].'</p>'; } else { ?> -<div align="center" style="margin:20;"> +<div align="center" style="margin: 20px;"> <table class="tabla_listados"> <caption><?php echo $TbMsg["SEARCH_RESULTS"];?></caption> <tr> @@ -210,10 +210,10 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri <hr width="50%"> <?php } ?> -<div align="center" style="margin:20;"> +<div align="center" style="margin: 20px;"> <form action="#" class="formulariodatos" name="fdatos" method="post"> <?php echo $TbMsg["SEARCH_CRITERIA"] ?>: - <select name="criterio" id="criterio" onchange="if (document.fdatos.criterio.value=='duplic' || document.fdatos.criterio.value=='profe' || document.fdatos.criterio.value=='norepo') document.fdatos.valor.disabled=true; else document.fdatos.valor.disabled=false"> + <select name="criterio" id="criterio" onchange="document.fdatos.valor.disabled=document.fdatos.criterio.value==='duplic' || document.fdatos.criterio.value=='profe' || document.fdatos.criterio.value==='norepo';"> <option value="nombre"> <?php echo $TbMsg["SEARCH_NAME"] ?> </option> <option value="ip"> <?php echo $TbMsg["SEARCH_IP"] ?> </option> <option value="mac"> <?php echo $TbMsg["SEARCH_MAC"] ?> </option> @@ -223,10 +223,9 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri </select> <input type="text" name="valor" id="valor" size="20" /> <div align="center"> - <img onclick="confirmar()" src="../images/botonok.png" style="margin:20;cursor: hand" /> + <img onclick="confirmar()" src="../images/botonok.png" style="margin: 20px; cursor: hand" /> </div> </form> </div> </body> </html> - diff --git a/admin/WebConsole/varios/calendario_ventana.php b/admin/WebConsole/varios/calendario_ventana.php index b91c4e1d..070e4874 100644 --- a/admin/WebConsole/varios/calendario_ventana.php +++ b/admin/WebConsole/varios/calendario_ventana.php @@ -31,10 +31,10 @@ if (isset($_POST["anno_elegido"])) $anno_elegido=$_POST["anno_elegido"]; //_________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <LINK rel="stylesheet" type="text/css" href="../estilos.css"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="JavaScript"> var rojo="#cc3366"; @@ -103,7 +103,7 @@ function mes_anterior(){ } } var swbi=0; - if (wanno%4==0 && wmes==2) swbi=1; + if (wanno%4===0 && wmes===2) swbi=1; document.forms.fdatos.dia_elegido.value=dias_meses[wmes]+swbi; document.forms.fdatos.mes_elegido.value=wmes; @@ -162,8 +162,8 @@ $mialmanaque=new Almanaque("tabla_meses"); echo '<TABLE align="center">'; echo ' <TR>'; echo ' <TD align="left"><img SRC="../images/iconos/salir_on.gif" onclick="cerrar_ventana()"></TD>'; -echo '<TD style="COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:12"> Año: '; -echo '<SELECT name="despleanno" onchange="elige_anno()" style="width:60">'; +echo '<TD style="COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:12px"> Año: '; +echo '<SELECT name="despleanno" onchange="elige_anno()" style="width:60px">'; for($i=2010;$i<2015;$i++){ echo '<OPTION value='.$i; if($anno_elegido==$i) echo" selected "; @@ -175,8 +175,8 @@ echo '</TR>'; echo '<table align=center border=0>'; echo '<tr>'; -echo '<td onclick="mes_anterior();" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10" align=left><<</td>'; -echo '<td onclick="mes_siguiente();" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10" align=right>>></td>'; +echo '<td onclick="mes_anterior();" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10px" align="left"><<</td>'; +echo '<td onclick="mes_siguiente();" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10px" align="right">>></td>'; echo '</tr>'; echo '<tr>'; echo '<td colspan=2 valign=top width=100>'.$mialmanaque->MesAnno($mes_elegido,$anno_elegido).'</td>'; diff --git a/admin/WebConsole/varios/consulta_programaciones.php b/admin/WebConsole/varios/consulta_programaciones.php index 9fce6c69..127dde3e 100644 --- a/admin/WebConsole/varios/consulta_programaciones.php +++ b/admin/WebConsole/varios/consulta_programaciones.php @@ -29,4 +29,4 @@ if ($rs->Abrir()){ // Error al abrir recordset echo $cadena_campos; } $rs->Cerrar(); -?> + diff --git a/admin/WebConsole/varios/desplegablesambitos.php b/admin/WebConsole/varios/desplegablesambitos.php index 6a174f9b..91a639ce 100644 --- a/admin/WebConsole/varios/desplegablesambitos.php +++ b/admin/WebConsole/varios/desplegablesambitos.php @@ -25,4 +25,3 @@ $cmd=CreaComando($cadenaconexion); // Crea objeto comando if ($cmd){ echo tomaSelectAmbito($cmd,$ambito,0,$idcentro,250); } -?>
\ No newline at end of file diff --git a/admin/WebConsole/varios/ejecutaritem.php b/admin/WebConsole/varios/ejecutaritem.php index ad3dbe48..fa431d17 100644 --- a/admin/WebConsole/varios/ejecutaritem.php +++ b/admin/WebConsole/varios/ejecutaritem.php @@ -58,4 +58,4 @@ switch($tipoaccion){ break; } die("HA HABIDO ALGÚN ERROR AL PROCESAR EL ITEM"); -?> + diff --git a/admin/WebConsole/varios/incluiracciones.php b/admin/WebConsole/varios/incluiracciones.php index 43cf1abe..b4f27bff 100644 --- a/admin/WebConsole/varios/incluiracciones.php +++ b/admin/WebConsole/varios/incluiracciones.php @@ -62,7 +62,8 @@ else{ // Viene de menus ?> <HTML> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <TITLE>Administración web de aulas</TITLE> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> <SCRIPT language="javascript" src="../jscripts/accionmenu.js"></SCRIPT> @@ -184,6 +185,7 @@ function pintaMenus($cmd,$identificador,$tipoaccion,$op) global $descripcionaccion; global $EJECUCION_PROCEDIMIENTO; global $EJECUCION_TAREA; + $urlimg=""; // echo $cmd->texto; $idmenus=""; // Identificadores de menus para segunda consulta @@ -261,5 +263,3 @@ function pintaMenus($cmd,$identificador,$tipoaccion,$op) $rs->Cerrar(); return($idmenus); // retorna identificadores de menus implicados en la consulta } -?> - diff --git a/admin/WebConsole/varios/inclusionacciones.php b/admin/WebConsole/varios/inclusionacciones.php index 2f823445..6f7d9fab 100644 --- a/admin/WebConsole/varios/inclusionacciones.php +++ b/admin/WebConsole/varios/inclusionacciones.php @@ -1,282 +1,281 @@ -<?php
-//// ******************************************************************************************************
-// Aplicacin WEB: ogAdmWebCon
-// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creacin: Ao 2009-2010
-// Fecha ltima modificacin: Agosto-2010
-// Nombre del fichero: inclusionacciones.php
-// Descripcin :
-// Permite incorporar procedimientos y comandos a tareas y tareas ya existentes
-// *******************************************************************************************************
-include_once("../includes/ctrlacc.php");
-include_once("../clases/AdoPhp.php");
-include_once("../includes/CreaComando.php");
-include_once("../includes/constantes.php");
-include_once("../includes/comunes.php");
-include_once("../includes/TomaDato.php");
-include_once("../idiomas/php/".$idioma."/inclusionacciones_".$idioma.".php");
-//________________________________________________________________________________________________________
-
-$idtipoaccion=0;
-$tipoaccion=0;
-$descripcionaccion="";
-$ambito="";
-
-if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"];
-if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"];
-if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"];
-if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
-
-//________________________________________________________________________________________________________
-
-$cmd=CreaComando($cadenaconexion); // Crea objeto comando
-if (!$cmd)
- Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
-
-$tbParametros=CreaTablaParametros($cmd); // Crea tabla en memmoria para acceder a detalles de comandos
-//________________________________________________________________________________________________________
-?>
-<HTML>
- <HEAD>
- <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <LINK rel="stylesheet" type="text/css" href="../estilos.css">
- <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
- <SCRIPT language="javascript" src="../jscripts/inclusionacciones.js"></SCRIPT>
- <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
- <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
- <SCRIPT language="javascript" src="../idiomas/javascripts/<?php echo $idioma?>/inclusionacciones_<?php echo $idioma?>.js"></SCRIPT>
- </HEAD>
- <BODY>
- <?php
- switch($tipoaccion){
- case $AMBITO_PROCEDIMIENTOS:
- $urlimg="../images/iconos/procedimiento.gif";
- $literal=$TbMsg[0];
- $litcab=$TbMsg[2];
- break;
- case $AMBITO_TAREAS:
- $urlimg="../images/iconos/tareas.gif";
- $literal=$TbMsg[1];
- $litcab=$TbMsg[3];
- break;
- }
- ?>
- <P align=center class=cabeceras><IMG src="../images/iconos/acciones.gif"> <?php echo $literal?><BR>
- <SPAN align=center class=subcabeceras><?php echo $descripcionaccion?></SPAN> <IMG src="<?php echo $urlimg?>"></P>
-
- <TABLE align=center border=0>
- <TR>
- <?php
- $conTR=0; // Contador de lineas (Identificadores de las filas)
- switch($tipoaccion){
- case $AMBITO_PROCEDIMIENTOS:
- $litmsg=$TbMsg[5];
- listaProcedientos($cmd,$idtipoaccion);
- break;
- case $AMBITO_TAREAS:
- $litmsg=$TbMsg[6];
- listaTareas($cmd,$idtipoaccion,$ambito);
- break;
- }
- ?>
- </TR>
- </TABLE>
- <FORM name="fdatos">
- <INPUT type="hidden" name="conTR" value="<?php echo $conTR?>">
- <INPUT type="hidden" name="tipoaccion" value="<?php echo $tipoaccion?>">
- <INPUT type="hidden" name="idtipoaccion" value="<?php echo $idtipoaccion?>">
- </FORM>
- </BODY>
-</HTML>
-<?php
-// *************************************************************************************************************************************************
- function listaProcedientos($cmd,$idprocedimiento)
- {
- global $AMBITO_PROCEDIMIENTOS;
- global $TbMsg;
-
- $cmd->texto="SELECT procedimientos_acciones.idprocedimientoaccion AS identificador, procedimientos_acciones.orden,
- procedimientos_acciones.parametros, procedimientos_acciones.procedimientoid,
- comandos.idcomando, comandos.descripcion AS comando,
- procedimientostemp.descripcion AS procedimiento
- FROM procedimientos
- INNER JOIN procedimientos_acciones ON procedimientos_acciones.idprocedimiento=procedimientos.idprocedimiento
- LEFT OUTER JOIN comandos ON comandos.idcomando=procedimientos_acciones.idcomando
- LEFT OUTER JOIN procedimientos AS procedimientostemp
- ON procedimientostemp.idprocedimiento=procedimientos_acciones.procedimientoid
- WHERE procedimientos.idprocedimiento=".$idprocedimiento."
- ORDER BY procedimientos_acciones.orden";
-
- $idprocedimientos=escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,true,7);
-
- $idprocedimientos=$idprocedimiento; // Excluye slo a l para evitar dead-lock
- $cmd->texto="SELECT idprocedimiento AS identificador, 0 AS orden, 0 AS idcomando, descripcion AS procedimiento
- FROM procedimientos
- WHERE idprocedimiento NOT IN (".$idprocedimientos.")
- ORDER BY descripcion";
-
- escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8);
- }
-// *************************************************************************************************************************************************
- function listaTareas($cmd,$idtarea,$ambito)
- {
- global $AMBITO_PROCEDIMIENTOS;
- global $AMBITO_TAREAS;
- global $AMBITO_TAREAS;
- global $TbMsg;
-
- /* Contenido de tarea */
- $cmd->texto="SELECT tareas.ambito, tareas.idambito, tareas_acciones.idtareaaccion AS identificador,
- tareas_acciones.orden, tareas_acciones.tareaid, procedimientos.idprocedimiento,
- procedimientos.descripcion AS procedimiento, tareastemp.descripcion AS tarea
- FROM tareas
- INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
- LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=tareas_acciones.idprocedimiento
- LEFT OUTER JOIN tareas AS tareastemp
- ON tareastemp.idtarea=tareas_acciones.tareaid
- WHERE tareas.idtarea=".$idtarea."
- ORDER BY tareas_acciones.orden";
-
- $idtareas=escribeAcciones($cmd,$AMBITO_TAREAS,true,7);
-
- /* Procedimientos disponibles */
- if(!empty($ambito)){
- $cmd->texto="SELECT idprocedimiento AS identificador, 0 AS orden, 0 AS idcomando, descripcion AS procedimiento
- FROM procedimientos
- ORDER BY descripcion";
-
- escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8);
- }
-
- /* Tareas disponibles */
- $idtareas=$idtarea; // Excluye slo a ella para evitar dead-lock
- $cmd->texto="SELECT idtarea AS identificador, 0 AS orden, 0 AS idprocedimiento, descripcion AS tarea
- FROM tareas
- WHERE idtarea NOT IN (".$idtareas.")
- ORDER BY descripcion";
- escribeAcciones($cmd,$AMBITO_TAREAS,false,9);
- }
-//________________________________________________________________________________________________________
-
- function escribeAcciones($cmd,$tipoaccion,$sw,$imsg)
- {
- global $AMBITO_PROCEDIMIENTOS;
- global $AMBITO_TAREAS;
- global $AMBITO_COMANDOS;
- global $conTR;
- global $TbMsg;
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return("");
-
- $idacciones="";
-
- echo '<TD valign=top>';
- if($rs->EOF && !$sw){
- echo '</P></TD>';
- return;
- }
-
- echo '<P align=center><SPAN class=presentaciones><B>'.$TbMsg[$imsg].'</B></SPAN></BR>';
- echo ' <TABLE align=center class="tabla_listados" cellspacing=1 cellpadding=0>';
- escribeCabecera();
- while (!$rs->EOF){
- echo '<TR id="TR-'.$conTR.'" value="'.$rs->campos["identificador"].'">';
- $conTR++;
- echo '<TD align=center><INPUT type=checkbox';
- if($sw)
- echo ' value="1" checked '; // Lo marca como seleccionado (1. ronda)
- else
- echo ' value="0"';
- echo '></TD>';
- echo '<TD align=center ><INPUT class="formulariodatos" style="WIDTH:30px"
- type="text" value="'.$rs->campos["orden"].'" id="'.$rs->campos["orden"].'"></TD>';
-
- // Descripcion de la accin
- switch($tipoaccion){
- case $AMBITO_PROCEDIMIENTOS:
- if(!empty($rs->campos["idcomando"])){
- $urlimg="../images/iconos/comandos.gif";
- $accion=$rs->campos["comando"];
- $value=$AMBITO_COMANDOS;
- }
- else{
- $urlimg="../images/iconos/procedimiento.gif";
- $accion=$rs->campos["procedimiento"];
- $value=$AMBITO_PROCEDIMIENTOS;
- }
- break;
- case $AMBITO_TAREAS:
- if(!empty($rs->campos["idprocedimiento"])){
- $urlimg="../images/iconos/procedimiento.gif";
- $accion=$rs->campos["procedimiento"];
- $value=$AMBITO_PROCEDIMIENTOS;
- }
- else{
- $urlimg="../images/iconos/tareas.gif";
- $accion=$rs->campos["tarea"];
- $value=$AMBITO_TAREAS;
- }
- break;
- }
- echo '<TD align=center><IMG style="cursor:pointer" src="'.$urlimg.'" value="'.$value.'"></TD>';
- echo '<TD>'.$accion.'</TD>';
- // Orden del item del item
- echo '</TR>';
-
- /* Muestra parmetros de los comandos (Se hace en Informacin)
- if($tipoaccion==$AMBITO_PROCEDIMIENTOS){
- if(!empty($rs->campos["idcomando"])){ // Se trata de un comando, se muestran parmetros)
- $htmlprm=escribeParametros($rs->campos["parametros"]);
- if(!empty($htmlprm)){
- echo '<TR>';
- echo '<TD> </TD>';
- echo '<TD colspan=3>'.escribeParametros($rs->campos["parametros"]).'</TD>';
- }
- }
- }
- */
- $rs->Siguiente();
- }
- echo '</TABLE>';
- if($sw) escribePie();
- echo '</P></TD>';
- $rs->Cerrar();
- $idacciones.="0"; // Para evitar el ltimo ";"
- return($idacciones);
- }
-//________________________________________________________________________________________________________
-
- function escribeCabecera()
- {
- global $TbMsg;
- global $litcab;
-
- echo '<TR height=20>
- <TH> </TH>
- <TH> '.$TbMsg[4].' </TH>
- <TH>T</TH>
- <TH> '.$litcab.'</TH>
- </TR>';
- }
-//________________________________________________________________________________________________________
-
- function escribePie()
- {
- global $litmsg;
- global $op;
-
- echo '<BR><TABLE align=center>
- <TR>
- <TD><A href="#botones"><IMG border=0 src="../images/boton_confirmar.gif"
- onclick="confirmar('.$op.');"></A></TD>
- </TR>
- </TABLE>
- <BR>
- <DIV id="Layer_nota" align=center>
- <SPAN align=center class=notas><I>'.$litmsg.'</I></SPAN>
- </DIV>';
- }
-?>
-
+<?php +//// ****************************************************************************************************** +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2009-2010 +// Fecha última modificación: Agosto-2010 +// Nombre del fichero: inclusionacciones.php +// Descripción: +// Permite incorporar procedimientos y comandos a tareas y tareas ya existentes +// ******************************************************************************************************* +include_once("../includes/ctrlacc.php"); +include_once("../clases/AdoPhp.php"); +include_once("../includes/CreaComando.php"); +include_once("../includes/constantes.php"); +include_once("../includes/comunes.php"); +include_once("../includes/TomaDato.php"); +include_once("../idiomas/php/".$idioma."/inclusionacciones_".$idioma.".php"); +//________________________________________________________________________________________________________ + +$idtipoaccion=0; +$tipoaccion=0; +$descripcionaccion=""; +$ambito=""; + +if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"]; +if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"]; +if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"]; +if (isset($_GET["ambito"])) $ambito=$_GET["ambito"]; + +//________________________________________________________________________________________________________ + +$cmd=CreaComando($cadenaconexion); // Crea objeto comando +if (!$cmd) + Header('Location: '.$pagerror.'?herror=2'); // Error de conexi�n con servidor B.D. + +$tbParametros=CreaTablaParametros($cmd); // Crea tabla en memmoria para acceder a detalles de comandos +//________________________________________________________________________________________________________ +?> +<HTML> + <HEAD> + <TITLE>Administración web de aulas</TITLE> + <META http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <LINK rel="stylesheet" type="text/css" href="../estilos.css"> + <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT> + <SCRIPT language="javascript" src="../jscripts/inclusionacciones.js"></SCRIPT> + <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT> + <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT> + <SCRIPT language="javascript" src="../idiomas/javascripts/<?php echo $idioma?>/inclusionacciones_<?php echo $idioma?>.js"></SCRIPT> + </HEAD> + <BODY> + <?php + switch($tipoaccion){ + case $AMBITO_PROCEDIMIENTOS: + $urlimg="../images/iconos/procedimiento.gif"; + $literal=$TbMsg[0]; + $litcab=$TbMsg[2]; + break; + case $AMBITO_TAREAS: + $urlimg="../images/iconos/tareas.gif"; + $literal=$TbMsg[1]; + $litcab=$TbMsg[3]; + break; + } + ?> + <P align=center class=cabeceras><IMG src="../images/iconos/acciones.gif"> <?php echo $literal?><BR> + <SPAN class=subcabeceras><?php echo $descripcionaccion?></SPAN> <IMG src="<?php echo $urlimg?>"></P> + + <TABLE align=center border=0> + <TR> + <?php + $conTR=0; // Contador de líneas (Identificadores de las filas) + switch($tipoaccion){ + case $AMBITO_PROCEDIMIENTOS: + $litmsg=$TbMsg[5]; + listaProcedientos($cmd,$idtipoaccion); + break; + case $AMBITO_TAREAS: + $litmsg=$TbMsg[6]; + listaTareas($cmd,$idtipoaccion,$ambito); + break; + } + ?> + </TR> + </TABLE> + <FORM name="fdatos"> + <INPUT type="hidden" name="conTR" value="<?php echo $conTR?>"> + <INPUT type="hidden" name="tipoaccion" value="<?php echo $tipoaccion?>"> + <INPUT type="hidden" name="idtipoaccion" value="<?php echo $idtipoaccion?>"> + </FORM> + </BODY> +</HTML> +<?php +// ************************************************************************************************************************************************* + function listaProcedientos($cmd,$idprocedimiento) + { + global $AMBITO_PROCEDIMIENTOS; + global $TbMsg; + + $cmd->texto="SELECT procedimientos_acciones.idprocedimientoaccion AS identificador, procedimientos_acciones.orden, + procedimientos_acciones.parametros, procedimientos_acciones.procedimientoid, + comandos.idcomando, comandos.descripcion AS comando, + procedimientostemp.descripcion AS procedimiento + FROM procedimientos + INNER JOIN procedimientos_acciones ON procedimientos_acciones.idprocedimiento=procedimientos.idprocedimiento + LEFT OUTER JOIN comandos ON comandos.idcomando=procedimientos_acciones.idcomando + LEFT OUTER JOIN procedimientos AS procedimientostemp + ON procedimientostemp.idprocedimiento=procedimientos_acciones.procedimientoid + WHERE procedimientos.idprocedimiento=".$idprocedimiento." + ORDER BY procedimientos_acciones.orden"; + + $idprocedimientos=escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,true,7); + + $idprocedimientos=$idprocedimiento; // Excluye sólo a él para evitar dead-lock + $cmd->texto="SELECT idprocedimiento AS identificador, 0 AS orden, 0 AS idcomando, descripcion AS procedimiento + FROM procedimientos + WHERE idprocedimiento NOT IN (".$idprocedimientos.") + ORDER BY descripcion"; + + escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8); + } +// ************************************************************************************************************************************************* + function listaTareas($cmd,$idtarea,$ambito) + { + global $AMBITO_PROCEDIMIENTOS; + global $AMBITO_TAREAS; + global $AMBITO_TAREAS; + global $TbMsg; + + /* Contenido de tarea */ + $cmd->texto="SELECT tareas.ambito, tareas.idambito, tareas_acciones.idtareaaccion AS identificador, + tareas_acciones.orden, tareas_acciones.tareaid, procedimientos.idprocedimiento, + procedimientos.descripcion AS procedimiento, tareastemp.descripcion AS tarea + FROM tareas + INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea + LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=tareas_acciones.idprocedimiento + LEFT OUTER JOIN tareas AS tareastemp + ON tareastemp.idtarea=tareas_acciones.tareaid + WHERE tareas.idtarea=".$idtarea." + ORDER BY tareas_acciones.orden"; + + $idtareas=escribeAcciones($cmd,$AMBITO_TAREAS,true,7); + + /* Procedimientos disponibles */ + if(!empty($ambito)){ + $cmd->texto="SELECT idprocedimiento AS identificador, 0 AS orden, 0 AS idcomando, descripcion AS procedimiento + FROM procedimientos + ORDER BY descripcion"; + + escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8); + } + + /* Tareas disponibles */ + $idtareas=$idtarea; // Excluye s�lo a ella para evitar dead-lock + $cmd->texto="SELECT idtarea AS identificador, 0 AS orden, 0 AS idprocedimiento, descripcion AS tarea + FROM tareas + WHERE idtarea NOT IN (".$idtareas.") + ORDER BY descripcion"; + escribeAcciones($cmd,$AMBITO_TAREAS,false,9); + } +//________________________________________________________________________________________________________ + + function escribeAcciones($cmd,$tipoaccion,$sw,$imsg) + { + global $AMBITO_PROCEDIMIENTOS; + global $AMBITO_TAREAS; + global $AMBITO_COMANDOS; + global $conTR; + global $TbMsg; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(""); + + $idacciones=""; + + echo '<TD valign=top>'; + if($rs->EOF && !$sw){ + echo '</P></TD>'; + return; + } + + echo '<P align=center><SPAN class=presentaciones><B>'.$TbMsg[$imsg].'</B></SPAN></BR>'; + echo ' <TABLE align=center class="tabla_listados" cellspacing=1 cellpadding=0>'; + escribeCabecera(); + while (!$rs->EOF){ + echo '<TR id="TR-'.$conTR.'" value="'.$rs->campos["identificador"].'">'; + $conTR++; + echo '<TD align=center><INPUT type=checkbox'; + if($sw) + echo ' value="1" checked '; // Lo marca como seleccionado (1�. ronda) + else + echo ' value="0"'; + echo '></TD>'; + echo '<TD align=center ><INPUT class="formulariodatos" style="WIDTH:30px" + type="text" value="'.$rs->campos["orden"].'" id="'.$rs->campos["orden"].'"></TD>'; + + // Descripcion de la acci�n + switch($tipoaccion){ + case $AMBITO_PROCEDIMIENTOS: + if(!empty($rs->campos["idcomando"])){ + $urlimg="../images/iconos/comandos.gif"; + $accion=$rs->campos["comando"]; + $value=$AMBITO_COMANDOS; + } + else{ + $urlimg="../images/iconos/procedimiento.gif"; + $accion=$rs->campos["procedimiento"]; + $value=$AMBITO_PROCEDIMIENTOS; + } + break; + case $AMBITO_TAREAS: + if(!empty($rs->campos["idprocedimiento"])){ + $urlimg="../images/iconos/procedimiento.gif"; + $accion=$rs->campos["procedimiento"]; + $value=$AMBITO_PROCEDIMIENTOS; + } + else{ + $urlimg="../images/iconos/tareas.gif"; + $accion=$rs->campos["tarea"]; + $value=$AMBITO_TAREAS; + } + break; + } + echo '<TD align=center><IMG style="cursor:pointer" src="'.$urlimg.'" value="'.$value.'"></TD>'; + echo '<TD>'.$accion.'</TD>'; + // Orden del item del item + echo '</TR>'; + + /* Muestra parámetros de los comandos (Se hace en Información) + if($tipoaccion==$AMBITO_PROCEDIMIENTOS){ + if(!empty($rs->campos["idcomando"])){ // Se trata de un comando, se muestran par�metros) + $htmlprm=escribeParametros($rs->campos["parametros"]); + if(!empty($htmlprm)){ + echo '<TR>'; + echo '<TD> </TD>'; + echo '<TD colspan=3>'.escribeParametros($rs->campos["parametros"]).'</TD>'; + } + } + } + */ + $rs->Siguiente(); + } + echo '</TABLE>'; + if($sw) escribePie(); + echo '</P></TD>'; + $rs->Cerrar(); + $idacciones.="0"; // Para evitar el último ";" + return($idacciones); + } +//________________________________________________________________________________________________________ + + function escribeCabecera() + { + global $TbMsg; + global $litcab; + + echo '<TR height=20> + <TH> </TH> + <TH> '.$TbMsg[4].' </TH> + <TH>T</TH> + <TH> '.$litcab.'</TH> + </TR>'; + } +//________________________________________________________________________________________________________ + + function escribePie() + { + global $litmsg; + global $op; + + echo '<BR><TABLE align=center> + <TR> + <TD><A href="#botones"><IMG border=0 src="../images/boton_confirmar.gif" + onclick="confirmar('.$op.');"></A></TD> + </TR> + </TABLE> + <BR> + <DIV id="Layer_nota" align=center> + <SPAN align=center class=notas><I>'.$litmsg.'</I></SPAN> + </DIV>'; + } diff --git a/admin/WebConsole/varios/incorporaordenadores.php b/admin/WebConsole/varios/incorporaordenadores.php index 2615fbad..cd193511 100644 --- a/admin/WebConsole/varios/incorporaordenadores.php +++ b/admin/WebConsole/varios/incorporaordenadores.php @@ -90,7 +90,7 @@ if(!empty($contenido)){ // Se ha introducido contenido en lugar de fichero <?php //________________________________________________________________________________________________________ // Mensaje con el resultado del proceso -echo '<SCRIPT LANGUAGE="javascript">'; +echo '<SCRIPT>'; if (!empty($resul)) echo " alert('".$TbMsg[$resul]."');"; if (!empty($ordDup)) diff --git a/admin/WebConsole/varios/incrementalcomponente_soft.php b/admin/WebConsole/varios/incrementalcomponente_soft.php index bf3214da..cc6c4fed 100644 --- a/admin/WebConsole/varios/incrementalcomponente_soft.php +++ b/admin/WebConsole/varios/incrementalcomponente_soft.php @@ -25,7 +25,8 @@ if (!$cmd) ?> <HTML> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/incrementalcomponente_soft.js"></SCRIPT> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> @@ -36,10 +37,10 @@ if (!$cmd) <INPUT type=hidden value="<?php echo $idcentro?>" id=idcentro> <INPUT type=hidden value="<?php echo $idsoftincremental?>" id=idsoftincremental> <P align=center class=cabeceras><?php echo $TbMsg[0]?><BR> - <SPAN align=center class=subcabeceras><?php echo $TbMsg[1]?></SPAN> <IMG src="../images/iconos/confisoft.gif"></P> + <SPAN class=subcabeceras><?php echo $TbMsg[1]?></SPAN> <IMG src="../images/iconos/confisoft.gif"></P> <BR> <DIV align=center id="Layer_componentes"> - <SPAN align=center class=presentaciones><B><U><?php echo $TbMsg[2]?></U>: <?php echo $descripcionincremental?></B></SPAN></P> + <SPAN class=presentaciones><B><U><?php echo $TbMsg[2]?></U>: <?php echo $descripcionincremental?></B></SPAN></P> <TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 > <TR> <TH> </TH> @@ -57,7 +58,7 @@ if (!$cmd) while (!$rs->EOF){ echo '<TR>'; echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idsoftware"].',this)" checked ></INPUT></TD>'; - echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>'; + echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'" src="'.$rs->campos["urlimg"].'"></TD>'; echo '<TD width="80%" > '.$rs->campos["descripcion"].'</TD>'; echo '</TR>'; $strex.= $A_W."softwares.idsoftware<>".$rs->campos["idsoftware"]; diff --git a/admin/WebConsole/varios/informacion_imagenes.php b/admin/WebConsole/varios/informacion_imagenes.php index 8f43725a..0c3a52d4 100644 --- a/admin/WebConsole/varios/informacion_imagenes.php +++ b/admin/WebConsole/varios/informacion_imagenes.php @@ -49,12 +49,11 @@ $arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titul </BODY> </HTML> <?php -/************************************************************************************************************************************************** - Devuelve una cadena con formato XML de toda la información de las imagenes - Parametros: - - cmd:Una comando ya operativo ( con conexiónabierta) - - idimagen: El identificador del perfil hardware -________________________________________________________________________________________________________*/ +/** + * @param Comando $cmd Comando ya operativo (con conexión abierta) + * @param integer $idimagen Identificador del perfil hardware + * @return string Cadena en formato XML con toda la información de las imágenes_____ + */ function CreaArbol($cmd,$idimagen){ $cadenaXML=SubarbolXML_Imagenes($cmd,$idimagen); return($cadenaXML); diff --git a/admin/WebConsole/varios/informacion_tareas.php b/admin/WebConsole/varios/informacion_tareas.php index 58b3c491..63adf78d 100644 --- a/admin/WebConsole/varios/informacion_tareas.php +++ b/admin/WebConsole/varios/informacion_tareas.php @@ -24,10 +24,10 @@ if (isset($_GET["descripciontarea"])) $descripciontarea=$_GET["descripciontarea" //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <LINK rel="stylesheet" type="text/css" href="../estilos.css"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<LINK rel="stylesheet" type="text/css" href="../estilos.css"> </HEAD> <BODY> <?php @@ -67,7 +67,7 @@ function pintacomandos($cmd,$idtareacomando){ $cmd->texto.=" INNER JOIN comandos ON comandos.idcomando=tareas_comandos.idcomando"; $cmd->texto.=" WHERE tareas_comandos.idtareacomando=".$idtareacomando; $rs->Comando=&$cmd; - if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset + if (!$rs->Abrir()) return(""); // Error al abrir recordset if ($rs->EOF) return(""); $HTMLparametros='<TABLE class="tabla_parametros" align=center border=0 cellspacing=1 cellpadding=0 width="90%">'.chr(13); @@ -78,6 +78,7 @@ function pintacomandos($cmd,$idtareacomando){ $textambito=""; $urlimg=""; + $nombre=""; switch($rs->campos["ambito"]){ case $AMBITO_CENTROS : @@ -109,7 +110,7 @@ function pintacomandos($cmd,$idtareacomando){ $HTMLparametros.= '<TD> '.$TbMsg[3].' </TD>'.chr(13); $HTMLparametros.= '<TD> '.$textambito.' '; $HTMLparametros.= '<IMG src="'.$urlimg.'"> </TD>'.chr(13); - $HTMLparametros.= '</TR><TR>'; + $HTMLparametros.= '</TR><TR>'; $HTMLparametros.= '<TD> '.$TbMsg[4].' </TD>'.chr(13); $HTMLparametros.= '<TD> '.$nombre.' </TD>'.chr(13); $HTMLparametros.= '</TR>'; diff --git a/admin/WebConsole/varios/menubrowser.php b/admin/WebConsole/varios/menubrowser.php index c5878939..03465c64 100644 --- a/admin/WebConsole/varios/menubrowser.php +++ b/admin/WebConsole/varios/menubrowser.php @@ -16,12 +16,11 @@ if(!empty($iph)){ } ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <LINK rel="stylesheet" type="text/css" href="estilos.css"> -</HEAD> -<SCRIPT LANGUAGE="JAVASCRIPT"> + <TITLE>Administración web de aulas</TITLE> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <link rel="stylesheet" type="text/css" href="../estilos.css"> + <SCRIPT LANGUAGE="JAVASCRIPT"> //________________________________________________________________________________________________________ function confirmar(){ if (comprobar_datos()) @@ -29,12 +28,12 @@ function confirmar(){ } //________________________________________________________________________________________________________ function comprobar_datos(){ - if (document.fdatos.usu.value==""){ + if (document.fdatos.usu.value===""){ alert("Debe introducir un nombre de Usuario"); document.fdatos.usu.focus(); return(false) } - if (document.fdatos.pss.value==""){ + if (document.fdatos.pss.value===""){ alert("Debe introducir una contraseña"); document.fdatos.pss.focus(); return(false) @@ -52,15 +51,15 @@ function PulsaEnter(oEvento){ else return false; } - if (iAscii == 13) confirmar(); + if (iAscii === 13) confirmar(); return true; } //________________________________________________________________________________________________________ -</SCRIPT> + </SCRIPT> </HEAD> <BODY> -<DIV style="POSITION:absolute;top:20;left:150"> - <FORM action="controlacceso.php" name="fdatos" method="post"></FORM> +<DIV style="POSITION:absolute;top:20px;left:150px"> + <FORM action="../controlacceso.php" name="fdatos" method="post"></FORM> </DIV> </BODY> </HTML> @@ -81,4 +80,3 @@ function tomaIP(){ return($ipcliente); } -?> diff --git a/admin/WebConsole/varios/msgbrowser.php b/admin/WebConsole/varios/msgbrowser.php index 8a89757a..9add7b33 100644 --- a/admin/WebConsole/varios/msgbrowser.php +++ b/admin/WebConsole/varios/msgbrowser.php @@ -23,16 +23,13 @@ else $mensaje=$TbMsg[$idx]; ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> - <SCRIPT language="javascript"> - - </SCRIPT> <STYLE TYPE="text/css"> - .deepsea, .deepsea TD, .deepsea TH + .deepsea TD, .deepsea TH { background-color:#026afe; color:#FFFFFF; @@ -65,11 +62,11 @@ else <BODY> <?php if(empty($idx) && empty($msg)) { - // No hay operaciones realizandose + // No hay operaciones realizándose echo '<BR><BR><BR><BR><BR>'; echo '<TABLE cellspacing=0 cellpadding=2 align=center border=0>'; echo '<TR><TD align=center><IMG border=0 src="../images/iconos/logoopengnsys.png"></TD></TR>'; - echo '<TR><TD align=center><SPAN style="COLOR: #999999;FONT-FAMILY: Arial;FONT-SIZE: 12px;">Iniciando...</TD></TR>'; + echo '<TR><TD align=center><SPAN style="COLOR: #999999;FONT-FAMILY: Arial, sans-serif; FONT-SIZE: 12px;">Iniciando...</TD></TR>'; echo '</TR>'; echo '</TABLE>'; } @@ -79,7 +76,7 @@ else{ echo '<h1>' . $TbMsg[24] . ' </h1>'; echo '<BR><BR><BR>'; echo '<TABLE cellspacing=0 cellpadding=2 align=center border=0>'; - echo '<TR><TD align=center class="tdbarra">Opengnsys Browser Message</TD><TR>'; + echo '<TR><TD align=center class="tdbarra">OpenGnsys Browser Message</TD><TR>'; echo '<TR><TD class="tdclien" valign=center > '.$mensaje.' </TD></TR>'; echo '</TABLE>'; } diff --git a/admin/WebConsole/varios/perfilcomponente_hard.php b/admin/WebConsole/varios/perfilcomponente_hard.php index e1a8f4ae..82ea1d55 100644 --- a/admin/WebConsole/varios/perfilcomponente_hard.php +++ b/admin/WebConsole/varios/perfilcomponente_hard.php @@ -25,7 +25,8 @@ if (!$cmd) ?> <HTML> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/perfilcomponente_hard.js"></SCRIPT> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> diff --git a/admin/WebConsole/varios/perfilcomponente_soft.php b/admin/WebConsole/varios/perfilcomponente_soft.php index 58a90725..4b2c19ff 100644 --- a/admin/WebConsole/varios/perfilcomponente_soft.php +++ b/admin/WebConsole/varios/perfilcomponente_soft.php @@ -25,7 +25,8 @@ if (!$cmd) ?> <HTML> <HEAD> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<TITLE>Administración web de aulas</TITLE> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/perfilcomponente_soft.js"></SCRIPT> <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT> @@ -40,7 +41,7 @@ if (!$cmd) <SPAN align=center class=subcabeceras><?php echo $TbMsg[1]?></SPAN> <IMG src="../images/iconos/confisoft.gif"></P> <BR> <DIV align=center id="Layer_componentes"> - <SPAN align=center class=presentaciones><B><U><?php echo $TbMsg[2]?></U>: <?php echo $descripcionperfil?></B></SPAN></P> + <P align=center><SPAN class=presentaciones><B><U><?php echo $TbMsg[2]?></U>: <?php echo $descripcionperfil?></B></SPAN></P> <TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 > <TR> <TH> </TH> diff --git a/admin/WebConsole/varios/programaciones.php b/admin/WebConsole/varios/programaciones.php index 522614ca..2187345f 100644 --- a/admin/WebConsole/varios/programaciones.php +++ b/admin/WebConsole/varios/programaciones.php @@ -82,8 +82,8 @@ $mialmanaque= new Almanaque("tabla_meses"); //________________________________________________________________________________________________________ ?> <HTML> -<TITLE>Administración web de aulas</TITLE> <HEAD> + <TITLE>Administración web de aulas</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <LINK rel="stylesheet" type="text/css" href="../estilos.css"> <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT> @@ -96,7 +96,6 @@ $mialmanaque= new Almanaque("tabla_meses"); <IMG src=<?php echo $urlimg?>> <SPAN align=center class=subcabeceras><?php echo $descripcion?></SPAN> </p> <FORM name="fprogramaciones" method="post"> <INPUT type=hidden name=tipoaccion value="<?php echo $tipoaccion?>"> -<CENTER> <!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> <!-- Tabla Tabla con los tiempos y los bloques de programación --> <TABLE align=center border=0 cellPadding=0 cellSpacing=0> @@ -199,7 +198,7 @@ $mialmanaque= new Almanaque("tabla_meses"); </TR> <TR> <TD><input type=text class="cajatexto" id="nombrebloque" - style="width: 350; height: 20" size="20" ></TD> + style="width: 350px; height: 20px" size="20" ></TD> </TR> </TABLE> </TD> @@ -209,7 +208,7 @@ $mialmanaque= new Almanaque("tabla_meses"); <?php $HTMLSELECT=""; $HTMLSELECT.='<SELECT onclick="consulta_programacion();" - class="estilodesple" id="lista_programaciones" size=2 style="height:100; width: 350">' ; + class="estilodesple" id="lista_programaciones" size=2 style="height:100px; width: 350px">' ; if ($numreg>0){ while (!$rs->EOF){ $HTMLSELECT.='<OPTION value="'.$rs->campos["idprogramacion"].'"'; @@ -241,7 +240,7 @@ $mialmanaque= new Almanaque("tabla_meses"); onmouseover="sobreboton(this)" onmouseout="fueraboton(this)" onclick="modifica_programacion(<?php echo $identificador?>,<?php echo $tipoaccion?>,<?php echo $sesion?>)" align=center height="17" width="83">Modificar</SPAN></TD> </TR> - + <TR> <TD align=center class=botonprogramacion > <SPAN id=bt_duplicar style="cursor:pointer;visibility:visible;color:#bbbcb9" onmouseover="sobreboton(this)" onmouseout="fueraboton(this)" diff --git a/admin/WebConsole/varios/toma_mes.php b/admin/WebConsole/varios/toma_mes.php index c76b2dff..eaf75871 100644 --- a/admin/WebConsole/varios/toma_mes.php +++ b/admin/WebConsole/varios/toma_mes.php @@ -23,4 +23,3 @@ if (isset($_POST["idanno"])) $pidanno=$_POST["idanno"]; $mialmanaque= new Almanaque("tabla_meses"); $retorno=$mialmanaque->MesAnno($pidmes,$pidanno); echo $retorno; -?>
\ No newline at end of file diff --git a/client/boot-tools/boottoolsfunctions.lib b/client/boot-tools/boottoolsfunctions.lib index 15478248..f364f174 100755 --- a/client/boot-tools/boottoolsfunctions.lib +++ b/client/boot-tools/boottoolsfunctions.lib @@ -137,7 +137,7 @@ case "${1,,}" in esac BRANCH="devel" GITURL="https://api.github.com/repos/opengnsys/OpenGnsys/commits?sha=$BRANCH&path=/client" -GITRELEASE=$(curl -s "$GITURL" | jq -r '"r" + (.[0].commit.committer.date | gsub("-"; "")[:8]) + "." + (.[0].sha[:7])') +GITRELEASE=$(curl -s "$GITURL" | jq -r '"r" + (.[0].commit.committer.date | split("-") | join("")[:8]) + "." + (.[0].sha[:7])') NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$OSARCH-$GITRELEASE" NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$GITRELEASE" export OSDISTRIB OSCODENAME OSRELEASE OSARCH OSHTTP diff --git a/client/browser/po/ca.po b/client/browser/po/ca.po index 8e5e0b7c..0cbfa3d1 100644 --- a/client/browser/po/ca.po +++ b/client/browser/po/ca.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenGnsys Client Browser 1.1.0\n" -"Report-Msgid-Bugs-To: https://opengnsys.es\n" -"POT-Creation-Date: 2017-05-11 11:51+0000\n" +"Report-Msgid-Bugs-To: https://opengnsys.es/\n" +"POT-Creation-Date: 2018-12-18 09:53+0100\n" "PO-Revision-Date: 2016-05-03 10:25+0200\n" "Last-Translator: Ramón M. Gómez <ramongomez@us.es>\n" "Language-Team: CATALAN <LL@li.org>\n" @@ -22,89 +22,93 @@ msgstr "" msgid "Uso: %s -qws http://sitioweb.com/\n" msgstr "Ús: %s -qws http://web.com/\n" -#: ../src/mainwindow.cpp:55 +#: ../src/mainwindow.cpp:47 +msgid "El fichero de log no ha podido ser abierto: " +msgstr "Log file could not be opened: " + +#: ../src/mainwindow.cpp:67 msgid "&Nueva Terminal" msgstr "&Nova Terminal" -#: ../src/mainwindow.cpp:60 +#: ../src/mainwindow.cpp:71 msgid "Salida" msgstr "Sortida" -#: ../src/mainwindow.cpp:97 +#: ../src/mainwindow.cpp:103 msgid "Proyecto OpenGnsys" msgstr "Projecte OpenGnsys" -#: ../src/mainwindow.cpp:145 -msgid "El fichero de log no ha podido ser abierto: " -msgstr "" - -#: ../src/mainwindow.cpp:174 +#: ../src/mainwindow.cpp:166 msgid "Hay otro proceso en ejecución. Por favor espere." msgstr "" -#: ../src/mainwindow.cpp:189 ../src/mainwindow.cpp:228 +#: ../src/mainwindow.cpp:180 ../src/mainwindow.cpp:220 msgid "AVISO" msgstr "AVIS" -#: ../src/mainwindow.cpp:191 +#: ../src/mainwindow.cpp:183 msgid "" "La siguiente acción puede modificar datos o tardar varios minutos. El " "equipo no podrá ser utilizado durante su ejecución." msgstr "" -#: ../src/mainwindow.cpp:192 +#: ../src/mainwindow.cpp:184 msgid "Ejecutar" msgstr "Executar" -#: ../src/mainwindow.cpp:193 +#: ../src/mainwindow.cpp:185 msgid "Cancelar" msgstr "Cancel-lar" -#: ../src/mainwindow.cpp:211 +#: ../src/mainwindow.cpp:203 #, c-format msgid "%p% Cargando" msgstr "%p% Carregat" -#: ../src/mainwindow.cpp:230 +#: ../src/mainwindow.cpp:223 msgid "La página no se puede cargar." msgstr "" -#: ../src/mainwindow.cpp:232 +#: ../src/mainwindow.cpp:225 msgid "Recargar" msgstr "Recarregar" -#: ../src/mainwindow.cpp:233 +#: ../src/mainwindow.cpp:226 msgid "Abortar" msgstr "Avortar" -#: ../src/mainwindow.cpp:264 -msgid "Lanzado satisfactoriamente." +#: ../src/mainwindow.cpp:289 +msgid "Fin del proceso. Valor de retorno: " msgstr "" -#: ../src/mainwindow.cpp:298 -msgid "Proceso acabado correctamente. Valor de retorno: " +#: ../src/mainwindow.cpp:293 +msgid "El proceso ha fallado inesperadamente. Salida: " msgstr "" -#: ../src/mainwindow.cpp:302 -msgid "El proceso ha fallado inesperadamente. Salida: " +#: ../src/mainwindow.cpp:297 +msgid "Código de salida: " msgstr "" -#: ../src/mainwindow.cpp:313 +#: ../src/mainwindow.cpp:307 msgid "Imposible lanzar el proceso." msgstr "" -#: ../src/mainwindow.cpp:316 +#: ../src/mainwindow.cpp:310 msgid "Error de escritura en el proceso." msgstr "" -#: ../src/mainwindow.cpp:319 +#: ../src/mainwindow.cpp:313 msgid "Error de lectura del proceso." msgstr "" -#: ../src/mainwindow.cpp:327 +#: ../src/mainwindow.cpp:321 msgid "Error desconocido." msgstr "" -#: ../src/mainwindow.cpp:460 +#: ../src/mainwindow.cpp:459 msgid "Lanzando el comando: " msgstr "" + +#: ../src/mainwindow.cpp:487 +msgid "ERROR" +msgstr "ERROR" diff --git a/client/browser/po/en.po b/client/browser/po/en.po index 68ab13c5..b447a5f4 100644 --- a/client/browser/po/en.po +++ b/client/browser/po/en.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenGnsys Client Browser 1.1.0\n" -"Report-Msgid-Bugs-To: https://opengnsys.es\n" -"POT-Creation-Date: 2017-05-11 11:51+0000\n" +"Report-Msgid-Bugs-To: https://opengnsys.es/\n" +"POT-Creation-Date: 2018-12-18 09:53+0100\n" "PO-Revision-Date: 2016-05-03 10:16+0200\n" "Last-Translator: Ramón M. Gómez <ramongomez@us.es>\n" "Language-Team: ENGLISH <LL@li.org>\n" @@ -22,31 +22,31 @@ msgstr "" msgid "Uso: %s -qws http://sitioweb.com/\n" msgstr "Usage: %s -qws http://website.com/\n" -#: ../src/mainwindow.cpp:55 +#: ../src/mainwindow.cpp:47 +msgid "El fichero de log no ha podido ser abierto: " +msgstr "Log file could not be opened: " + +#: ../src/mainwindow.cpp:67 msgid "&Nueva Terminal" msgstr "&New Terminal" -#: ../src/mainwindow.cpp:60 +#: ../src/mainwindow.cpp:71 msgid "Salida" msgstr "Output" -#: ../src/mainwindow.cpp:97 +#: ../src/mainwindow.cpp:103 msgid "Proyecto OpenGnsys" msgstr "OpenGnsys Project" -#: ../src/mainwindow.cpp:145 -msgid "El fichero de log no ha podido ser abierto: " -msgstr "The log file could not be opened: " - -#: ../src/mainwindow.cpp:174 +#: ../src/mainwindow.cpp:166 msgid "Hay otro proceso en ejecución. Por favor espere." msgstr "There is another process running. Please wait." -#: ../src/mainwindow.cpp:189 ../src/mainwindow.cpp:228 +#: ../src/mainwindow.cpp:180 ../src/mainwindow.cpp:220 msgid "AVISO" msgstr "WARNING" -#: ../src/mainwindow.cpp:191 +#: ../src/mainwindow.cpp:183 msgid "" "La siguiente acción puede modificar datos o tardar varios minutos. El " "equipo no podrá ser utilizado durante su ejecución." @@ -54,59 +54,63 @@ msgstr "" "Following action can modify some data or take several minutes. This computer " "may not be used during execution." -#: ../src/mainwindow.cpp:192 +#: ../src/mainwindow.cpp:184 msgid "Ejecutar" msgstr "Run" -#: ../src/mainwindow.cpp:193 +#: ../src/mainwindow.cpp:185 msgid "Cancelar" msgstr "Cancel" -#: ../src/mainwindow.cpp:211 +#: ../src/mainwindow.cpp:203 #, c-format msgid "%p% Cargando" msgstr "%p% Loaded" -#: ../src/mainwindow.cpp:230 +#: ../src/mainwindow.cpp:223 msgid "La página no se puede cargar." msgstr "Page can not be loaded." -#: ../src/mainwindow.cpp:232 +#: ../src/mainwindow.cpp:225 msgid "Recargar" msgstr "Reload" -#: ../src/mainwindow.cpp:233 +#: ../src/mainwindow.cpp:226 msgid "Abortar" msgstr "Abort" -#: ../src/mainwindow.cpp:264 -msgid "Lanzado satisfactoriamente." -msgstr "Successfully launched." - -#: ../src/mainwindow.cpp:298 -msgid "Proceso acabado correctamente. Valor de retorno: " -msgstr "Process completed successfully. Return value: " +#: ../src/mainwindow.cpp:289 +msgid "Fin del proceso. Valor de retorno: " +msgstr "End of process. Return value: " -#: ../src/mainwindow.cpp:302 +#: ../src/mainwindow.cpp:293 msgid "El proceso ha fallado inesperadamente. Salida: " msgstr "The process crashed unexpectedly. Return value: " -#: ../src/mainwindow.cpp:313 +#: ../src/mainwindow.cpp:297 +msgid "Código de salida: " +msgstr "Exit code: " + +#: ../src/mainwindow.cpp:307 msgid "Imposible lanzar el proceso." msgstr "Unable to launch the process." -#: ../src/mainwindow.cpp:316 +#: ../src/mainwindow.cpp:310 msgid "Error de escritura en el proceso." msgstr "Error writing to the process." -#: ../src/mainwindow.cpp:319 +#: ../src/mainwindow.cpp:313 msgid "Error de lectura del proceso." msgstr "Error reading from the process." -#: ../src/mainwindow.cpp:327 +#: ../src/mainwindow.cpp:321 msgid "Error desconocido." msgstr "Unknown error." -#: ../src/mainwindow.cpp:460 +#: ../src/mainwindow.cpp:459 msgid "Lanzando el comando: " msgstr "Launching command: " + +#: ../src/mainwindow.cpp:487 +msgid "ERROR" +msgstr "ERROR" diff --git a/client/browser/src/mainwindow.cpp b/client/browser/src/mainwindow.cpp index 2e799c5e..b0ca60df 100644 --- a/client/browser/src/mainwindow.cpp +++ b/client/browser/src/mainwindow.cpp @@ -12,10 +12,10 @@ #include <QDateTime> #include <QProgressBar> #include <QTabWidget> -#include <QWebView> #include <QLineEdit> #include <QNetworkReply> #include <QSslError> +#include <QTimer> #include <libintl.h> #include "qtermwidget.h" @@ -24,7 +24,7 @@ #define BUFFERSIZE 2048 #define REGEXP_STRING "^\\[(\\d+)\\]" -#define CURRENT_TIME() QDateTime::currentDateTime().toString("dd/MM/yy hh:mm:ss") +#define CURRENT_TIME() QDateTime::currentDateTime().toString("dd/MM/yyyy hh:mm:ss") MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),m_web(new QWebView()),m_output(new QTextEdit()), @@ -33,13 +33,25 @@ MainWindow::MainWindow(QWidget *parent) { // Graphic showFullScreen(); - setWindowTitle(tr("OpenGnsys Browser")); - setCentralWidget(m_web); - readEnvironmentValues(); + // Open the log file for append + if(m_env.contains("OGLOGFILE") && m_env["OGLOGFILE"]!="") + { + QFile* m_logfile=new QFile(m_env["OGLOGFILE"]); + if(!m_logfile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) + { + delete m_logfile; + print(tr(gettext("El fichero de log no ha podido ser abierto: "))+m_env["OGLOGFILE"]+"."); + } + else + { + m_logstream=new QTextStream(m_logfile); + } + } + // Output m_output->setReadOnly(true); @@ -56,16 +68,13 @@ MainWindow::MainWindow(QWidget *parent) button->setFocusPolicy(Qt::TabFocus); m_tabs->setCornerWidget(button); m_tabs->setFocusPolicy(Qt::NoFocus); - m_tabs->addTab(m_output,tr(gettext("Salida"))); slotCreateTerminal(); - // Assign tabs to dock dock->setWidget(m_tabs); - // Assign tabs dock to the mainwindow if admin mode is active if(m_env.contains("ogactiveadmin") && m_env["ogactiveadmin"] == "true") - addDockWidget(Qt::BottomDockWidgetArea,dock); + addDockWidget(Qt::BottomDockWidgetArea,dock); // Top Dock dock=new QDockWidget(); @@ -73,16 +82,13 @@ MainWindow::MainWindow(QWidget *parent) QWidget* dummy2=new QWidget(); dummy2->setMaximumHeight(0); dock->setTitleBarWidget(dummy2); - // WebBar m_webBar=new QLineEdit(dock); - // WebBar to dock dock->setWidget(m_webBar); - // Assign top dock to the mainwindow if admin mode is active if(m_env.contains("ogactiveadmin") && m_env["ogactiveadmin"] == "true") - addDockWidget(Qt::TopDockWidgetArea,dock); + addDockWidget(Qt::TopDockWidgetArea,dock); // Status bar QStatusBar* st=statusBar(); @@ -91,9 +97,9 @@ MainWindow::MainWindow(QWidget *parent) m_logo=new QLabel(); QPixmap logo; if(logo.load("/opt/opengnsys/lib/pictures/oglogo.png")) - m_logo->setPixmap(logo); + m_logo->setPixmap(logo); else - m_logo->setText("OG"); + m_logo->setText("OG"); m_logo->setToolTip(tr(gettext("Proyecto OpenGnsys"))+"\nhttps://opengnsys.es"); // Progress bar m_progressBar=new QProgressBar(this); @@ -103,8 +109,8 @@ MainWindow::MainWindow(QWidget *parent) m_speedInfo=new QLabel(speed); m_speedInfo->setAlignment(Qt::AlignCenter); if(m_env.contains("DEFAULTSPEED") && m_env["DEFAULTSPEED"]!="") - if(speed.compare(m_env["DEFAULTSPEED"])!=0) - m_speedInfo->setStyleSheet("background-color: darkred; color: white; font-weight: bold;"); + if(speed.compare(m_env["DEFAULTSPEED"])!=0) + m_speedInfo->setStyleSheet("background-color: darkred; color: white; font-weight: bold;"); // Clock m_clock=new DigitalClock(this); @@ -126,10 +132,8 @@ MainWindow::MainWindow(QWidget *parent) connect(m_process,SIGNAL(started()),this,SLOT(slotProcessStarted())); connect(m_process,SIGNAL(finished(int,QProcess::ExitStatus)), this,SLOT(slotProcessFinished(int,QProcess::ExitStatus))); - connect(m_process,SIGNAL(error(QProcess::ProcessError)), this,SLOT(slotProcessError(QProcess::ProcessError))); - connect(m_process,SIGNAL(readyReadStandardOutput()),this,SLOT(slotProcessOutput())); connect(m_process,SIGNAL(readyReadStandardError()), this,SLOT(slotProcessErrorOutput())); @@ -138,21 +142,6 @@ MainWindow::MainWindow(QWidget *parent) connect(button,SIGNAL(clicked()),this,SLOT(slotCreateTerminal())); connect(m_webBar,SIGNAL(returnPressed()),this,SLOT(slotWebBarReturnPressed())); - // Open the log file for append - if(m_env.contains("OGLOGFILE") && m_env["OGLOGFILE"]!="") - { - QFile* m_logfile=new QFile(m_env["OGLOGFILE"]); - if(!m_logfile->open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) - { - delete m_logfile; - print(tr(gettext("El fichero de log no ha podido ser abierto: "))+m_env["OGLOGFILE"]+"."); - } - else - { - m_logstream=new QTextStream(m_logfile); - } - } - QStringList arguments=QCoreApplication::arguments(); m_webBar->setText(arguments[1]); m_web->load(QUrl(arguments[1])); @@ -174,10 +163,9 @@ void MainWindow::slotLinkHandle(const QUrl &url) // Check if it's executing another process if(m_process->state()!=QProcess::NotRunning) { - print(tr(gettext("Hay otro proceso en ejecución. Por favor espere."))); - return; + print(tr(gettext("Hay otro proceso en ejecución. Por favor espere."))); + return; } - QString urlString = url.toString(); if(urlString.startsWith(COMMAND)) { @@ -188,8 +176,9 @@ void MainWindow::slotLinkHandle(const QUrl &url) { // For COMMAND_WITH_CONFIRMATION link, show confirmation box and execute, if accepted QMessageBox msgBox; - msgBox.setIcon(QMessageBox::Question); + msgBox.setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint); msgBox.setWindowTitle(tr(gettext("AVISO"))); + msgBox.setIcon(QMessageBox::Question); msgBox.setTextFormat(Qt::RichText); msgBox.setText(tr(gettext("La siguiente acción puede modificar datos o tardar varios minutos. El equipo no podrá ser utilizado durante su ejecución."))); QPushButton *execButton = msgBox.addButton(tr(gettext("Ejecutar")), QMessageBox::ActionRole); @@ -227,14 +216,14 @@ void MainWindow::slotWebLoadFinished(bool ok) if(ok == false) { QMessageBox msgBox; - msgBox.setIcon(QMessageBox::Question); + msgBox.setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint); msgBox.setWindowTitle(tr(gettext("AVISO"))); + msgBox.setIcon(QMessageBox::Question); msgBox.setTextFormat(Qt::RichText); msgBox.setText(tr(gettext("La página no se puede cargar."))); QPushButton *reloadButton = msgBox.addButton(tr(gettext("Recargar")), QMessageBox::ActionRole); msgBox.addButton(tr(gettext("Abortar")), QMessageBox::RejectRole); - msgBox.exec(); if (msgBox.clickedButton() == reloadButton) @@ -264,7 +253,6 @@ void MainWindow::slotSslErrors(QNetworkReply* reply) void MainWindow::slotProcessStarted() { - m_output->insertPlainText(tr(gettext("Lanzado satisfactoriamente."))); startProgressBar(); } @@ -298,28 +286,31 @@ void MainWindow::slotProcessFinished(int code,QProcess::ExitStatus status) { if(status==QProcess::NormalExit) { - print(tr(gettext("Proceso acabado correctamente. Valor de retorno: "))+QString::number(code)); + print(tr(gettext("Fin del proceso. Valor de retorno: "))+QString::number(code)); } else { print(tr(gettext("El proceso ha fallado inesperadamente. Salida: ")+code)); } + // On error, show a message box + if(code>0) + showErrorMessage(gettext("Código de salida: ")+QString::number(code)); finishProgressBar(); } void MainWindow::slotProcessError(QProcess::ProcessError error) { - m_output->setTextColor(QColor(Qt::darkRed)); + QString errorMsg; switch(error) { case QProcess::FailedToStart: - print(tr(gettext("Imposible lanzar el proceso."))); + errorMsg=tr(gettext("Imposible lanzar el proceso.")); break; case QProcess::WriteError: - print(tr(gettext("Error de escritura en el proceso."))); + errorMsg=tr(gettext("Error de escritura en el proceso.")); break; case QProcess::ReadError: - print(tr(gettext("Error de lectura del proceso."))); + errorMsg=tr(gettext("Error de lectura del proceso.")); break; // No capturo crashed porque la pillo por finished case QProcess::Crashed: @@ -327,11 +318,17 @@ void MainWindow::slotProcessError(QProcess::ProcessError error) break; case QProcess::UnknownError: default: - print(tr(gettext("Error desconocido."))); + errorMsg=tr(gettext("Error desconocido.")); break; } + // Print error and show message box with timeout. + if(!errorMsg.isNull()) { + m_output->setTextColor(QColor(Qt::darkRed)); + print(errorMsg); + m_output->setTextColor(QColor(Qt::black)); + showErrorMessage(errorMsg); + } finishProgressBar(); - m_output->setTextColor(QColor(Qt::black)); } void MainWindow::slotCreateTerminal() @@ -343,8 +340,6 @@ void MainWindow::slotCreateTerminal() console->setTerminalFont(font); console->setFocusPolicy(Qt::StrongFocus); - - //console->setColorScheme(COLOR_SCHEME_BLACK_ON_LIGHT_YELLOW); console->setScrollBarPosition(QTermWidget::ScrollBarRight); ++m_numberTerminal; @@ -367,7 +362,7 @@ void MainWindow::slotWebBarReturnPressed() { QUrl url(m_webBar->text()); if(url.isValid()) - slotLinkHandle(url); + slotLinkHandle(url); } int MainWindow::readEnvironmentValues() @@ -405,30 +400,30 @@ int MainWindow::readEnvironmentValues() void MainWindow::print(QString s) { - if(!s.endsWith("\n")) - s+="\n"; - if(m_logstream) - { - *m_logstream<<CURRENT_TIME()<<": "<<s; - m_logstream->flush(); - } - if(m_output) - m_output->insertPlainText(s); + if(!s.endsWith("\n")) + s+="\n"; + if(m_logstream) + { + *m_logstream<<CURRENT_TIME()<<": browser: "<<s; + m_logstream->flush(); + } + if(m_output) + m_output->insertPlainText(s); } void MainWindow::captureOutputForStatusBar(QString output) { - // Capturar para modificar status bar - output=output.trimmed(); - - QRegExp regexp(REGEXP_STRING); - if(regexp.indexIn(output) != -1) - { - int pass=regexp.cap(1).toInt(); - output.replace(regexp,""); - m_progressBar->setValue(pass); - m_progressBar->setFormat("%p%"+output); - } + // Capturar para modificar status bar + output=output.trimmed(); + + QRegExp regexp(REGEXP_STRING); + if(regexp.indexIn(output) != -1) + { + int pass=regexp.cap(1).toInt(); + output.replace(regexp,""); + m_progressBar->setValue(pass); + m_progressBar->setFormat("%p%"+output); + } } // Init status bar @@ -460,9 +455,8 @@ void MainWindow::executeCommand(QString &string) // Assign the same Browser's environment to the process m_process->setEnvironment(QProcess::systemEnvironment()); m_process->start(program,list); - print(tr(gettext("Lanzando el comando: "))); m_output->setTextColor(QColor(Qt::darkGreen)); - print(program+" "+list.join(" ")); + print(tr(gettext("Lanzando el comando: "))+string); m_output->setTextColor(QColor(Qt::black)); startProgressBar(); } @@ -484,3 +478,15 @@ QString MainWindow::readSpeed() { return QString(""); } } + +// Show an error box with timeout +void MainWindow::showErrorMessage(QString text) +{ + QMessageBox* msgBox=new QMessageBox(); + msgBox->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint); + msgBox->setWindowTitle(gettext("ERROR")); + msgBox->setIcon(QMessageBox::Warning); + msgBox->setText(text); + msgBox->show(); + QTimer::singleShot(5000, msgBox, SLOT(close())); +} diff --git a/client/browser/src/mainwindow.h b/client/browser/src/mainwindow.h index e4e02fa3..3e12d12b 100644 --- a/client/browser/src/mainwindow.h +++ b/client/browser/src/mainwindow.h @@ -67,7 +67,7 @@ class MainWindow : public QMainWindow void finishProgressBar(); void executeCommand(QString &string); QString readSpeed(); - + void showErrorMessage(QString string); protected: QWebView *m_web; diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib index 0e7f51ef..bda02951 100755 --- a/client/engine/Cache.lib +++ b/client/engine/Cache.lib @@ -4,7 +4,7 @@ #@brief Librería o clase Cache #@class Cache #@brief Funciones para gestión de la caché local de disco. -#@version 1.1.0 +#@version 1.1.1 #@warning License: GNU GPLv3+ #*/ @@ -44,7 +44,8 @@ function ogCreateCache () { # Variables locales. -local FINDCACHE IOSIZE NDSK SIZECACHE PART DISK START END ENDPREVPART SIZE MINSIZE MAXSIZE PTTYPE ID TMPFILE +local FINDCACHE IOSIZE NDSK SIZECACHE PART DISK START END ENDPREVPART SIZE MINSIZE MAXSIZE +local PTTYPE ID TMPFILE NVME_PREFIX # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME [int_ndisk [int_npart]] int_partsize" \ @@ -81,6 +82,14 @@ esac TMPFILE=/tmp/sfdisk$$ DISK=$(ogDiskToDev $NDSK) || return $? + + # PATCH Para discos nvme la particion debe ser p1, p2, etc...en lugar de 1,2, sino falla sfdisk +NVME_PREFIX="" +if [[ $DISK == *"nvme"* ]]; then + NVME_PREFIX="p" +fi + + END=$[$(ogGetLastSector $NDSK 2>/dev/null)] # Sector final del disco. SIZE=$[$SIZECACHE*2] # Tamaño en sectores de 512 B. # Inicio partición cache según el disco tenga sectores de 4k o menores @@ -127,7 +136,7 @@ case "$(ogGetPartitionTableType $NDSK)" in # Salvamos la configuración de las particiones e incluimos la cache. trap "rm -f $TMPFILE" 1 2 3 9 15 sfdisk --dump $DISK | grep -v $DISK$PART > $TMPFILE - echo "$DISK$PART : start= $START, size= $SIZE, Id=$ID" >> $TMPFILE + echo "$DISK$NVME_PREFIX$PART : start= $START, size= $SIZE, Id=$ID" >> $TMPFILE # Ordenamos las líneas de los dispositivos UNIT=$(grep unit $TMPFILE) grep ^/dev $TMPFILE|sort -o $TMPFILE diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib index 06744bd9..732fb2e5 100755 --- a/client/engine/Disk.lib +++ b/client/engine/Disk.lib @@ -4,7 +4,7 @@ #@brief Librería o clase Disk #@class Disk #@brief Funciones para gestión de discos y particiones. -#@version 1.1.0 +#@version 1.1.1 #@warning License: GNU GPLv3+ #*/ @@ -47,7 +47,8 @@ timeout -k 5s -s KILL 3s $(which parted) "$@" function ogCreatePartitions () { # Variables locales. -local ND DISK PTTYPE PART SECTORS START SIZE TYPE CACHEPART IODISCO IOSIZE CACHESIZE EXTSTART EXTSIZE tmpsfdisk +local ND DISK PTTYPE PART SECTORS START SIZE TYPE CACHEPART IODISCO IOSIZE CACHESIZE +local EXTSTART EXTSIZE NVME_PREFIX tmpsfdisk # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk str_parttype:int_partsize ..." \ @@ -94,12 +95,18 @@ trap "rm -f $tmpsfdisk" 1 2 3 9 15 echo "unit: sectors" >$tmpsfdisk echo >>$tmpsfdisk +NVME_PREFIX="" +if [[ $DISK == *"nvme"* ]]; then + NVME_PREFIX="p" +fi + + # Generar fichero de entrada para "sfdisk" con las particiones. shift while [ $# -gt 0 ]; do # Conservar los datos de la partición de caché. if [ "$ND $PART" == "$CACHEPART" -a -n "$CACHESIZE" ]; then - echo "$DISK$PART : start=$[SECTORS+1], size=$CACHESIZE, Id=ca" >>$tmpsfdisk + echo "$DISK$NVME_PREFIX$PART : start=$[SECTORS+1], size=$CACHESIZE, Id=ca" >>$tmpsfdisk PART=$[PART+1] fi # Leer formato de cada parámetro - Tipo:Tamaño @@ -125,7 +132,7 @@ while [ $# -gt 0 ]; do SECTORS=$[EXTSTART+EXTSIZE] fi # Generar datos para la partición. - echo "$DISK$PART : start=$START, size=$SIZE, Id=$ID" >>$tmpsfdisk + echo "$DISK$NVME_PREFIX$PART : start=$START, size=$SIZE, Id=$ID" >>$tmpsfdisk # Error si se supera el nº total de sectores. START=$[START+SIZE] if [ "$IOSIZE" == "4096" -a $PART -gt 4 ]; then @@ -138,9 +145,9 @@ done # Si no se indican las 4 particiones primarias, definirlas como vacías, conservando la partición de caché. while [ $PART -le 4 ]; do if [ "$ND $PART" == "$CACHEPART" -a -n "$CACHESIZE" ]; then - echo "$DISK$PART : start=$[SECTORS+1], size=$CACHESIZE, Id=ca" >>$tmpsfdisk + echo "$DISK$NVME_PREFIX$PART : start=$[SECTORS+1], size=$CACHESIZE, Id=ca" >>$tmpsfdisk else - echo "$DISK$PART : start=0, size=0, Id=0" >>$tmpsfdisk + echo "$DISK$NVME_PREFIX$PART : start=0, size=0, Id=0" >>$tmpsfdisk fi PART=$[PART+1] done @@ -258,7 +265,7 @@ ogCreatePartitionTable $ND # Definir particiones y notificar al kernel. # Borramos primero las particiones y luego creamos las nuevas sgdisk $DELOPTIONS $OPTIONS $DISK 2>/dev/null && partprobe $DISK -[ -n "$CACHESIZE" ] && ogMountCache 2>/dev/null +[ -n "$CACHESIZE" ] && ogMountCache 2>/dev/null || return 0 } @@ -396,7 +403,7 @@ esac function ogDevToDisk () { # Variables locales. -local CACHEFILE DEV PART d n +local CACHEFILE DEV PART NVME_PREFIX d n # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME path_device | LABEL=str_label | UUID=str_uuid" \ @@ -431,7 +438,13 @@ fi # Si no se encuentra, procesa todos los discos para devolver su nº de orden y de partición. n=1 for d in $(ogDiskToDev); do - [ -n "$(echo $DEV | grep $d)" ] && echo "$n ${DEV#$d}" && return +NVME_PREFIX="" +if [[ $d == *"nvme"* ]]; then + NVME_PREFIX="p" +fi + + + [ -n "$(echo $DEV | grep $d)" ] && echo "$n ${DEV#$d$NVME_PREFIX}" && return n=$[n+1] done ogRaiseError $OG_ERR_NOTFOUND "$1" diff --git a/client/shared/bin/browser b/client/shared/bin/browser Binary files differindex 4370974f..5f647a2b 100755 --- a/client/shared/bin/browser +++ b/client/shared/bin/browser diff --git a/client/shared/lib/locale/ca/LC_MESSAGES/browser.mo b/client/shared/lib/locale/ca/LC_MESSAGES/browser.mo Binary files differindex eda51ffb..f88e6334 100644 --- a/client/shared/lib/locale/ca/LC_MESSAGES/browser.mo +++ b/client/shared/lib/locale/ca/LC_MESSAGES/browser.mo diff --git a/client/shared/lib/locale/en/LC_MESSAGES/browser.mo b/client/shared/lib/locale/en/LC_MESSAGES/browser.mo Binary files differindex 9ac0ebbe..c5e4376b 100644 --- a/client/shared/lib/locale/en/LC_MESSAGES/browser.mo +++ b/client/shared/lib/locale/en/LC_MESSAGES/browser.mo diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs index 4b7ec6f7..5e02ec4c 100755 --- a/client/shared/scripts/configureOs +++ b/client/shared/scripts/configureOs @@ -88,6 +88,10 @@ case "$OSTYPE" in [ -n "$(find $MNTDIR/usr/sbin $MNTDIR/sbin $MNTDIR/usr/local/sbin -name ogAdmLnxClient -print)" ] && ogUninstallLinuxClient $1 $2 # Configurar nuevo agente OGAgent. ogConfigureOgagent $1 $2 + ## Modificar el nombre del equipo + echo "Asignar nombre Linux \"$HOST\"." + ETC=$(ogGetPath $1 $2 /etc) + [ -d "$ETC" ] && echo "$HOST" >$ETC/hostname 2>/dev/null ;; MacOS) # Postconfiguración de Mac OS X. # Fichero indicador de activación de postconfiguración. diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage index 824da2af..b6696443 100755 --- a/client/shared/scripts/deployImage +++ b/client/shared/scripts/deployImage @@ -119,6 +119,8 @@ case "$MODE" in # Si protocolo es torrent|torrent-cache o multicast|multicast-cache TORRENT|TORRENT-CACHE|MULTICAST|MULTICAST-CACHE|UNICAST|UNICAST-CACHE) + # Eliminamos CACHE o DIRECT + PROTO=${PROTO%%-*} ogEcho log session "[2] updateCache "$REPO" \"/$IMGNAME.img\" $PROTO $PROTOOPT" TIME2=$SECONDS updateCache "$REPO" "/$IMGNAME.img" "$PROTO" "$PROTOOPT" diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt index f04388d7..d40e0f7d 100644 --- a/doc/CHANGELOG.es.txt +++ b/doc/CHANGELOG.es.txt @@ -16,9 +16,15 @@ vado Tickets resueltos en módulo OpenGnsys Client: #847 La ISO del ogLive debe de utilzar la revisión de Git y no de SVN +#887 Browser: mostrar aviso si falla la ejecución de un comando Tickets resueltos en módulo OpenGnsys Server: +#580 Correcciones del Core de OpenGnsys: ogAdmServer (corrección) #856 Mejoras en setserveraddr +#881 Personalizar prioridad de ejecución de proceso de torrents +#883 Añadir soporte para syslog a ogAdmServer (mejora) +#884 No ejecutar strip al compilar ogAdmserver +#885 Eliminar ogAdmBoot Tickets resueltos en módulo OpenGnsys Repository Server: #873 Script para importar imagen de otro repositorio @@ -56,6 +62,7 @@ Tickets resueltos en módulo OpenGnsys Server: Tickets resueltos en módulo OpenGnsys Repository Server: #850 Problema con repositorio recién instalado (corrección) +#882 deleteimage no borra directorio (corrección) Tickets resueltos en módulo OpenGnsys Web Admin Console: #835 Problemas al listar plantillas en Nerboot Avanzado (corrección) @@ -65,6 +72,9 @@ Tickets resueltos en módulo OpenGnsys Web Admin Console: Tickets resueltos en módulo OpenGnsys Installer: #876 Problemas al actualizar desde Subversion a Git (corrección) +#879 Función checkVersion de opengnsys_update.sh del tar.gz da error si se ejecuta sobre la misma versión de OpenGnsys (corrección) +#880 openGnsys_update.sh no deja la revisión, solo deja 1.1.0a (corrección) +#886 Actualización de la 1.0.6b a la 1.1.0 da errores a la hora de agregar ordenadores/aulas (no válido) Tickets genéricos resueltos: #839 Errores detectado en API REST para Remote PC (corrección) diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh index 883ef19e..f559552c 100755 --- a/installer/opengnsys_installer.sh +++ b/installer/opengnsys_installer.sh @@ -145,7 +145,6 @@ OPENGNSYS_DB_CREATION_FILE=opengnsys/admin/Database/${OPENGNSYS_DATABASE}.sql # - APACHEENABLEOG, APACHEOGSITE, - habilitar sitio web de OpenGnsys # - PHPFPMSERV - servicio PHP FastCGI Process Manager para Apache # - INETDSERV - servicio Inetd -# - FIREWALLSERV - servicio de cortabuegos IPTables/FirewallD # - DHCPSERV, DHCPCFGDIR - servicio y configuración de DHCP # - MYSQLSERV, TMPMYCNF - servicio MySQL y fichero temporal con credenciales de acceso # - MARIADBSERV - servicio MariaDB (sustituto de MySQL en algunas distribuciones) @@ -170,7 +169,7 @@ OSVERSION="${OSVERSION%%.*}" # Configuración según la distribución GNU/Linux (usar minúsculas). case "$OSDISTRIB" in ubuntu|debian|linuxmint) - DEPENDENCIES=( subversion apache2 php php-ldap php-fpm mysql-server php-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast shim-signed grub-efi-amd64-signed ) + DEPENDENCIES=( subversion apache2 php php-ldap php-fpm mysql-server php-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq udpcast libev-dev shim-signed grub-efi-amd64-signed ) UPDATEPKGLIST="apt-get update" INSTALLPKG="apt-get -y install --force-yes" CHECKPKG="dpkg -s \$package 2>/dev/null | grep Status | grep -qw install" @@ -207,7 +206,7 @@ case "$OSDISTRIB" in TFTPCFGDIR=/var/lib/tftpboot ;; fedora|centos) - DEPENDENCIES=( subversion httpd mod_ssl php-ldap php-fpm mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan procps-ng gettext moreutils jq net-tools udpcast shim-x64 grub2-efi-x64 grub2-efi-x64-modules http://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/$(arch)/RPMS.classic/netpipes-4.2-alt1.$(arch).rpm ) + DEPENDENCIES=( subversion httpd mod_ssl php-ldap php-fpm mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan procps-ng gettext moreutils jq net-tools udpcast libev-devel shim-x64 grub2-efi-x64 grub2-efi-x64-modules http://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/$(arch)/RPMS.classic/netpipes-4.2-alt1.$(arch).rpm ) [ "$OSDISTRIB" == "centos" ] && UPDATEPKGLIST="yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$OSVERSION.noarch.rpm http://rpms.remirepo.net/enterprise/remi-release-$OSVERSION.rpm" INSTALLEXTRADEPS=( 'pushd /tmp; wget -t3 http://ftp.acc.umu.se/mirror/bittornado/BitTornado-0.3.18.tar.gz && tar xvzf BitTornado-0.3.18.tar.gz && cd BitTornado-CVS && python setup.py install && ln -fs btlaunchmany.py /usr/bin/btlaunchmany && ln -fs bttrack.py /usr/bin/bttrack; popd' ) INSTALLPKG="yum install -y libstdc++ libstdc++.i686" @@ -232,11 +231,6 @@ case "$OSDISTRIB" in APACHEREWRITEMOD="sed -i '/rewrite/s/^#//' $APACHECFGDIR/../*.conf" DHCPSERV=dhcpd DHCPCFGDIR=/etc/dhcp - if firewall-cmd --state &>/dev/null; then - FIREWALLSERV=firewalld - else - FIREWALLSERV=iptables - fi INETDSERV=xinetd INETDCFGDIR=/etc/xinetd.d MYSQLSERV=mysqld @@ -268,13 +262,6 @@ local f # Configuraciones específicas para Samba y TFTP en Debian 6. [ -z "$SYSTEMD" -a ! -e /etc/init.d/$SAMBASERV ] && SAMBASERV=samba [ ! -e $TFTPCFGDIR ] && TFTPCFGDIR=/srv/tftp - -# Configuraciones específicas para SELinux permisivo en distintas versiones. -[ -f /selinux/enforce ] && echo 0 > /selinux/enforce -for f in /etc/sysconfig/selinux /etc/selinux/config; do - [ -f $f ] && perl -pi -e 's/SELINUX=enforcing/SELINUX=permissive/g' $f -done -selinuxenabled 2>/dev/null && setenforce 0 2>/dev/null } @@ -823,13 +810,7 @@ function downloadCode() # Comprobar si existe conexión. function checkNetworkConnection() { - echoAndLog "${FUNCNAME}(): Disabling Firewall: $FIREWALLSERV." - if [ -n "$FIREWALLSERV" ]; then - service=$FIREWALLSERV - $STOPSERVICE; $DISABLESERVICE - fi - - echoAndLog "${FUNCNAME}(): Checking OpenGnsys server conectivity." + echoAndLog "${FUNCNAME}(): Checking OpenGnsys server connectivity." OPENGNSYS_SERVER=${OPENGNSYS_SERVER:-"opengnsys.es"} if which wget &>/dev/null; then wget --spider -q $OPENGNSYS_SERVER @@ -1151,7 +1132,7 @@ function installWebConsoleApacheConf() echoAndLog "${FUNCNAME}(): configuring PHP-FPM" service=$PHPFPMSERV $ENABLESERVICE; $STARTSERVICE - sockfile=$(find /run/php -name "php*.sock" -type s -print 2>/dev/null) + sockfile=$(find /run/php -name "php*.sock" -type s -print 2>/dev/null | tail -1) # Activar módulos de Apache. $APACHEENABLEMODS @@ -1558,7 +1539,7 @@ function installationSummary() # de código o si no está incluida en el fichero de versión. if [ $REMOTE -eq 1 ] || [ -z "$(jq -r '.release' $VERSIONFILE)" ]; then # Revisión: rAñoMesDía.Gitcommit (8 caracteres de fecha y 7 primeros de commit). - REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | gsub("-"; "")[:8]) + "." + (.commit.sha[:7])') + REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | split("-") | join("")[:8]) + "." + (.commit.sha[:7])') jq ".release=$REVISION" $VERSIONFILE | sponge $VERSIONFILE fi VERSION="$(jq -r '[.project, .version, .codename, .release] | join(" ")' $VERSIONFILE 2>/dev/null)" @@ -1576,16 +1557,15 @@ function installationSummary() echoAndLog "Installed ogLive client(s): $(oglivecli list | awk '{print $2}')" echoAndLog "Samba configuration directory: $SAMBACFGDIR" echoAndLog "Web Console URL: $OPENGNSYS_CONSOLEURL" - echoAndLog "Web Console access data: specified in installer script" + echoAndLog "Web Console access data: entered by the user" if grep -q "^RUN_BTTRACK.*no" /etc/default/opengnsys; then echoAndLog "BitTorrent service is disabled." fi echo echoAndLog "Post-Installation Instructions:" echo "===============================" - echoAndLog "Firewall service has been disabled and SELinux mode set to" - echoAndLog " permissive during OpenGnsys installation. Please check" - echoAndLog " ${FIREWALLSERV:-firewall} and SELinux configuration, if needed." + echoAndLog "You can improve server security by configuring firewall and SELinux," + echoAndLog " running \"$INSTALL_TARGET/lib/security-config\" script as root." echoAndLog "It's strongly recommended to synchronize this server with an NTP server." echoAndLog "Review or edit all configuration files." echoAndLog "Insert DHCP configuration data and restart service." diff --git a/installer/opengnsys_makecompress.sh b/installer/opengnsys_makecompress.sh index ff267b1e..6b09deb5 100755 --- a/installer/opengnsys_makecompress.sh +++ b/installer/opengnsys_makecompress.sh @@ -20,13 +20,13 @@ for PROG in jq unzip; do fi done -# Variables +# Variables. BRANCH="devel" CODE_URL="https://codeload.github.com/opengnsys/OpenGnsys/zip/$BRANCH" API_URL="https://api.github.com/repos/opengnsys/OpenGnsys/branches/$BRANCH" -REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | gsub("-"; "")[:8]) + "." + (.commit.sha[:7])') +REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | split("-") | join("")[:8]) + "." + (.commit.sha[:7])') -# Descargar repositorio SVN +# Descargar del repositorio de código. cd /tmp rm -fr opengnsys curl "$CODE_URL" -o opengnsys.zip && unzip opengnsys.zip && mv "OpenGnsys-$BRANCH" opengnsys diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index a522434a..2fcd3be8 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -118,7 +118,9 @@ function autoConfigure() # Configuración según la distribución de Linux. if [ -f /etc/debian_version ]; then # Distribución basada en paquetes Deb. - DEPENDENCIES=( curl rsync btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast shim-signed grub-efi-amd64-signed php-fpm ) + DEPENDENCIES=( curl rsync btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq udpcast libev-dev shim-signed grub-efi-amd64-signed php-fpm ) + # Paquete correcto para realpath. + [ -z "$(apt-cache pkgnames realpath)" ] && DEPENDENCIES=( ${DEPENDENCIES[@]//realpath/coreutils} ) UPDATEPKGLIST="add-apt-repository -y ppa:ondrej/php; apt-get update" INSTALLPKGS="apt-get -y install" DELETEPKGS="apt-get -y purge" @@ -141,7 +143,7 @@ function autoConfigure() INETDCFGDIR=/etc/xinetd.d elif [ -f /etc/redhat-release ]; then # Distribución basada en paquetes rpm. - DEPENDENCIES=( curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq net-tools udpcast shim-x64 grub2-efi-x64 grub2-efi-x64-modules ) + DEPENDENCIES=( curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq net-tools udpcast libev-devel shim-x64 grub2-efi-x64 grub2-efi-x64-modules ) # Repositorios para PHP 7 en CentOS. [ "$OSDISTRIB" == "centos" ] && UPDATEPKGLIST="yum update -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$OSVERSION.noarch.rpm http://rpms.remirepo.net/enterprise/remi-release-$OSVERSION.rpm" INSTALLPKGS="yum install -y" @@ -468,7 +470,7 @@ function checkVersion() if [ $REMOTE -eq 1 ]; then NEWVERSION=$(curl -s $RAW_URL/doc/VERSION.json 2>/dev/null | jq -r '.version') else - NEWVERSION=$(jq -r '.version' $PROGRAMDIR/doc/VERSION.json 2>/dev/null) + NEWVERSION=$(jq -r '.version' $PROGRAMDIR/../doc/VERSION.json 2>/dev/null) fi [[ "$NEWVERSION" =~ pre ]] && PRE=1 @@ -569,7 +571,7 @@ function apacheConfiguration () else template=$WORKDIR/opengnsys/server/etc/apache.conf.tmpl fi - sockfile=$(find /run/php -name "php*.sock" -type s -print 2>/dev/null) + sockfile=$(find /run/php -name "php*.sock" -type s -print 2>/dev/null | tail -1) # Actualizar configuración de Apache a partir de fichero de plantilla. for config in $APACHECFGDIR/{,sites-available/}opengnsys.conf; do if [ -e $config ]; then @@ -887,6 +889,18 @@ function updateServerFiles() cp -a $WORKDIR/opengnsys/admin/Sources/Services/opengnsys.init /etc/init.d/opengnsys NEWFILES="$NEWFILES /etc/init.d/opengnsys" fi + if ! diff -q $WORKDIR/opengnsys/admin/Sources/Services/opengnsys.default /etc/default/opengnsys >/dev/null; then + echoAndLog "${FUNCNAME}(): updating new default file" + backupFile /etc/default/opengnsys + # Buscar si hay nuevos parámetros. + local var valor + while IFS="=" read -e var valor; do + [[ $var =~ ^# ]] || \ + grep -q "^$var=" /etc/default/opengnsys || \ + echo "$var=$valor" >> /etc/default/opengnsys + done < $WORKDIR/opengnsys/admin/Sources/Services/opengnsys.default + NEWFILES="$NEWFILES /etc/default/opengnsys" + fi if egrep -q "(UrlMsg=.*msgbrowser.php)|(UrlMenu=http://)" $INSTALL_TARGET/client/etc/ogAdmClient.cfg 2>/dev/null; then echoAndLog "${FUNCNAME}(): updating new client config file" backupFile $INSTALL_TARGET/client/etc/ogAdmClient.cfg @@ -993,7 +1007,7 @@ function updateClient() oglivecli convert fi # Comprobar si debe actualizarse el cliente. - SOURCELENGTH=$(curl -sI $SOURCEFILE 2>&1 | awk '/Content-Length:/ {print $2}') + SOURCELENGTH=$(curl -sI $SOURCEFILE 2>&1 | awk '/Content-Length:/ {gsub("\r", ""); print $2}') TARGETLENGTH=$(stat -c "%s" $TARGETFILE 2>/dev/null) [ -z $TARGETLENGTH ] && TARGETLENGTH=0 if [ "$SOURCELENGTH" != "$TARGETLENGTH" ]; then @@ -1065,8 +1079,14 @@ function updateSummary() # Actualizar fichero de versión y revisión. local VERSIONFILE REVISION VERSIONFILE="$INSTALL_TARGET/doc/VERSION.json" - # Revisión: rAñoMesDía.Gitcommit (8 caracteres de fecha y 7 primeros de commit). - REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | gsub("-"; "")[:8]) + "." + (.commit.sha[:7])') + # Obtener revisión. + if [ $REMOTE -eq 1 ]; then + # Revisión: rAñoMesDía.Gitcommit (8 caracteres de fecha y 7 primeros de commit). + REVISION=$(curl -s "$API_URL" | jq '"r" + (.commit.commit.committer.date | split("-") | join("")[:8]) + "." + (.commit.sha[:7])') + else + # Parámetro "release" del fichero JSON. + REVISION=$(jq -r '.release' $PROGRAMDIR/../doc/VERSION.json 2>/dev/null) + fi [ -f $VERSIONFILE ] || echo '{ "project": "OpenGnsys" }' > $VERSIONFILE jq ".release=$REVISION" $VERSIONFILE | sponge $VERSIONFILE VERSION="$(jq -r '[.project, .version, .codename, .release] | join(" ")' $VERSIONFILE 2>/dev/null)" @@ -1220,7 +1240,7 @@ checkFiles # Mostrar resumen de actualización. updateSummary -#rm -rf $WORKDIR +rm -rf $WORKDIR echoAndLog "OpenGnsys update finished at $(date)" popd diff --git a/installer/vagrant/Vagrantfile-1.0.6b-vbox b/installer/vagrant/Vagrantfile-1.0.6b-vbox index 2db25e1c..4317c654 100644 --- a/installer/vagrant/Vagrantfile-1.0.6b-vbox +++ b/installer/vagrant/Vagrantfile-1.0.6b-vbox @@ -42,7 +42,7 @@ fi # Install OpenGnsys and change server address. wget -q https://opengnsys.es/svn/tags/opengnsys-1.0.6b/installer/opengnsys_installer.sh -O - | bash || exit $? mv /opt/opengnsys/log/bash.log /opt/opengnsys/log/opengnsys_installer.log -echo y | /opt/opengnsys/bin/setserveraddr eth1 +echo y | /opt/opengnsys/bin/setserveraddr $(ip -o link show | tail -1 | cut -d: -f2) # Insert DHCP data. for ((i=#{NCLIENTS+10}; i>10; i--)); do sed -i "/^}$/ i host pc${i} { hardware ethernet #{MACPREFIX}:${i}; fixed-address #{NETPREFIX}.${i}; }" /etc/dhcp/dhcpd.conf diff --git a/installer/vagrant/Vagrantfile-devel-vbox b/installer/vagrant/Vagrantfile-devel-vbox index 7aac2c56..ee330e93 100644 --- a/installer/vagrant/Vagrantfile-devel-vbox +++ b/installer/vagrant/Vagrantfile-devel-vbox @@ -45,7 +45,7 @@ elif which wget &>/dev/null; then fi $DOWNLOAD -s https://raw.githubusercontent.com/opengnsys/OpenGnsys/devel/installer/opengnsys_installer.sh | bash || exit $? mv /opt/opengnsys/log/bash.log /opt/opengnsys/log/opengnsys_installer.log -echo y | /opt/opengnsys/bin/setserveraddr enp0s8 +echo y | /opt/opengnsys/bin/setserveraddr $(ip -o link show | tail -1 | cut -d: -f2) # Insert DHCP data. for ((i=#{NCLIENTS+10}; i>10; i--)); do sed -i "/^}$/ i host pc${i} { hardware ethernet #{MACPREFIX}:${i}; fixed-address #{NETPREFIX}.${i}; }" /etc/dhcp/dhcpd.conf diff --git a/installer/vagrant/Vagrantfile-prod-vbox b/installer/vagrant/Vagrantfile-prod-vbox index adeccce7..5cfc94d5 100644 --- a/installer/vagrant/Vagrantfile-prod-vbox +++ b/installer/vagrant/Vagrantfile-prod-vbox @@ -45,7 +45,7 @@ elif which wget &>/dev/null; then fi $DOWNLOAD -s https://raw.githubusercontent.com/opengnsys/OpenGnsys/master/installer/opengnsys_installer.sh | bash || exit $? mv /opt/opengnsys/log/bash.log /opt/opengnsys/log/opengnsys_installer.log -echo y | /opt/opengnsys/bin/setserveraddr enp0s8 +echo y | /opt/opengnsys/bin/setserveraddr $(ip -o link show | tail -1 | cut -d: -f2) # Insert DHCP data. for ((i=#{NCLIENTS+10}; i>10; i--)); do sed -i "/^}$/ i host pc${i} { hardware ethernet #{MACPREFIX}:${i}; fixed-address #{NETPREFIX}.${i}; }" /etc/dhcp/dhcpd.conf diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage index 2da477e4..a683d541 100755 --- a/repoman/bin/deleteimage +++ b/repoman/bin/deleteimage @@ -15,7 +15,7 @@ #@version 1.0.6 - Detección automática del tipo de imagen. #@date 2014-10-29 #@author Ramón Gómez, ETSII Univ. Sevilla -#@version 1.1.0 - Aunque no exista imagen permite recuperar la copia. +#@version 1.1.0 - Aunque no exista imagen permite recuperar la copia. #@date 2016-10-14 #@author Irina Gómez, ETSII Univ. Sevilla #*/ ## @@ -60,7 +60,7 @@ for IMG in "$OGIMG/$1.$IMGEXT" "$OGIMG/$1.$IMGEXT.$DIFFEXT" "$OGIMG/$1"; do if [ -r $IMG ] ; then IMGPATH=$IMG echo "Borrando imagen $IMGPATH" - rm -f $IMGPATH{,.sum,.full.sum,.torrent} + rm -fr $IMGPATH{,.sum,.full.sum,.torrent} break fi # Compruebo si existe copia de seguridad diff --git a/repoman/bin/importimage b/repoman/bin/importimage index 3a5a7bf3..58a3d8a9 100755 --- a/repoman/bin/importimage +++ b/repoman/bin/importimage @@ -9,7 +9,7 @@ #@warning Program will request the repository REST token. #@version 1.1.1 - Initial version #@author Ramón M. Gómez, ETSII Universidad de Sevilla -#@date 2017-10-08 +#@date 2018-10-08 #*/ @@ -17,11 +17,14 @@ PROG="$(basename "$0")" OPENGNSYS="/opt/opengnsys" REPODIR="$OPENGNSYS/images" +REPOCONF="$OPENGNSYS/etc/ogAdmRepo.cfg" SERVERCONF="$OPENGNSYS/etc/ogAdmServer.cfg" DEFAULTFILE="/etc/default/opengnsys" MYCNF=$(mktemp /tmp/.my.cnf.XXXXX) let BACKUP=0 source $DEFAULTFILE +source $REPOCONF &>/dev/null +[ "$RUN_OGADMSERVER" == "yes" ] && source $SERVERCONF &>/dev/null # Functions. source $OPENGNSYS/lib/ogfunctions.sh @@ -32,14 +35,14 @@ source $OPENGNSYS/lib/ogfunctions.sh # Error control. [ "$USER" == "root" ] || raiseError access "Need to be root." [ "$RUN_OGADMREPO" == "yes" ] || raiseError access "This server is not defined as image repository." -[ -w $REPODIR ] || raiseError access "Cannot write in local repository." +[ -w "$REPODIR" ] || raiseError access "Cannot write in local repository." +[ -n "$IPlocal" ] || raiseError access "Cannot read repository configuration file." case $# in 2) USERNAME="$SUDO_USER"; REPO="$1"; IMAGE="$2" ;; 3) USERNAME="$1"; REPO="$2"; IMAGE="$3" ;; *) [ "$*" == "help" ] && help || raiseError usage esac -source $SERVERCONF &>/dev/null -[ "${REPO,,}" == "${HOSTNAME,,}" ] || [ "${REPO,,}" == "localhost" ] || [ "${REPO}" == "127.0.0.1" ] || [ "${REPO,,}" == "${IPlocal,,}}" ] && raiseError access "Cannot import from local repository." +[ "${REPO,,}" == "${HOSTNAME,,}" ] || [ "${REPO,,}" == "localhost" ] || [[ ${REPO} =~ ^127\. ]] || [ "${REPO,,}" == "${IPlocal,,}" ] && raiseError access "Cannot import from local repository." # Fetching image info from the repository. read -rp "Enter repository API token: " APITOKEN @@ -93,10 +96,13 @@ fi scp "$USERNAME@$REPO:$IMAGEPATH" $REPODIR ERRCODE=$? if [ $ERRCODE -eq 0 ]; then + # Cheking image size. + DOWNLOADSIZE=$(stat -c "%s" "$IMAGEPATH") + [ $IMAGESIZE -ne $DOWNLOADSIZE ] && echo "Warning: image sizes differ: source=$IMAGESIZE, target=$DOWNLOADSIZE." # Storing creation info. jq -r '.clonator+":"+.compressor+":"+.filesystem+":"+(.datasize|tostring)+":"' <<<"$IMAGEINFO" > "$IMAGEPATH.info" # Updating the database when the repo is also configured as Administration Server. - if [ "$RUN_OGADMREPO" == "yes" ]; then + if [ "$RUN_OGADMSERVER" == "yes" ]; then # Creating credentials file. cat << EOT > $MYCNF [client] @@ -122,11 +128,10 @@ EOT else # Choose image OU. echo "Choose Organization Unit:" - for ((i=0; i<${#OUS[@]}; i++)); do - echo " $i: ${OUS[i]#* }" + PS3="Enter number: " + select opt in "${OUS[@]#* }"; do + [ -n "$opt" ] && let OUID="${OUS[REPLY-1]%% *}" && break done - read -rp "Enter number (0 by default): " ANSWER - let OUID="${OUS[ANSWER]%% *}" 2>/dev/null || let OUID="${OUS[0]%% *}" fi # Creating a new image associated with an empty software profile. mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \ @@ -146,9 +151,6 @@ EOT echo "Warning: database cannot be updated." fi fi - # Cheking image size. - DOWNLOADSIZE=$(stat -c "%s" "$IMAGEPATH") - [ $IMAGESIZE -ne $DOWNLOADSIZE ] && echo "Warning: image sizes differ: source=$IMAGESIZE, target=$DOWNLOADSIZE." else # On download error, trying to recover backup. raiseError download "$USERNAME@$REPO:$IMAGEPATH" diff --git a/repoman/bin/torrent-creator b/repoman/bin/torrent-creator index 958683ed..cfca393e 100755 --- a/repoman/bin/torrent-creator +++ b/repoman/bin/torrent-creator @@ -15,6 +15,10 @@ PATH=$PATH:$OPENGNSYS/bin OGIMG="$OPENGNSYS/images" REPOCFG="$OPENGNSYS/etc/ogAdmRepo.cfg" LOGFILE="$OPENGNSYS/log/$PROG.log" +DEFAULTFILE=/etc/default/opengnsys +source $DEFAULTFILE +# No hacer nada si no está definido como repositorio. +[ "$RUN_OGADMREPO" == "yes" ] || exit 0 # Error si no está bien configurado el repositorio de imágenes. [ -d $OGIMG -a -f $REPOCFG ] || exit 1 source $REPOCFG @@ -52,7 +56,7 @@ for IMG in *.{img,pgz,diff,dsk} */*.{img,pgz,diff,dsk} ; do # Datasum completo para transferencias torrent DATAFULLSUM=$(md5sum -b "$IMG"| cut -f1 -d" ") echo $DATAFULLSUM > "$SUMFULLFILE" - nice -8 ctorrent -t "$IMG" -u $TRACKERURL -s "$TORRENT" -c $DATAFULLSUM -l 4194304 2>/dev/null + nice -n ${BTSEEDER_PRIORITY:-0} ctorrent -t "$IMG" -u $TRACKERURL -s "$TORRENT" -c $DATAFULLSUM -l 4194304 2>/dev/null rm -f "$LOCKFILE" if [ -f "$TORRENT" ]; then echo "`date` : Fin creación de fichero $TORRENT" >> $LOGFILE diff --git a/server/bin/getRepoIface b/server/bin/getRepoIface new file mode 100755 index 00000000..2ce208be --- /dev/null +++ b/server/bin/getRepoIface @@ -0,0 +1,9 @@ +#!/bin/bash + +# This script takes the IPlocal variable of the repository +# and returns the system interface +# Alfredo Luque <aluque@soleta.eu> + +source /opt/opengnsys/etc/ogAdmRepo.cfg + +ip addr show | grep $IPlocal | cut -f2 | awk '{ print $NF }' diff --git a/server/bin/oglivecli b/server/bin/oglivecli index 451c3c12..e6f8575b 100755 --- a/server/bin/oglivecli +++ b/server/bin/oglivecli @@ -268,7 +268,7 @@ function download() { echo "Available downloads (+ = installed, * = full compatibility):" for i in $(seq 1 $NISOS); do [ -e $DOWNLOADDIR/${OGLIVE[i-1]} ] && OGLIVE[i-1]="(+) ${OGLIVE[i-1]}" - ISOREL=${OGLIVE[i-1]##*-r}; ISOREL=${ISOREL%.*} + ISOREL=${OGLIVE[i-1]##*-r}; ISOREL=${ISOREL%%.*} [ $ISOREL -ge $MINREL ] && OGLIVE[i-1]="(*) ${OGLIVE[i-1]}" done select opt in "${OGLIVE[@]}"; do diff --git a/server/lib/security-config b/server/lib/security-config index 11961758..76870b12 100755 --- a/server/lib/security-config +++ b/server/lib/security-config @@ -23,13 +23,13 @@ if which ufw &>/dev/null; then echo "Configuring UFW." # Adding active services. ufw allow "Apache Secure" + ufw allow from 127.0.0.1/8 to any port mysql proto tcp # MySQL from the loopback ufw allow OpenSSH ufw allow Samba - ufw allow mysql ufw allow rsync ufw allow tftp ufw allow 67,68/udp # DHCP - ufw allow 2008/tcp # OpenGnsys service + ufw allow 2008,2009,2011/tcp # OpenGnsys services ufw allow 6881:6999/udp # BitTorrent ufw allow 9000/tcp # PHP-FPM ufw allow 9000:9051/udp # Multicast @@ -42,9 +42,9 @@ elif which firewall-cmd &>/dev/null; then python -c " import firewall.core.io.service as ios s=ios.Service() -s.short = 'OpenGnsys Server' -s.name = 'ogAdmServer' -s.ports = [('2008', 'tcp')] +s.short = 'OpenGnsys Services' +s.name = 'opengnsys' +s.ports = [('2008', 'tcp'), ('2009', 'tcp'), ('2011', 'tcp')] ios.service_writer(s, '/etc/firewalld/services') s.name = 'php-fpm' s.ports = [('9000', 'tcp')] @@ -52,9 +52,9 @@ ios.service_writer(s, '/etc/firewalld/services')" # Adding active services. firewall-cmd --permanent --add-service=dhcp firewall-cmd --permanent --add-service=https - firewall-cmd --permanent --add-service=php-fpm firewall-cmd --permanent --add-service=mysql --zone internal - firewall-cmd --permanent --add-service=ogAdmServer + firewall-cmd --permanent --add-service=opengnsys + firewall-cmd --permanent --add-service=php-fpm # Ubuntu 14.04 does not define "rsyncd" service. firewall-cmd --permanent --add-service=rsyncd || \ firewall-cmd --permanent --add-port=873/tcp @@ -73,16 +73,20 @@ fi # SELinux configuration. if which setsebool &>/dev/null; then - echo "Configuring SELinux." - # Configuring Apache. - setsebool -P httpd_can_connect_ldap on - semanage fcontext -at httpd_sys_content_t "$OPENGNSYS/www(/.*)?" - # Configuring Samba. - setsebool -P samba_export_all_ro=1 samba_export_all_rw=1 - semanage fcontext -at samba_share_t "$OPENGNSYS/client(/.*)?" - semanage fcontext -at samba_share_t "$OPENGNSYS/images(/.*)?" - # Applying configuration. - restorecon -R $OPENGNSYS + if selinuxenabled; then + echo "Configuring SELinux." + # Configuring Apache. + setsebool -P httpd_can_connect_ldap on + semanage fcontext -at httpd_sys_content_t "$OPENGNSYS/www(/.*)?" + # Configuring Samba. + setsebool -P samba_export_all_ro=1 samba_export_all_rw=1 + semanage fcontext -at samba_share_t "$OPENGNSYS/client(/.*)?" + semanage fcontext -at samba_share_t "$OPENGNSYS/images(/.*)?" + # Applying configuration. + restorecon -R $OPENGNSYS + else + echo "$PROG: Warning: SELinux is disabled, it won't be configured." + fi else echo "$PROG: Warning: SELinux won't be configured (policycoreutils is not installed)." fi |