summaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2017-07-03 18:34:47 +0000
committerramon <ramongomez@us.es>2017-07-03 18:34:47 +0000
commit6ee505f3dc8919bc99ef4454641c7cc85f5ac1a2 (patch)
treed062834e63cafd8257809be41ef0f2d2dad3b550 /sources
parent466106d63815ab56bccf039f798bfce3fb134d0e (diff)
#730 #738: Si se reinicia el servicio ogAdmServer, se reutiliza el pureto en Linux 3.9+; se actualiza la configuración del cliente tras el comando Restaurar Imagen (falta aplicar cambios en imagen básica).
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5398 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'sources')
-rw-r--r--sources/ogAdmServer.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/sources/ogAdmServer.cpp b/sources/ogAdmServer.cpp
index 9be1c8c..6b6b7d7 100644
--- a/sources/ogAdmServer.cpp
+++ b/sources/ogAdmServer.cpp
@@ -2387,7 +2387,7 @@ BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama)
Database db;
Table tbl;
BOOLEAN res;
- char *iph, *ido, *idi, *dsk, *par, *ifs;
+ char *iph, *ido, *idi, *dsk, *par, *ifs, *cfg;
char modulo[] = "RESPUESTA_RestaurarImagen()";
if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
@@ -2412,11 +2412,15 @@ BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama)
dsk = copiaParametro("dsk",ptrTrama); // Número de disco
par = copiaParametro("par",ptrTrama); // Número de partición
ifs = copiaParametro("ifs",ptrTrama); // Identificador del perfil software contenido
-
+ cfg = copiaParametro("cfg",ptrTrama); // Configuración de discos
+ if(cfg){
+ actualizaConfiguracion(db, tbl, cfg, atoi(ido)); // Actualiza la configuración del ordenador
+ liberaMemoria(cfg);
+ }
res=actualizaRestauracionImagen(db, tbl, idi, dsk, par, ido, ifs);
liberaMemoria(iph);
- liberaMemoria(ido);
+ liberaMemoria(ido);
liberaMemoria(idi);
liberaMemoria(par);
liberaMemoria(ifs);
@@ -2643,7 +2647,6 @@ BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama)
}
cfg = copiaParametro("cfg",ptrTrama); // Toma configuración de particiones
-
if(cfg){
actualizaConfiguracion(db, tbl, cfg, atoi(ido)); // Actualiza la configuración del ordenador
liberaMemoria(cfg);
@@ -3578,6 +3581,7 @@ int main(int argc, char *argv[]) {
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
@@ -3715,6 +3719,7 @@ int main(int argc, char *argv[]) {
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);
exit(EXIT_FAILURE);