diff --git a/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php b/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php index 9d6fa3f125..0c129642ff 100644 --- a/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php +++ b/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php @@ -31,6 +31,7 @@ $ipAgent = db_get_value('direccion', 'tagente', 'id_agente', $idAgent); check_login (); $ip_target = (string) get_parameter ('ip_target', $ipAgent); +$use_agent = get_parameter ('use_agent'); $snmp_community = (string) get_parameter ('snmp_community', 'public'); $snmp_version = get_parameter('snmp_version', '1'); $snmp3_auth_user = get_parameter('snmp3_auth_user'); @@ -305,7 +306,13 @@ if ($create_modules) { $common_values['tcp_port'] = $tcp_port; } $common_values['snmp_community'] = $snmp_community; - $common_values['ip_target'] = $ip_target; + if($use_agent){ + $common_values['ip_target'] = 'auto'; + } + else{ + $common_values['ip_target'] = $ip_target; + } + $common_values['tcp_send'] = $snmp_version; if ($snmp_version == '3') { @@ -696,18 +703,22 @@ $table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, $table->data[0][2] = '' . __('Port') . ''; $table->data[0][3] = html_print_input_text ('tcp_port', $tcp_port, '', 5, 20, true); +$table->data[1][0] = '' . __('Use agent ip') . ''; +$table->data[1][1] = html_print_checkbox ('use_agent', 1, $use_agent, true); + $snmp_versions['1'] = 'v. 1'; $snmp_versions['2'] = 'v. 2'; $snmp_versions['2c'] = 'v. 2c'; $snmp_versions['3'] = 'v. 3'; -$table->data[1][0] = '' . __('SNMP community') . ''; -$table->data[1][1] = html_print_input_text ('snmp_community', $snmp_community, '', 15, 60, true); +$table->data[2][0] = '' . __('SNMP community') . ''; +$table->data[2][1] = html_print_input_text ('snmp_community', $snmp_community, '', 15, 60, true); -$table->data[1][2] = '' . __('SNMP version') . ''; -$table->data[1][3] = html_print_select ($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); +$table->data[2][2] = '' . __('SNMP version') . ''; +$table->data[2][3] = html_print_select ($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); + +$table->data[2][3] .= ''; -$table->data[1][3] .= ''; html_print_input_hidden('snmpwalk', 1); html_print_table($table); @@ -760,9 +771,10 @@ if (!$fail) { echo ''; echo "
"; echo ''; - + html_print_input_hidden('create_modules', 1); html_print_input_hidden('ip_target', $ip_target); + html_print_input_hidden('use_agent', $use_agent); html_print_input_hidden('tcp_port', $tcp_port); html_print_input_hidden('snmp_community', $snmp_community); html_print_input_hidden('snmp_version', $snmp_version); diff --git a/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php b/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php index 7b841f8bc9..9139f22f42 100644 --- a/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php +++ b/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php @@ -28,6 +28,7 @@ $ipAgent = db_get_value('direccion', 'tagente', 'id_agente', $idAgent); check_login (); $ip_target = (string) get_parameter ('ip_target', $ipAgent); +$use_agent = get_parameter ('use_agent'); $snmp_community = (string) get_parameter ('snmp_community', 'public'); $snmp_version = get_parameter('snmp_version', '1'); $snmp3_auth_user = get_parameter('snmp3_auth_user'); @@ -136,7 +137,12 @@ if ($create_modules) { $values['tcp_port'] = $tcp_port; } $values['snmp_community'] = $snmp_community; - $values['ip_target'] = $ip_target; + if($use_agent){ + $values['ip_target'] = 'auto'; + } + else{ + $values['ip_target'] = $ip_target; + } $values['tcp_send'] = $snmp_version; if ($snmp_version == '3') { @@ -336,18 +342,21 @@ $table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, $table->data[0][2] = '' . __('Port') . ''; $table->data[0][3] = html_print_input_text ('tcp_port', $tcp_port, '', 5, 20, true); +$table->data[1][0] = '' . __('Use agent ip') . ''; +$table->data[1][1] = html_print_checkbox ('use_agent', 1, $use_agent, true); + $snmp_versions['1'] = 'v. 1'; $snmp_versions['2'] = 'v. 2'; $snmp_versions['2c'] = 'v. 2c'; $snmp_versions['3'] = 'v. 3'; -$table->data[1][0] = '' . __('SNMP community') . ''; -$table->data[1][1] = html_print_input_text ('snmp_community', $snmp_community, '', 15, 60, true); +$table->data[2][0] = '' . __('SNMP community') . ''; +$table->data[2][1] = html_print_input_text ('snmp_community', $snmp_community, '', 15, 60, true); -$table->data[1][2] = '' . __('SNMP version') . ''; -$table->data[1][3] = html_print_select ($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); +$table->data[2][2] = '' . __('SNMP version') . ''; +$table->data[2][3] = html_print_select ($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); -$table->data[1][3] .= ''; +$table->data[2][3] .= ''; html_print_input_hidden('snmpwalk', 1); html_print_table($table); @@ -409,6 +418,7 @@ if (!empty($interfaces_list)) { html_print_input_hidden('create_modules', 1); html_print_input_hidden('ip_target', $ip_target); + html_print_input_hidden('use_agent', $use_agent); html_print_input_hidden('tcp_port', $tcp_port); html_print_input_hidden('snmp_community', $snmp_community); html_print_input_hidden('snmp_version', $snmp_version); diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index 2542bd5242..8d3d1c7e9f 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -974,6 +974,9 @@ if ($update_module || $create_module) { $parent_module_id = (int) get_parameter('parent_module_id'); $ip_target = (string) get_parameter ('ip_target'); + if($ip_target == ''){ + $ip_target = 'auto'; + } $custom_id = (string) get_parameter ('custom_id'); $history_data = (int) get_parameter('history_data'); $dynamic_interval = (int) get_parameter('dynamic_interval'); diff --git a/pandora_console/godmode/agentes/module_manager_editor_network.php b/pandora_console/godmode/agentes/module_manager_editor_network.php index b29f56123f..c0a938e1c1 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_network.php +++ b/pandora_console/godmode/agentes/module_manager_editor_network.php @@ -65,6 +65,10 @@ $extra_title = __('Network server module'); $data = array (); $data[0] = __('Target IP'); +//show agent_for defect; +if($ip_target == 'auto'){ + $ip_target = agents_get_address ($id_agente); +} $data[1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, true); // In ICMP modules, port is not configurable diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index d2dbc9a858..860b738829 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -480,9 +480,17 @@ $table->data['edit3'][2] = __('SMNP community'); $table->data['edit3'][3] = html_print_input_text ('snmp_community', '', '', 10, 15, true); +$target_ip_values = array(); +$target_ip_values['auto'] = __('Auto'); +$target_ip_values['force_pri'] = __('Force primary key'); +$target_ip_values['custom'] = __('Custom'); + $table->data['edit35'][0] = __('Target IP'); -$table->data['edit35'][1] = html_print_input_text ('ip_target', '', '', - 15, 60, true); +$table->data['edit35'][1] = html_print_select ($target_ip_values, + 'ip_target', '', '', __('No change'), '', true, false, false, '', false, 'width:200px;'); + +$table->data['edit35'][1] .= html_print_input_text ('custom_ip_target', '', '', 15, 60, true); + $table->data['edit35'][2] = __('SNMP version'); $table->data['edit35'][3] = html_print_select ($snmp_versions, 'tcp_send', '', '', __('No change'), '', true, false, false, ''); @@ -647,6 +655,7 @@ $(document).ready (function () { } }); + $("#text-custom_ip_target").hide(); $("#id_agents").change(agent_changed_by_multiple_agents); $("#module_name").change(module_changed_by_multiple_modules); @@ -929,6 +938,15 @@ $(document).ready (function () { } }); + $('#ip_target').change(function() { + if($(this).val() == 'custom') { + $("#text-custom_ip_target").show(); + } + else{ + $("#text-custom_ip_target").hide(); + } + }); + var recursion; $("#checkbox-recursion").click(function () { @@ -1062,7 +1080,7 @@ function process_manage_edit ($module_name, $agents_select = null) { 'id_export', 'history_data', 'critical_inverse', 'warning_inverse', 'critical_instructions', 'warning_instructions', 'unknown_instructions', 'policy_linked', - 'id_category', 'disabled_types_event', 'ip_target', + 'id_category', 'disabled_types_event', 'ip_target', "custom_ip_target", 'descripcion', 'min_ff_event_normal', 'min_ff_event_warning', 'min_ff_event_critical', 'each_ff', 'module_ff_interval', 'ff_timeout', 'max_timeout'); diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index d1493c006b..356112a00e 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -411,9 +411,19 @@ function modules_update_agent_module ($id, $values, return ERR_EXIST; } } - - - + + if(isset ($values['ip_target'])){ + if($values['ip_target'] == 'force_pri'){ + $sql_agent = "SELECT id_agente FROM tagente_modulo WHERE id_agente_modulo=" . $id; + $id_agente = mysql_db_process_sql($sql_agent); + $values['ip_target'] = agents_get_address ($id_agente); + } + elseif($values['ip_target'] == 'custom'){ + $values['ip_target'] = $values['custom_ip_target']; + } + } + unset($values['custom_ip_target']); + $where = array(); $where['id_agente_modulo'] = $id; if ($onlyNoDeletePending) {