$d_ports) { $start_port = $d_ports + 1; LOG_DEBUG($db_link, "Device id: $id add connection for port from $start_port to $sw_ports."); for ($port = $start_port; $port <= $sw_ports; $port++) { $new['device_id'] = $id; $new['snmp_index'] = $port; $new['port'] = $port; insert_record($db_link, "device_ports", $new); } } if ($sw_ports < $d_ports) { LOG_DEBUG($db_link, "Device id: $id remove connection for port from $d_ports to $sw_ports"); for ($port = $d_ports; $port > $sw_ports; $port--) { $port_id = get_id_record($db_link, 'device_ports', "device_id=? and port=?", [ $id, $port ]); if ($port_id) { delete_record($db_link, "device_ports", "id=?" ,[ $port_id ]); run_sql($db_link, "DELETE FROM connections WHERE port_id=?", [ $port_id ]); } else { LOG_DEBUG($db_link, "Device id: $id port_id not found for port: $port!"); } } } } unset($new); if (isset($_POST["f_ip"])) { $new['ip'] = $_POST["f_ip"]; $new['ip_int'] = ip2long($new['ip']); } $cur_device = get_record_sql($db_link, "SELECT * FROM devices WHERE id=?", [ $id ]); //main device info if (!empty($new['ip'])) { $cur_auth = get_record_sql($db_link, "SELECT * FROM user_auth WHERE deleted=0 AND ip=?",[ $new['ip'] ]); } if (isset($_POST["f_device_model_id"])) { $new['device_model_id'] = $_POST["f_device_model_id"] * 1; $new['vendor_id'] = get_device_model_vendor($db_link, $new['device_model_id']); } if (isset($_POST["f_port_count"])) { $new['port_count'] = $sw_ports; } if (isset($_POST["f_devtype_id"])) { $new['device_type'] = $_POST["f_devtype_id"] * 1; } if (isset($_POST["f_description"])) { $new['description'] = $_POST["f_description"]; } if (isset($_POST["f_SN"])) { $new['SN'] = $_POST["f_SN"]; } if (isset($_POST["f_firmware"])) { $new['firmware'] = $_POST["f_firmware"]; } //snmp if (isset($_POST["f_snmp_version"])) { $new['snmp_version'] = $_POST["f_snmp_version"] * 1; } if (isset($_POST["f_community"])) { $new['community'] = substr($_POST["f_community"], 0, 50); } if (isset($_POST["f_snmp3_auth_proto"])) { $new['snmp3_auth_proto'] = trim(substr($_POST["f_snmp3_auth_proto"], 0, 10)); } if (isset($_POST["f_snmp3_priv_proto"])) { $new['snmp3_priv_proto'] = trim(substr($_POST["f_snmp3_priv_proto"], 0, 10)); } if (isset($_POST["f_rw_community"])) { $new['rw_community'] = substr($_POST["f_rw_community"], 0, 50); } if (isset($_POST["f_snmp3_user_rw"])) { $new['snmp3_user_rw'] = substr($_POST["f_snmp3_user_rw"], 0, 20); } if (isset($_POST["f_snmp3_user_ro"])) { $new['snmp3_user_ro'] = substr($_POST["f_snmp3_user_ro"], 0, 20); } if (isset($_POST["f_snmp3_user_rw_password"])) { $new['snmp3_user_rw_password'] = substr($_POST["f_snmp3_user_rw_password"], 0, 20); } if (isset($_POST["f_snmp3_user_ro_password"])) { $new['snmp3_user_ro_password'] = substr($_POST["f_snmp3_user_ro_password"], 0, 20); } //acl & configuration options if (isset($_POST["f_queue_enabled"])) { $new['queue_enabled'] = $_POST["f_queue_enabled"] * 1; } if (isset($_POST["f_connected_user_only"])) { $new['connected_user_only'] = $_POST["f_connected_user_only"] * 1; } if (isset($_POST["f_dhcp"])) { $new['dhcp'] = $_POST["f_dhcp"] * 1; } if (isset($_POST["f_user_acl"])) { $new['user_acl'] = $_POST["f_user_acl"] * 1; } //interfaces if (isset($_POST["f_wan"])) { $new['wan_int'] = $_POST["f_wan"]; } if (isset($_POST["f_lan"])) { $new['lan_int'] = $_POST["f_lan"]; } //location if (isset($_POST["f_building_id"])) { $new['building_id'] = $_POST["f_building_id"] * 1; } //access if (isset($_POST["f_login"])) { $new['login'] = $_POST["f_login"]; } if (!empty($_POST["f_password"])) { if (!preg_match('/^\*+$/', $_POST["f_password"])) { $new['password'] = crypt_string($_POST["f_password"]); } } if (isset($_POST["f_protocol"])) { $new['protocol'] = $_POST["f_protocol"] * 1; } if (isset($_POST["f_control_port"])) { $new['control_port'] = $_POST["f_control_port"] * 1; } if (isset($_POST["f_save_netflow"])) { $new['netflow_save'] = $_POST["f_save_netflow"] * 1; } //discovery if (isset($_POST["f_discovery"])) { $new['discovery'] = $_POST["f_discovery"]; } //nagios if (isset($_POST["f_nagios"])) { $new['nagios'] = $_POST["f_nagios"] * 1; if ($new['nagios'] == 0) { $new['nagios_status'] = 'UP'; } } else { if (!empty($cur_auth)) { $new['nagios'] = 0; $new['nagios_status'] = $cur_auth['nagios_status']; } } if ($new['device_type'] == 0 or $new['protocol']<0) { $new['queue_enabled'] = 0; $new['connected_user_only'] = 1; $new['user_acl'] = 0; } update_record($db_link, "devices", "id=?", $new, [ $id ]); header("Location: " . $_SERVER["REQUEST_URI"]); exit; } $device = get_record($db_link, 'devices', "id=?" ,[ $id]); $user_info = get_record_sql($db_link, "SELECT * FROM user_list WHERE id=?", [ $device['user_id'] ]); unset($_POST); require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/header.php"); print_device_submenu($page_url); print_editdevice_submenu($page_url, $id, $device['device_type'], $user_info['login']); ?>
' . WEB_device_locked . '
'; } } ?>
" . WEB_device_port_count . ""; } else { print ""; } print ""; print "\n"; print "\n"; print "\n"; print "\n"; if ($device['device_type'] <= 2) { print "\n"; } else { print ""; } print "\n"; ?> \n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print ""; print "\n"; print "\n"; print ""; //print gateway settings if ($device['device_type'] == 2) { print ""; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print ""; print ""; print ""; } //print router settings if ($device['device_type'] == 0) { print ""; print ""; print "\n"; } //for all active network devices if ($device['device_type'] <= 2) { //cli access settings print ""; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print ""; //snmp settings & discovery & nagios print ""; print ""; print "\n"; print "\n"; print "\n"; print ""; } if ($device['snmp_version'] == 3) { //snmp settings print ""; print "\n"; print "\n"; print "\n"; print ""; print ""; print ""; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } else { print ""; print "\n"; print ""; if ($device['snmp_version'] > 0) { print ""; print "\n"; print "\n"; print "\n"; print ""; print ""; } } //save button if ($device['snmp_version'] > 0) { print ""; print ""; } else { print ""; } print ""; print "
" . $user_info['login'] . ""; print_device_ip_select($db_link, 'f_ip', $device['ip'], $device['user_id']); print ""; print_devtype_select($db_link, 'f_devtype_id', $device['device_type']); print "
"; print_device_model_select($db_link, 'f_device_model_id', $device['device_model_id']); print "
" . WEB_location_name . "" . WEB_cell_description . "
"; print_building_select($db_link, 'f_building_id', $device['building_id']); print "
"; print_url(WEB_device_access_control,"/admin/devices/edit_gw_instances.php?id=$id"); print "" . WEB_device_dhcp_server . "" . WEB_device_queues_enabled . "" . WEB_device_connected_only . "
"; print_qa_select('f_user_acl', $device['user_acl']); print ""; print_qa_select('f_dhcp', $device['dhcp']); print ""; print_qa_select('f_queue_enabled', $device['queue_enabled']); print ""; print_qa_select('f_connected_user_only', $device['connected_user_only']); print "
"; print_url(WEB_list_l3_interfaces, "/admin/devices/edit_l3int.php?id=$id"); print ""; print_url(WEB_list_gateway_subnets, "/admin/devices/edit_gw_subnets.php?id=$id"); print "
"; print get_l3_interfaces($db_link, $device['id']); print ""; print get_gw_subnets($db_link, $device['id']); print "
" . WEB_device_dhcp_server . "
"; print_qa_select('f_dhcp', $device['dhcp']); print ""; print_url(WEB_list_l3_networks, "/admin/devices/edit_gw_subnets.php?id=$id"); print "
" . WEB_cell_login . "" . WEB_cell_password . "" . WEB_cell_control_proto . "" . WEB_cell_control_port . "
"; print_control_proto_select('f_protocol', $device['protocol']); print "
" . WEB_network_discovery . "" . WEB_nagios . "" . WEB_device_save_netflow . "
"; print_qa_select('f_discovery', $device['discovery']); print ""; print_qa_select('f_nagios', $device['nagios']); print ""; print_qa_select('f_save_netflow', $device['netflow_save']); print "
" . WEB_snmp_version . "" . WEB_snmp_v3_auth_proto . "" . WEB_snmp_v3_priv_proto . "
"; print_snmp_select('f_snmp_version', $device['snmp_version']); print ""; print_snmp_auth_proto_select('f_snmp3_auth_proto', $device['snmp3_auth_proto']); print ""; print_snmp_priv_proto_select('f_snmp3_priv_proto', $device['snmp3_priv_proto']); print "
" . WEB_snmp_v3_user_ro . "" . WEB_snmp_v3_ro_password . "" . WEB_snmp_v3_user_rw . "" . WEB_snmp_v3_rw_password . "
" . WEB_snmp_version . "
"; print_snmp_select('f_snmp_version', $device['snmp_version']); print "
" . WEB_snmp_community_ro . "" . WEB_snmp_community_rw . "
" . $device['ip'] . "::" . get_device_model_name($db_link, $device['device_model_id']) . ""; print "
" . $device['ip'] . "::" . get_device_model_name($db_link, $device['device_model_id']) . "
\n"; ?>