summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/gestores/gestor_ejecutaracciones.php
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2018-05-17 13:54:59 +0200
committerRamón M. Gómez <ramongomez@us.es>2018-05-17 13:54:59 +0200
commitc870c844e42cbd68b4f277b3f6e686f4c69b8fc4 (patch)
treec5a99e1600cdb19847271015b8f64353647d6f4b /admin/WebConsole/gestores/gestor_ejecutaracciones.php
parent59ce41961ffbbaac3217a5ee03df018fefb1f3e1 (diff)
#834: Eliminar algunos espacios sobreantes y saltos de línea tipo CRLF.
Diffstat (limited to 'admin/WebConsole/gestores/gestor_ejecutaracciones.php')
-rw-r--r--admin/WebConsole/gestores/gestor_ejecutaracciones.php620
1 files changed, 310 insertions, 310 deletions
diff --git a/admin/WebConsole/gestores/gestor_ejecutaracciones.php b/admin/WebConsole/gestores/gestor_ejecutaracciones.php
index bf86d9e1..40672678 100644
--- a/admin/WebConsole/gestores/gestor_ejecutaracciones.php
+++ b/admin/WebConsole/gestores/gestor_ejecutaracciones.php
@@ -1,310 +1,310 @@
-<?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: Mayo-2005
-// Nombre del fichero: gestor_procedimientos.php
-// Descripción :
-// Gestiona la ejecución de procedimientos
-// *************************************************************************************************************************************************
-include_once("../includes/ctrlacc.php");
-include_once("../clases/AdoPhp.php");
-include_once("../clases/XmlPhp.php");
-include_once("../clases/ArbolVistaXML.php");
-include_once("../clases/SockHidra.php");
-include_once("../includes/CreaComando.php");
-include_once("../includes/constantes.php");
-include_once("../includes/comunes.php");
-include_once("../includes/RecopilaIpesMacs.php");
-//________________________________________________________________________________________________________
-
-$opcion=0; // Inicializa parametros
-
-$idprocedimiento=0;
-$idtarea=0;
-$ambito=0;
-$idambito=0;
-$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser
-
-if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
-if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
-if (isset($_POST["descriprocedimiento"])) $descriprocedimiento=$_POST["descriprocedimiento"];
-if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
-if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
-if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
-if (isset($_POST["descritarea"])) $descritarea=$_POST["descritarea"];
-
-if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
-if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"];
-if (isset($_GET["descriprocedimiento"]))$descriprocedimiento=$_GET["descriprocedimiento"];
-if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
-if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
-if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
-if (isset($_GET["descritarea"])) $descritarea=$_GET["descritarea"];
-
-if (isset($_GET["swc"])) $swc=$_GET["swc"]; // Switch que indica que la página la solicita un cliente a través del browser
-
-$cmd=CreaComando($cadenaconexion); // Crea objeto comando
-$resul=false;
-if ($cmd){
- $shidra=new SockHidra($servidorhidra,$hidraport);
- $cadenaid="";
- $cadenaip="";
- $cadenamac="";
- $sesion=0;
- $vez=0;
- if(opcion!=$EJECUCION_TAREA)
- RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
- if(opcion!=$EJECUCION_AUTOEXEC){
- //Creación parametros para inserción en tabla acciones
- $sesion=time();
- $cmd->CreaParametro("@tipoaccion",$opcion,1);
- $cmd->CreaParametro("@idtipoaccion",0,1);
- $cmd->CreaParametro("@descriaccion","",0);
- $cmd->CreaParametro("@idordenador",0,1);
- $cmd->CreaParametro("@ip","",0);
- $cmd->CreaParametro("@sesion",$sesion,1);
- $cmd->CreaParametro("@idcomando",0,1);
- $cmd->CreaParametro("@parametros","",0);
- $cmd->CreaParametro("@fechahorareg","",0);
- $cmd->CreaParametro("@fechahorafin","",0);
- $cmd->CreaParametro("@estado",$ACCION_INICIADA,1);
- $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,1);
- $cmd->CreaParametro("@descrinotificacion","",0);
- $cmd->CreaParametro("@idprocedimiento",0,1);
- $cmd->CreaParametro("@idtarea",0,1);
- $cmd->CreaParametro("@idcentro",$idcentro,1);
- $cmd->CreaParametro("@ambito",0,1);
- $cmd->CreaParametro("@idambito",0,1);
- $cmd->CreaParametro("@restrambito","",0);
- }
- switch($opcion){
- case $EJECUCION_AUTOEXEC:
- $resul=actualizaAutoexec($idprocedimiento);
- $literal="resultado_gestion_procedimiento";
- break;
- case $EJECUCION_PROCEDIMIENTO:
- $cmd->ParamSetValor("@idtipoaccion",$idprocedimiento);
- $cmd->ParamSetValor("@descriaccion",$descriprocedimiento);
- $resul=ejecucionProcedimiento($idprocedimiento,$ambito,$idambito);
- $literal="resultado_gestion_procedimiento";
- break;
- case $EJECUCION_TAREA:
- $cmd->ParamSetValor("@idtipoaccion",$idtarea);
- $cmd->ParamSetValor("@descriaccion",$descritarea);
- $cmd->ParamSetValor("@idtarea",$idtarea);
- $resul=ejecucionTarea($idtarea);
- $literal="resultado_ejecutar_tareas";
- break;
- }
- $cmd->Conexion->Cerrar();
-}
-if ($resul){
- if(empty($swc)){
- echo $literal."(1,'".$cmd->DescripUltimoError()."');".chr(13);
- }
- else{
- echo '<SCRIPT language="javascript">'.chr(13);
- echo 'alert("El item se ha ejecutado correctamente");'.chr(13);
- echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
- echo 'history.back();';
- echo '</SCRIPT>';
- }
-}
-else{
- if(empty($swc)){
- echo $literal."(0,'".$cmd->DescripUltimoError()."')";
- }
- else{
- echo '<SCRIPT language="javascript">'.chr(13);
- echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13);
- echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
- echo 'location.href=wurl;';
- echo '</SCRIPT>';
- }
-}
-//********************************************************************************************************
-//
-// Incorpora un procedimiento como autoexec
-//________________________________________________________________________________________________________
-function actualizaAutoexec($idprocedimiento)
-{
- global $cadenaid;
- global $cmd;
-
- $cmd->texto="UPDATE ordenadores SET idproautoexec=".$idprocedimiento." WHERE idordenador IN (".$cadenaid.")";
- $resul=$cmd->Ejecutar();
- return(resul);
-}
-//________________________________________recorreProcedimientos________________________________________________________________
-//
-// Ejecuta un procedimiento: lo registra en acciones y lo envía por la red
-//________________________________________________________________________________________________________
-function ejecucionProcedimiento($idprocedimiento,$ambito,$idambito)
-{
- return(recorreProcedimientos($idprocedimiento,$ambito,$idambito));
-}
-//________________________________________________________________________________________________________
-//
-// Ejecuta una tarea: la registra en acciones y la envía por la red
-//________________________________________________________________________________________________________
-function ejecucionTarea($idtarea)
-{
- return(recorreTareas($idtarea));
-}
-//________________________________________________________________________________________________________
-function recorreProcedimientos($idprocedimiento,$ambito,$idambito)
-{
- global $cmd;
- global $sesion;
-
- $cmd->texto="SELECT idcomando,procedimientoid,parametros
- FROM procedimientos_acciones
- WHERE idprocedimiento=".$idprocedimiento."
- ORDER BY orden";
-
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return(false); // Error al abrir recordset
- while (!$rs->EOF){
- $procedimientoid=$rs->campos["procedimientoid"];
- if($procedimientoid>0){ // Procedimiento recursivo
- if(!recorreProcedimientos($procedimientoid,$ambito,$idambito)){
- return(false);
- }
- }
- else{
- $parametros=$rs->campos["parametros"];
- $idcomando=$rs->campos["idcomando"];
- // Ticket 681: bucle infinito en procedimiento compuesto (J.M. Alonso).
- do{
- $nwsesion=time();
- }while($sesion==$nwsesion);
- $sesion=$nwsesion;
- $cmd->ParamSetValor("@sesion",$sesion);
- // Fin ticket 681.
- if(!insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito))
- return(false);
- }
- $rs->Siguiente();
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-function recorreTareas($idtarea)
-{
- global $cadenaid;
- global $cadenaip;
- global $cadenamac;
- global $cmd;
-
- $cmd->texto="SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,
- tareas.ambito,tareas.idambito,tareas.restrambito
- FROM tareas
- INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
- WHERE tareas_acciones.idtarea=".$idtarea."
- ORDER BY tareas_acciones.orden";
- //echo $cmd->texto;
- $rs=new Recordset;
- $rs->Comando=&$cmd;
- if (!$rs->Abrir()) return(false); // Error al abrir recordset
- while (!$rs->EOF){
- $tareaid=$rs->campos["tareaid"];
- if($tareaid>0){ // Tarea recursiva
- if(!recorreTareas($tareaid)){
- return(false);
- }
- }
- else{
- $ambito=$rs->campos["ambito"];
- $idambito=$rs->campos["idambito"];
- if($ambito==0 && $idambito==0){ // Ámbito restringido
- $idambito=$rs->campos["restrambito"];
- }
- RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
- $idprocedimiento=$rs->campos["idprocedimiento"];
- if(!recorreProcedimientos($idprocedimiento,$ambito,$idambito))
- return(false);
- }
- $rs->Siguiente();
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-//
-// Registra un procedimiento para un ambito concreto
-//________________________________________________________________________________________________________
-function insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito)
-{
- global $cadenaid;
- global $cadenaip;
- global $cmd;
- global $sesion;
- global $vez;
-
- if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
- $cmd->ParamSetValor("@restrambito",$idambito);
- $idambito=0;
- }
-
- $cmd->ParamSetValor("@idcomando",$idcomando);
- $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
- $cmd->ParamSetValor("@parametros",$parametros);
- $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
- $cmd->ParamSetValor("@ambito",$ambito);
- $cmd->ParamSetValor("@idambito",$idambito);
-
- if(strlen($cadenaip)==0) return(true);
-
- $auxID=explode(",",$cadenaid);
- $auxIP=explode(";",$cadenaip);
-
- for ($i=0;$i<sizeof($auxID);$i++){
- $cmd->ParamSetValor("@idordenador",$auxID[$i]);
- $cmd->ParamSetValor("@ip",$auxIP[$i]);
- $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idprocedimiento,idtarea,idcentro)
- VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idprocedimiento,@idtarea,@idcentro)";
- $resul=$cmd->Ejecutar();
- //echo $cmd->texto;
- if(!$resul) return(false);
-
- /* Sólo envía por la red el primer comando, el resto, si hubiera,
- lo encontrará el cliente a través de los comandos pendientes */
- if(empty($vez)){
- if(!enviaComando($parametros,$sesion)) return(false);
- $vez++;
- }
- }
- return(true);
-}
-//________________________________________________________________________________________________________
-//
-// Envia un procedimiento a un grupo de ordenadores a través de la red
-//________________________________________________________________________________________________________
-function enviaComando($parametros,$sesion)
-{
- global $cadenaid;
- global $cadenaip;
- global $cadenamac;
- global $servidorhidra;
- global $hidraport;
- global $LONCABECERA;
- global $shidra;
-
- // Envio al servidor
-
- $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
- $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
-
- if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
- $parametros.=$aplicacion;
- $parametros.=$acciones;
- $shidra->envia_comando($parametros);
- $trama=$shidra->recibe_respuesta();
- $shidra->desconectar();
- }
- return(true);
-}
-?>
-
+<?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: Mayo-2005
+// Nombre del fichero: gestor_procedimientos.php
+// Descripción :
+// Gestiona la ejecución de procedimientos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/RecopilaIpesMacs.php");
+//________________________________________________________________________________________________________
+
+$opcion=0; // Inicializa parametros
+
+$idprocedimiento=0;
+$idtarea=0;
+$ambito=0;
+$idambito=0;
+$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
+if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
+if (isset($_POST["descriprocedimiento"])) $descriprocedimiento=$_POST["descriprocedimiento"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
+if (isset($_POST["descritarea"])) $descritarea=$_POST["descritarea"];
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
+if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"];
+if (isset($_GET["descriprocedimiento"]))$descriprocedimiento=$_GET["descriprocedimiento"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
+if (isset($_GET["descritarea"])) $descritarea=$_GET["descritarea"];
+
+if (isset($_GET["swc"])) $swc=$_GET["swc"]; // Switch que indica que la página la solicita un cliente a través del browser
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ $sesion=0;
+ $vez=0;
+ if(opcion!=$EJECUCION_TAREA)
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
+ if(opcion!=$EJECUCION_AUTOEXEC){
+ //Creación parametros para inserción en tabla acciones
+ $sesion=time();
+ $cmd->CreaParametro("@tipoaccion",$opcion,1);
+ $cmd->CreaParametro("@idtipoaccion",0,1);
+ $cmd->CreaParametro("@descriaccion","",0);
+ $cmd->CreaParametro("@idordenador",0,1);
+ $cmd->CreaParametro("@ip","",0);
+ $cmd->CreaParametro("@sesion",$sesion,1);
+ $cmd->CreaParametro("@idcomando",0,1);
+ $cmd->CreaParametro("@parametros","",0);
+ $cmd->CreaParametro("@fechahorareg","",0);
+ $cmd->CreaParametro("@fechahorafin","",0);
+ $cmd->CreaParametro("@estado",$ACCION_INICIADA,1);
+ $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,1);
+ $cmd->CreaParametro("@descrinotificacion","",0);
+ $cmd->CreaParametro("@idprocedimiento",0,1);
+ $cmd->CreaParametro("@idtarea",0,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@ambito",0,1);
+ $cmd->CreaParametro("@idambito",0,1);
+ $cmd->CreaParametro("@restrambito","",0);
+ }
+ switch($opcion){
+ case $EJECUCION_AUTOEXEC:
+ $resul=actualizaAutoexec($idprocedimiento);
+ $literal="resultado_gestion_procedimiento";
+ break;
+ case $EJECUCION_PROCEDIMIENTO:
+ $cmd->ParamSetValor("@idtipoaccion",$idprocedimiento);
+ $cmd->ParamSetValor("@descriaccion",$descriprocedimiento);
+ $resul=ejecucionProcedimiento($idprocedimiento,$ambito,$idambito);
+ $literal="resultado_gestion_procedimiento";
+ break;
+ case $EJECUCION_TAREA:
+ $cmd->ParamSetValor("@idtipoaccion",$idtarea);
+ $cmd->ParamSetValor("@descriaccion",$descritarea);
+ $cmd->ParamSetValor("@idtarea",$idtarea);
+ $resul=ejecucionTarea($idtarea);
+ $literal="resultado_ejecutar_tareas";
+ break;
+ }
+ $cmd->Conexion->Cerrar();
+}
+if ($resul){
+ if(empty($swc)){
+ echo $literal."(1,'".$cmd->DescripUltimoError()."');".chr(13);
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("El item se ha ejecutado correctamente");'.chr(13);
+ echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
+ echo 'history.back();';
+ echo '</SCRIPT>';
+ }
+}
+else{
+ if(empty($swc)){
+ echo $literal."(0,'".$cmd->DescripUltimoError()."')";
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13);
+ echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
+ echo 'location.href=wurl;';
+ echo '</SCRIPT>';
+ }
+}
+//********************************************************************************************************
+//
+// Incorpora un procedimiento como autoexec
+//________________________________________________________________________________________________________
+function actualizaAutoexec($idprocedimiento)
+{
+ global $cadenaid;
+ global $cmd;
+
+ $cmd->texto="UPDATE ordenadores SET idproautoexec=".$idprocedimiento." WHERE idordenador IN (".$cadenaid.")";
+ $resul=$cmd->Ejecutar();
+ return(resul);
+}
+//________________________________________recorreProcedimientos________________________________________________________________
+//
+// Ejecuta un procedimiento: lo registra en acciones y lo envía por la red
+//________________________________________________________________________________________________________
+function ejecucionProcedimiento($idprocedimiento,$ambito,$idambito)
+{
+ return(recorreProcedimientos($idprocedimiento,$ambito,$idambito));
+}
+//________________________________________________________________________________________________________
+//
+// Ejecuta una tarea: la registra en acciones y la envía por la red
+//________________________________________________________________________________________________________
+function ejecucionTarea($idtarea)
+{
+ return(recorreTareas($idtarea));
+}
+//________________________________________________________________________________________________________
+function recorreProcedimientos($idprocedimiento,$ambito,$idambito)
+{
+ global $cmd;
+ global $sesion;
+
+ $cmd->texto="SELECT idcomando,procedimientoid,parametros
+ FROM procedimientos_acciones
+ WHERE idprocedimiento=".$idprocedimiento."
+ ORDER BY orden";
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ while (!$rs->EOF){
+ $procedimientoid=$rs->campos["procedimientoid"];
+ if($procedimientoid>0){ // Procedimiento recursivo
+ if(!recorreProcedimientos($procedimientoid,$ambito,$idambito)){
+ return(false);
+ }
+ }
+ else{
+ $parametros=$rs->campos["parametros"];
+ $idcomando=$rs->campos["idcomando"];
+ // Ticket 681: bucle infinito en procedimiento compuesto (J.M. Alonso).
+ do{
+ $nwsesion=time();
+ }while($sesion==$nwsesion);
+ $sesion=$nwsesion;
+ $cmd->ParamSetValor("@sesion",$sesion);
+ // Fin ticket 681.
+ if(!insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito))
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+function recorreTareas($idtarea)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ global $cmd;
+
+ $cmd->texto="SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,
+ tareas.ambito,tareas.idambito,tareas.restrambito
+ FROM tareas
+ INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
+ WHERE tareas_acciones.idtarea=".$idtarea."
+ ORDER BY tareas_acciones.orden";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ while (!$rs->EOF){
+ $tareaid=$rs->campos["tareaid"];
+ if($tareaid>0){ // Tarea recursiva
+ if(!recorreTareas($tareaid)){
+ return(false);
+ }
+ }
+ else{
+ $ambito=$rs->campos["ambito"];
+ $idambito=$rs->campos["idambito"];
+ if($ambito==0 && $idambito==0){ // Ámbito restringido
+ $idambito=$rs->campos["restrambito"];
+ }
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
+ $idprocedimiento=$rs->campos["idprocedimiento"];
+ if(!recorreProcedimientos($idprocedimiento,$ambito,$idambito))
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Registra un procedimiento para un ambito concreto
+//________________________________________________________________________________________________________
+function insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cmd;
+ global $sesion;
+ global $vez;
+
+ if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
+ $cmd->ParamSetValor("@restrambito",$idambito);
+ $idambito=0;
+ }
+
+ $cmd->ParamSetValor("@idcomando",$idcomando);
+ $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
+ $cmd->ParamSetValor("@parametros",$parametros);
+ $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
+ $cmd->ParamSetValor("@ambito",$ambito);
+ $cmd->ParamSetValor("@idambito",$idambito);
+
+ if(strlen($cadenaip)==0) return(true);
+
+ $auxID=explode(",",$cadenaid);
+ $auxIP=explode(";",$cadenaip);
+
+ for ($i=0;$i<sizeof($auxID);$i++){
+ $cmd->ParamSetValor("@idordenador",$auxID[$i]);
+ $cmd->ParamSetValor("@ip",$auxIP[$i]);
+ $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idprocedimiento,idtarea,idcentro)
+ VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idprocedimiento,@idtarea,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul) return(false);
+
+ /* Sólo envía por la red el primer comando, el resto, si hubiera,
+ lo encontrará el cliente a través de los comandos pendientes */
+ if(empty($vez)){
+ if(!enviaComando($parametros,$sesion)) return(false);
+ $vez++;
+ }
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Envia un procedimiento a un grupo de ordenadores a través de la red
+//________________________________________________________________________________________________________
+function enviaComando($parametros,$sesion)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ global $servidorhidra;
+ global $hidraport;
+ global $LONCABECERA;
+ global $shidra;
+
+ // Envio al servidor
+
+ $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
+ $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
+
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros.=$aplicacion;
+ $parametros.=$acciones;
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ }
+ return(true);
+}
+?>
+