diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-14 12:26:49 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-14 12:26:49 +0000 |
| commit | d144df19e9190a100f3d12a2e70c0637f0bda38d (patch) | |
| tree | f7b9e5d1aeba8ee1a89a84c78e681ab24d526692 /frontends/php/include | |
| parent | 1562339df0317816bbbee60d1478234e58d4f6f8 (diff) | |
updated frontend for new discovefy
git-svn-id: svn://svn.zabbix.com/trunk@4011 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include')
| -rw-r--r-- | frontends/php/include/actions.inc.php | 2 | ||||
| -rw-r--r-- | frontends/php/include/defines.inc.php | 1 | ||||
| -rw-r--r-- | frontends/php/include/discovery.inc.php | 48 | ||||
| -rw-r--r-- | frontends/php/include/forms.inc.php | 21 | ||||
| -rw-r--r-- | frontends/php/include/locales/en_gb.inc.php | 8 | ||||
| -rw-r--r-- | frontends/php/include/validate.inc.php | 41 |
6 files changed, 55 insertions, 66 deletions
diff --git a/frontends/php/include/actions.inc.php b/frontends/php/include/actions.inc.php index 68f9d337..cc2757a1 100644 --- a/frontends/php/include/actions.inc.php +++ b/frontends/php/include/actions.inc.php @@ -617,7 +617,7 @@ include_once 'include/discovery.inc.php'; } break; case CONDITION_TYPE_DHOST_IP: - if( !validate_ip_list($value) ) + if( !validate_ip_range($value) ) { error(S_INCORRECT_IP.' ['.$value.']'); return false; diff --git a/frontends/php/include/defines.inc.php b/frontends/php/include/defines.inc.php index 332e5d14..ebe75931 100644 --- a/frontends/php/include/defines.inc.php +++ b/frontends/php/include/defines.inc.php @@ -48,6 +48,7 @@ define('T_ZBX_IP', 4); define('T_ZBX_CLR', 5); define('T_ZBX_PORTS', 6); + define('T_ZBX_IP_RANGE', 7); define('O_MAND', 0); define('O_OPT', 1); diff --git a/frontends/php/include/discovery.inc.php b/frontends/php/include/discovery.inc.php index 43e366a3..c27db23c 100644 --- a/frontends/php/include/discovery.inc.php +++ b/frontends/php/include/discovery.inc.php @@ -112,30 +112,18 @@ return $dcheckid; } - function add_discovery_rule($name, $ipfirst, $iplast, - $delay, $status, $upevent, $downevent, - $svcupevent, $svcdownevent, $dchecks) + function add_discovery_rule($name, $iprange, $delay, $status, $dchecks) { - $upevent *= 3600; /* convert hours to seconds */ - $downevent *= 3600; /* convert hours to seconds */ - $svcupevent *= 3600; /* convert hours to seconds */ - $svcdownevent *= 3600; /* convert hours to seconds */ - - $ip_1 = explode('.', $ipfirst); - $ip_2 = explode('.', $iplast); - for($i=0; $i<3; $i++) + if( !validate_ip_range($iprange) ) { - if($ip_1[$i] != $ip_2[$i]) - { - error('Incorrect IP range.'); - return false; - } + error('Incorrect IP range.'); + return false; + } $druleid = get_dbid('drules', 'druleid'); - $result = DBexecute('insert into drules (druleid,name,ipfirst,iplast,delay,status,upevent,downevent,svcupevent,svcdownevent) '. - ' values ('.$druleid.','.zbx_dbstr($name).','.zbx_dbstr($ipfirst).','.zbx_dbstr($iplast).','.$delay.','.$status. - ','.$upevent.','.$downevent.','.$svcupevent.','.$svcdownevent.')'); + $result = DBexecute('insert into drules (druleid,name,iprange,delay,status) '. + ' values ('.$druleid.','.zbx_dbstr($name).','.zbx_dbstr($iprange).','.$delay.','.$status.')'); if($result) { @@ -149,19 +137,17 @@ return $result; } - function update_discovery_rule($druleid, $name, $ipfirst, $iplast, - $delay, $status, $upevent, $downevent, - $svcupevent, $svcdownevent, $dchecks) + function update_discovery_rule($druleid, $name, $iprange, $delay, $status, $dchecks) { - $upevent *= 3600; /* convert hours to seconds */ - $downevent *= 3600; /* convert hours to seconds */ - $svcupevent *= 3600; /* convert hours to seconds */ - $svcdownevent *= 3600; /* convert hours to seconds */ - - $result = DBexecute('update drules set name='.zbx_dbstr($name).',ipfirst='.zbx_dbstr($ipfirst).','. - 'iplast='.zbx_dbstr($iplast).',delay='.$delay.',status='.$status.',upevent='.$upevent.','. - 'downevent='.$downevent.',svcupevent='.$svcupevent.',svcdownevent='.$svcdownevent.' '. - ' where druleid='.$druleid); + if( !validate_ip_range($iprange) ) + { + error('Incorrect IP range.'); + return false; + + } + + $result = DBexecute('update drules set name='.zbx_dbstr($name).',iprange='.zbx_dbstr($iprange).','. + 'delay='.$delay.',status='.$status.' where druleid='.$druleid); if($result) { diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php index afffc9ff..f82eb388 100644 --- a/frontends/php/include/forms.inc.php +++ b/frontends/php/include/forms.inc.php @@ -179,14 +179,9 @@ { $name = $rule_data['name']; - $ipfirst = $rule_data['ipfirst']; - $iplast = $rule_data['iplast']; + $iprange = $rule_data['iprange']; $delay = $rule_data['delay']; $status = $rule_data['status']; - $upevent = round($rule_data['upevent']/3600); /* convert seconds to hours */ - $downevent = round($rule_data['downevent']/3600); /* convert seconds to hours */ - $svcupevent = round($rule_data['svcupevent']/3600); /* convert seconds to hours */ - $svcdownevent = round($rule_data['svcdownevent']/3600); /* convert seconds to hours */ //TODO init checks $dchecks = array(); @@ -199,14 +194,9 @@ else { $name = get_request('name',''); - $ipfirst = get_request('ipfirst','192.168.0.1'); - $iplast = get_request('iplast','192.168.0.255'); + $iprange = get_request('iprange','192.168.0.1-255'); $delay = get_request('delay',3600); $status = get_request('status',DRULE_STATUS_ACTIVE); - $upevent = get_request('upevent',24); - $downevent = get_request('downevent',48); - $svcupevent = get_request('svcupevent',1); - $svcdownevent = get_request('svcdownevent',4); $dchecks = get_request('dchecks',array()); } @@ -214,13 +204,8 @@ $new_check_ports= get_request('new_check_ports', '80'); $form->AddRow(S_NAME, new CTextBox('name', $name, 40)); - $form->AddRow(S_IP_FIRST, new CTextBox('ipfirst', $ipfirst, 27)); - $form->AddRow(S_IP_LAST, new CTextBox('iplast', $iplast, 27)); + $form->AddRow(S_IP_RANGE, new CTextBox('iprange', $iprange, 27)); $form->AddRow(S_DELAY.' (seconds)', new CNumericBox('delay', $delay, 8)); - $form->AddRow(S_UPEVENT, new CNumericBox('upevent', $upevent, 8)); - $form->AddRow(S_DOWNEVENT, new CNumericBox('downevent', $downevent, 8)); - $form->AddRow(S_SVCUPEVENT, new CNumericBox('svcupevent', $svcupevent, 8)); - $form->AddRow(S_SVCDOWNEVENT, new CNumericBox('svcdownevent', $svcdownevent, 8)); $form->AddVar('dchecks', $dchecks); diff --git a/frontends/php/include/locales/en_gb.inc.php b/frontends/php/include/locales/en_gb.inc.php index 3cc394fa..53f8d220 100644 --- a/frontends/php/include/locales/en_gb.inc.php +++ b/frontends/php/include/locales/en_gb.inc.php @@ -44,8 +44,7 @@ 'S_CONFIGURATION_OF_DISCOVERY'=> 'Configuration of discovery', 'S_CONFIGURATION_OF_DISCOVERY_BIG'=> 'CONFIGURATION OF DISCOVERY', 'S_NO_DISCOVERY_RULES_DEFINED'=> 'No discovery rules defined', - 'S_IP_FIRST'=> 'IP first', - 'S_IP_LAST'=> 'IP last', + 'S_IP_RANGE'=> 'IP range', 'S_INTERVALS'=> 'Intervals', 'S_CHECKS'=> 'Checks', 'S_ENABLE_SELECTED_RULES_Q'=> 'Enable selected rules?', @@ -56,11 +55,6 @@ 'S_EVENT_SOURCE'=> 'Event source', - 'S_UPEVENT'=> 'Up event (hours)', - 'S_DOWNEVENT'=> 'Down event (hours)', - 'S_SVCUPEVENT'=> 'Service up event (hours)', - 'S_SVCDOWNEVENT'=> 'Service down event (hours)', - 'S_NEW_CHECK'=> 'New check', 'S_SSH'=> 'SSH', 'S_LDAP'=> 'LDAP', diff --git a/frontends/php/include/validate.inc.php b/frontends/php/include/validate.inc.php index 84d52440..223f5a9e 100644 --- a/frontends/php/include/validate.inc.php +++ b/frontends/php/include/validate.inc.php @@ -66,20 +66,25 @@ return true; } - function validate_ip_list($str) + function validate_ip_range($str) { foreach(explode(',',$str) as $ip_range) { - $networks = array(); - $ip_range = explode('-', $ip_range); - if(count($ip_range) > 2) return false; - foreach($ip_range as $ip) + $ip_parts = explode('.', $ip_range); + if(count($ip_parts) != 4) return false; + + if( !is_numeric($ip_parts[0]) || $ip_parts[0] < 0 || $ip_parts[0] > 255 ) return false; + if( !is_numeric($ip_parts[1]) || $ip_parts[1] < 0 || $ip_parts[1] > 255 ) return false; + if( !is_numeric($ip_parts[2]) || $ip_parts[2] < 0 || $ip_parts[2] > 255 ) return false; + + $last_part = explode('-', $ip_parts[3]); + if(count($last_part) > 2) return false; + foreach($last_part as $ip_p) { - if( !validate_ip($ip, $arr) ) return false; - $network = $arr[1].'.'.$arr['2'].'.'.$arr[3]; - $networks[$network] = $network; + if( !is_numeric($ip_p) || $ip_p < 0 || $ip_p > 255 ) return false; } - if( count($networks) > 1 ) return false; + if(count($last_part) == 2 && $last_part[0] > $last_part[1]) return false; + } return true; } @@ -228,6 +233,24 @@ return ZBX_VALID_OK; } + if($type == T_ZBX_IP_RANGE) + { + if( !validate_ip_range($var) ) + { + if($flags&P_SYS) + { + info("Critical error. Field [".$field."] is not IP range"); + return ZBX_VALID_ERROR; + } + else + { + info("Warning. Field [".$field."] is not IP range"); + return ZBX_VALID_WARNING; + } + } + return ZBX_VALID_OK; + } + if($type == T_ZBX_PORTS) { $err = ZBX_VALID_OK; |
