diff --git a/html/includes/functions.inc.php b/html/includes/functions.inc.php
index 21121d0cef..e6c7f0ccad 100644
--- a/html/includes/functions.inc.php
+++ b/html/includes/functions.inc.php
@@ -1178,6 +1178,9 @@ function dynamic_override_config($type, $name, $device) {
if ($type == 'checkbox') {
return '';
}
+ elseif ($type == 'text') {
+ return '';
+ }
}//end dynamic_override_config()
function generate_dynamic_config_panel($title,$end_panel=true,$config_groups,$items=array(),$transport='') {
diff --git a/html/js/librenms.js b/html/js/librenms.js
index 576362bc66..3df1fc5338 100644
--- a/html/js/librenms.js
+++ b/html/js/librenms.js
@@ -25,6 +25,32 @@ $(document).ready(function() {
});
});
+ // Device override for text inputs
+ $(document).on('blur', 'input[name="override_config_text"]', function(event) {
+ event.preventDefault();
+ var $this = $(this);
+ var attrib = $this.data('attrib');
+ var device_id = $this.data('device_id');
+ var value = $this.val();
+ $.ajax({
+ type: 'POST',
+ url: 'ajax_form.php',
+ data: { type: 'override-config', device_id: device_id, attrib: attrib, state: value },
+ dataType: 'json',
+ success: function(data) {
+ if (data.status == 'ok') {
+ toastr.success(data.message);
+ }
+ else {
+ toastr.error(data.message);
+ }
+ },
+ error: function() {
+ toastr.error('Could not set this override');
+ }
+ });
+ });
+
// Checkbox config ajax calls
$("[name='global-config-check']").bootstrapSwitch('offColor','danger');
$('input[name="global-config-check"]').on('switchChange.bootstrapSwitch', function(event, state) {
diff --git a/html/pages/device/edit/misc.inc.php b/html/pages/device/edit/misc.inc.php
index a856898523..d1731ecdfd 100644
--- a/html/pages/device/edit/misc.inc.php
+++ b/html/pages/device/edit/misc.inc.php
@@ -14,6 +14,12 @@ echo '
'.dynamic_override_config('checkbox','override_Oxidized_disable', $device).'
+
';
diff --git a/html/pages/settings/external.inc.php b/html/pages/settings/external.inc.php
index 2960b2e259..5459ed67eb 100644
--- a/html/pages/settings/external.inc.php
+++ b/html/pages/settings/external.inc.php
@@ -19,12 +19,28 @@ $oxidized_conf = array(
),
);
+$unixagent_conf = array(
+ array('name' => 'unix-agent.port',
+ 'descr' => 'Default unix-agent port',
+ 'type' => 'text',
+ ),
+ array('name' => 'unix-agent.connection-timeout',
+ 'descr' => 'Connection timeout',
+ 'type' => 'text',
+ ),
+ array('name' => 'unix-agent.read-timeout',
+ 'descr' => 'Read timeout',
+ 'type' => 'text',
+ ),
+);
+
echo '
diff --git a/includes/polling/unix-agent.inc.php b/includes/polling/unix-agent.inc.php
index 18d30e58e0..a10ce93338 100644
--- a/includes/polling/unix-agent.inc.php
+++ b/includes/polling/unix-agent.inc.php
@@ -3,14 +3,22 @@
if ($device['os_group'] == 'unix') {
echo $config['project_name'].' UNIX Agent: ';
- // FIXME - this should be in config and overridable in database
- $agent_port = '6556';
+ $agent_port = get_dev_attrib($device,'override_Unixagent_port');
+ if (empty($agent_port)) {
+ $agent_port = $config['unix-agent']['port'];
+ }
+ if (empty($config['unix-agent']['connection-timeout'])) {
+ $config['unix-agent']['connection-timeout'] = $config['unix-agent-connection-time-out'];
+ }
+ if (empty($config['unix-agent']['read-timeout'])) {
+ $config['unix-agent']['read-timeout'] = $config['unix-agent-read-time-out'];
+ }
$agent_start = utime();
- $agent = fsockopen($device['hostname'], $agent_port, $errno, $errstr, $config['unix-agent-connection-time-out']);
+ $agent = fsockopen($device['hostname'], $agent_port, $errno, $errstr, $config['unix-agent']['connection-timeout']);
// Set stream timeout (for timeouts during agent fetch
- stream_set_timeout($agent, $config['unix-agent-read-time-out']);
+ stream_set_timeout($agent, $config['unix-agent']['read-timeout']);
$agentinfo = stream_get_meta_data($agent);
if (!$agent) {
diff --git a/sql-schema/076.sql b/sql-schema/076.sql
new file mode 100644
index 0000000000..80cb87c4aa
--- /dev/null
+++ b/sql-schema/076.sql
@@ -0,0 +1 @@
+INSERT INTO config (config_name,config_value,config_default,config_descr,config_group,config_group_order,config_sub_group,config_sub_group_order,config_hidden,config_disabled) values ('unix-agent.port','6556','6556','Default port for the Unix-agent (check_mk)','external',0,'unix-agent',0,'0','0'),('unix-agent.connection-timeout','10','10','Unix-agent connection timeout','external',0,'unix-agent',0,'0','0'),('unix-agent.read-timeout','10','10','Unix-agent read timeout','external',0,'unix-agent',0,'0','0');