diff options
author | alonso <alonso@us.es> | 2010-06-09 11:49:29 +0000 |
---|---|---|
committer | alonso <alonso@us.es> | 2010-06-09 11:49:29 +0000 |
commit | 74c04a04268d7e40d6f18c76da4a043b79e7f4f4 (patch) | |
tree | 81ceae1adfc618b7a095e61dcfb091582fbb81db /admin | |
parent | 73cfa0a2a5d3c4bcad1411d4eb2b49653a625398 (diff) |
git-svn-id: https://opengnsys.es/svn/trunk@1031 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin')
-rw-r--r-- | admin/Services/ogAdmClient/sources/ogAdmClient.c | 3 | ||||
-rw-r--r-- | admin/Services/ogAdmServer/sources/ogAdmServer.cpp | 56 | ||||
-rw-r--r-- | admin/Services/ogAdmServer/sources/ogAdmServer.h | 2 |
3 files changed, 56 insertions, 5 deletions
diff --git a/admin/Services/ogAdmClient/sources/ogAdmClient.c b/admin/Services/ogAdmClient/sources/ogAdmClient.c index d1139496..ea8b8aa6 100644 --- a/admin/Services/ogAdmClient/sources/ogAdmClient.c +++ b/admin/Services/ogAdmClient/sources/ogAdmClient.c @@ -1158,7 +1158,7 @@ int NoComandosPtes(){ int TomaIPlocal() { int herror; - + sprintf(cmdshell,"%s/admGetIpAddress",HIDRASCRIPTS); herror=EjecutarScript (cmdshell,NULL,IPlocal,true); RegistraLog(msglog,false); @@ -1623,6 +1623,7 @@ int RestaurarImagen(TRAMA*trama,TRAMA*nwtrama) lon+=sprintf(nwtrama->parametros+lon,"cfg=%s\r",parametroscfg); lon+=sprintf(nwtrama->parametros+lon,"idi=%s\r",widimagen); lon+=sprintf(nwtrama->parametros+lon,"par=%s\r",wparticion); + lon+=sprintf(nwtrama->parametros+lon,"ifs=%s\r",widperfilsoft); RespuestaEjecucionComando(trama,nwtrama,res); return(res); } diff --git a/admin/Services/ogAdmServer/sources/ogAdmServer.cpp b/admin/Services/ogAdmServer/sources/ogAdmServer.cpp index b76de0ce..68c8e45c 100644 --- a/admin/Services/ogAdmServer/sources/ogAdmServer.cpp +++ b/admin/Services/ogAdmServer/sources/ogAdmServer.cpp @@ -2922,7 +2922,7 @@ int RESPUESTA_CrearSoftwareIncremental(SOCKET s, char *parametros) { // ________________________________________________________________________________________________________ int RESPUESTA_RestaurarImagen(SOCKET s, char *parametros) { char ErrStr[200], gido[20]; - char *res, *der, *ids, *iph, *ido, *idi, *par, *cfg; + char *res, *der, *ids, *iph, *ido, *idi, *par, *ifs,*cfg; Database db; Table tbl; @@ -2940,6 +2940,7 @@ int RESPUESTA_RestaurarImagen(SOCKET s, char *parametros) { ido = toma_parametro("ido", parametros); // Toma identificador del ordenador cfg = toma_parametro("cfg", parametros); // Toma configuracin par = toma_parametro("par", parametros); // particion + ifs = toma_parametro("ifs", parametros); // Identificador del perfil software idi = toma_parametro("idi", parametros); // identificador de la imagen strcpy(gido, ido); // Guarda el identificador del ordenador @@ -2956,6 +2957,9 @@ int RESPUESTA_RestaurarImagen(SOCKET s, char *parametros) { return (false); // Erro al actualiza la configuracin if (!Actualiza_ordenador_imagen(par, idi, gido, db)) return (false); + if (Actualiza_ordenador_perfil(gido,par,ifs,db)) + return (false); + db.Close(); return (true); } @@ -2970,8 +2974,7 @@ int RESPUESTA_RestaurarImagen(SOCKET s, char *parametros) { // - ido: identificador del ordenador // - db: Conexión ADO operativa // ________________________________________________________________________________________________________ -int Actualiza_ordenador_imagen(char *par, const char *idi, char *ido, - Database db) { +int Actualiza_ordenador_imagen(char *par, const char *idi, char *ido,Database db) { char ErrStr[200], sqlstr[1000]; Table tbl; int idimagen, idimagenres; @@ -3026,6 +3029,53 @@ int Actualiza_ordenador_imagen(char *par, const char *idi, char *ido, return (true); } // ________________________________________________________________________________________________________ +// Función: Actualiza_ordenador_perfil +// +// Descripción: +// Esta función actualiza la tabla ordenador_perfilsof +// Parámetros: +// - par: partición +// - ido: identificador de la imagen ( 0 ninguna ) +// - ips: identificador del ordenador +// - db: Conexión ADO operativa +// ________________________________________________________________________________________________________ +int Actualiza_ordenador_perfil(char *ido,char *par,char *ifs,Database db) +{ + char ErrStr[200], sqlstr[1000]; + Table tbl; + int idperfilsoft; + + sprintf(sqlstr, + "SELECT idperfilsoft FROM ordenador_perfilsoft"\ + " WHERE idordenador = %s AND particion=%s",ido,par); + + if (!db.Execute(sqlstr, tbl)) { // Error al consultar + db.GetErrorErrStr(ErrStr); + return (false); + } + if (!tbl.ISEOF()) { // Existe registro + if (!tbl.Get("idperfilsoft", idperfilsoft)) { + tbl.GetErrorErrStr(ErrStr); // error al acceder al registro + return (false); + } + if (idperfilsoft != atoi(ifs)) { + sprintf(sqlstr, "Update ordenador_perfilsoft set idperfilsoft=%s WHERE idordenador=%s AND particion=%s",ifs, ido, par); + if (!db.Execute(sqlstr)) { // Error al actualizar + db.GetErrorErrStr(ErrStr); + return (false); + } + } + } + else{ // No existe el registro + sprintf(sqlstr, "INSERT INTO ordenador_perfilsoft (idordenador,particion,idperfilsoft) VALUES(%s,%s,%s)",ido, par, ifs); + if (!db.Execute(sqlstr)) { // Error al insertar + db.GetErrorErrStr(ErrStr); + return (false); + } + } + return (true); +} +// ________________________________________________________________________________________________________ // Función: RESPUESTA_ParticionaryFormatear // // Descripción: diff --git a/admin/Services/ogAdmServer/sources/ogAdmServer.h b/admin/Services/ogAdmServer/sources/ogAdmServer.h index 0f6156a9..87c78ff9 100644 --- a/admin/Services/ogAdmServer/sources/ogAdmServer.h +++ b/admin/Services/ogAdmServer/sources/ogAdmServer.h @@ -132,7 +132,7 @@ int RESPUESTA_TomaSoftware(SOCKET ,char *); int RESPUESTA_inclusionREPO(TRAMA*); int Actualiza_ordenador_imagen(char *,const char *,char *,Database); - +int Actualiza_ordenador_perfil(char *,char *, char*, Database); int busca_comandos(char* ,char*,char *,int *); int InsertaNotificaciones(int,int,int,char *,Database); int comprueba_resultados(int ,Database ); |