summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-06-09 11:49:29 +0000
committeralonso <alonso@us.es>2010-06-09 11:49:29 +0000
commit74c04a04268d7e40d6f18c76da4a043b79e7f4f4 (patch)
tree81ceae1adfc618b7a095e61dcfb091582fbb81db /admin
parent73cfa0a2a5d3c4bcad1411d4eb2b49653a625398 (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.c3
-rw-r--r--admin/Services/ogAdmServer/sources/ogAdmServer.cpp56
-rw-r--r--admin/Services/ogAdmServer/sources/ogAdmServer.h2
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 );