summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2013-03-20 18:37:10 +0000
committerramon <ramongomez@us.es>2013-03-20 18:37:10 +0000
commite538e62854c455159d593f18fa9c90c63875ae65 (patch)
tree95c4ca517b9130abdceac42417ec566f2efd34e4
parent2391e303dffd303858198cbba1ef68160187be1b (diff)
#555: Función {{{ogSetWindowsName}}} controla que no se sobrepase el tamaño máximo de nombre Netbios.
Se recupera el error {{{OG_ERR_OUTOFLIMIT}}} para valores fuera de rango. Se corrige una errata en el arranque para cargar, si existe, teclado del idioma. git-svn-id: https://opengnsys.es/svn/branches/version1.0@3705 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-xclient/engine/Boot.lib22
-rwxr-xr-xclient/shared/etc/init/default.sh2
-rwxr-xr-xclient/shared/etc/preinit/loadenviron.sh1
3 files changed, 16 insertions, 9 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index c5057537..38628809 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -4,7 +4,7 @@
#@brief Librería o clase Boot
#@class Boot
#@brief Funciones para arranque y post-configuración de sistemas de archivos.
-#@version 1.0.4
+#@version 1.0.5
#@warning License: GNU GPLv3+
#*/
@@ -201,18 +201,22 @@ awk 'BEGIN {cont=-1;}
#/**
-# ogSetWindowsName int_ndisk int_npartition str_name
+# ogSetWindowsName int_ndisk int_nfilesys str_name
#@brief Establece el nombre del equipo en el registro de Windows.
#@param int_ndisk nº de orden del disco
-#@param int_npartition nº de orden de la partición
+#@param int_nfilesys nº de orden del sistema de archivos
#@param str_name nombre asignado
#@return (nada)
-#@exception OG_ERR_FORMAT Formato incorrecto.
-#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
-#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
+#@exception OG_ERR_FORMAT Formato incorrecto.
+#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
+#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
+#@exception OG_ERR_OUTOFLIMIT Nombre Netbios con más de 15 caracteres.
#@version 0.9 - Adaptación a OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-24
+#@version 1.0.5 - Establecer restricción de tamaño de nombre Netbios.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2013-03-20
#*/ ##
function ogSetWindowsName ()
{
@@ -221,16 +225,18 @@ local PART MNTDIR NAME
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
- ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition str_name" \
+ ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_filesys str_name" \
"$FUNCNAME 1 1 PRACTICA-PC"
return
fi
# Error si no se reciben 3 parámetros.
[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+# Error si el nombre supera los 15 caracteres.
+[ ${#3} -le 15 ] || ogRaiseError $OG_ERR_OUTOFLIMIT "\"${3:0:15}...\"" || return $?
# Montar el sistema de archivos.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
NAME="$3"
# Modificar datos de los valores de registro.
diff --git a/client/shared/etc/init/default.sh b/client/shared/etc/init/default.sh
index d256ef9d..7d18def1 100755
--- a/client/shared/etc/init/default.sh
+++ b/client/shared/etc/init/default.sh
@@ -24,7 +24,7 @@ if [ -x "$OPENGNSYS/bin/ogAdmClient" ]; then
echo "${MSG_LAUNCHCLIENT:-.}"
[ $ogactiveadmin == "true" ] && boot="admin"
# Indicar fichero de teclado de Qt para el idioma especificado (tipo "es.qmap").
- [ -f /usr/local/etc/${LANG%_*}.qmap] && export QWS_KEYBOARD="TTY:keymap=/usr/local/etc/${LANG%_*}.qmap"
+ [ -f /usr/local/etc/${LANG%_*}.qmap ] && export QWS_KEYBOARD="TTY:keymap=/usr/local/etc/${LANG%_*}.qmap"
# Ejecutar servicio cliente.
$OPENGNSYS/bin/ogAdmClient -f $OPENGNSYS/etc/ogAdmClient.cfg -l $OGLOGFILE -d $LOGLEVEL
fi
diff --git a/client/shared/etc/preinit/loadenviron.sh b/client/shared/etc/preinit/loadenviron.sh
index 1aa248d4..78288fac 100755
--- a/client/shared/etc/preinit/loadenviron.sh
+++ b/client/shared/etc/preinit/loadenviron.sh
@@ -100,6 +100,7 @@ export OG_ERR_NOTCACHE=15 # No hay particion cache en cliente
export OG_ERR_CACHESIZE=16 # No hay espacio en la cache para almacenar fichero-imagen
export OG_ERR_REDUCEFS=17 # Error al reducir sistema archivos
export OG_ERR_EXTENDFS=18 # Error al expandir el sistema de archivos
+export OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido.
export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen