Skip to content

Commit d93e2d6

Browse files
author
Marius Burkard
committed
Merge branch 'darkalex/ispconfig3-dns-status'
2 parents 4e7339b + 0c811fd commit d93e2d6

File tree

9 files changed

+59
-6
lines changed

9 files changed

+59
-6
lines changed

install/lib/installer_base.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ public function grant_master_database_rights($verbose = false) {
678678
$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
679679
}
680680

681-
$query = "GRANT SELECT, UPDATE(`dnssec_initialized`, `dnssec_info`, `dnssec_last_signed`) ON ?? TO ?@?";
681+
$query = "GRANT SELECT, UPDATE(`dnssec_initialized`, `dnssec_info`, `dnssec_last_signed`, `status`, `status_txt`) ON ?? TO ?@?";
682682
if ($verbose){
683683
echo $query ."\n";
684684
}

install/sql/incremental/upd_dev_collection.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
ALTER TABLE `sys_user` ADD `last_login_ip` VARCHAR(50) NULL AFTER `lost_password_reqtime`;
22
ALTER TABLE `sys_user` ADD `last_login_at` BIGINT(20) NULL AFTER `last_login_ip`;
3+
-- DNS-Status (2 lines)
4+
ALTER TABLE `dns_soa` ADD COLUMN `status` enum('OK','ERROR','PENDING') NOT NULL DEFAULT 'OK' AFTER `active`;
5+
ALTER TABLE `dns_soa` ADD COLUMN `status_txt` text AFTER `status`;
36
ALTER TABLE `sys_remoteaction` CHANGE `action_state` `action_state` ENUM('pending','processing','ok','warning','error') NOT NULL DEFAULT 'pending';
47

58
CREATE TABLE IF NOT EXISTS `dns_ssl_ca` (

install/sql/ispconfig3.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,8 @@ CREATE TABLE `dns_soa` (
607607
`minimum` int(11) unsigned NOT NULL default '3600',
608608
`ttl` int(11) unsigned NOT NULL default '3600',
609609
`active` enum('N','Y') NOT NULL DEFAULT 'N',
610+
`status` enum('OK','ERROR','PENDING') NOT NULL DEFAULT 'OK',
611+
`status_txt` text,
610612
`xfer` varchar(255) NOT NULL DEFAULT '',
611613
`also_notify` varchar(255) default NULL,
612614
`update_acl` varchar(255) default NULL,

interface/web/dns/form/dns_soa.tform.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,20 @@
8080
'width' => '30',
8181
'maxlength' => '255'
8282
),
83+
'status' => array (
84+
'datatype' => 'VARCHAR',
85+
'formtype' => 'TEXT',
86+
'default' => 'PENDING',
87+
'value' => 'PENDING'
88+
),
89+
'status_txt' => array (
90+
'datatype' => 'VARCHAR',
91+
'formtype' => 'TEXTAREA',
92+
'default' => '',
93+
'value' => '',
94+
'width' => '30',
95+
'maxlength' => '10000'
96+
),
8397
'origin' => array (
8498
'datatype' => 'VARCHAR',
8599
'formtype' => 'TEXT',

interface/web/dns/list/dns_soa.list.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,27 @@
6161
'width' => "",
6262
'value' => array('Y' => $app->lng('yes_txt'), 'N' => $app->lng('no_txt')));
6363

64+
65+
$liste["item"][] = array( 'field' => "status",
66+
'datatype' => "VARCHAR",
67+
'formtype' => "SELECT",
68+
'op' => "=",
69+
'prefix' => "",
70+
'suffix' => "",
71+
'width' => "",
72+
'value' => array('OK' => '', 'ERROR' => 'background-color:red', 'PENDING' => 'background-color:yellow'));
73+
74+
75+
$liste["item"][] = array( 'field' => "status_txt",
76+
'datatype' => "VARCHAR",
77+
'formtype' => "TEXT",
78+
'op' => "=",
79+
'prefix' => "",
80+
'suffix' => "",
81+
'width' => "",
82+
'value' => '');
6483

84+
6585
$liste["item"][] = array( 'field' => "server_id",
6686
'datatype' => "VARCHAR",
6787
'formtype' => "SELECT",

interface/web/dns/templates/dns_soa_admin_list.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ <h1><tmpl_var name="list_head_txt"></h1>
5757
<tbody>
5858
<tmpl_loop name="records">
5959
<tr>
60-
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</td>
60+
<td style="{tmpl_var name="status"}"><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='status_txt'}">{tmpl_var name="active"}</td>
6161
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>
6262
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
6363
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td>

interface/web/dns/templates/dns_soa_edit.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ <h1><tmpl_var name="list_head_txt"></h1>
1111
</tmpl_if>
1212

1313
<legend>DNS Zone</legend>
14+
<tmpl_if name="status_txt">
15+
<div class="alert alert-danger clear">
16+
<div style="white-space: pre;" class="alert-content"><tmpl_var name="status_txt"></div>
17+
</div>
18+
</tmpl_if>
1419
<tmpl_if name="is_admin">
1520
<div class="form-group">
1621
<tmpl_if name="edit_disabled">
@@ -146,6 +151,7 @@ <h1><tmpl_var name="list_head_txt"></h1>
146151
</tmpl_if>
147152

148153
<input type="hidden" name="id" value="{tmpl_var name='id'}">
154+
<input type="hidden" name="status" value="PENDING">
149155
<input name="serial" type="hidden" value="{tmpl_var name='serial'}">
150156

151157
<div class="clear"><div class="right">

interface/web/dns/templates/dns_soa_list.htm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ <h1><tmpl_var name="list_head_txt"></h1>
5555
<tbody>
5656
<tmpl_loop name="records">
5757
<tr>
58-
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</td>
58+
<td style="{tmpl_var name="status"}"><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='status_txt'}">{tmpl_var name="active"}</td>
5959
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
6060
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td>
6161
<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td>

server/plugins-available/bind_plugin.inc.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,14 @@ function soa_update($event_name, $data) {
296296

297297
//* Check the zonefile
298298
if(is_file($filename.'.err')) unlink($filename.'.err');
299-
exec('named-checkzone '.escapeshellarg($zone['origin']).' '.escapeshellarg($filename), $out, $return_status);
299+
$out=array();
300+
exec('named-checkzone '.escapeshellarg($zone['origin']).' '.escapeshellarg($filename).' 2>&1', $out, $return_status);
301+
$statustext='';
302+
foreach ($out as $line) $statustext .= $line."\n";
300303
if($return_status === 0) {
301304
$app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG);
305+
$app->db->query('UPDATE dns_soa SET status=\'OK\', status_txt=\'\' WHERE id='.$data['new']['id']);
306+
$app->dbmaster->query('UPDATE dns_soa SET status=\'OK\', status_txt=\'\' WHERE id='.$data['new']['id']);
302307
} else {
303308
$loglevel = @($dns_config['disable_bind_log'] === 'y')?'LOGLEVEL_DEBUG':'LOGLEVEL_WARN';
304309
$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), $loglevel);
@@ -314,6 +319,8 @@ function soa_update($event_name, $data) {
314319
} else {
315320
rename($filename, $filename.'.err');
316321
}
322+
$app->db->query('UPDATE dns_soa SET status=\'ERROR\', status_txt=\''.str_replace(array('"', '\''), '', $statustext).'\' WHERE id='.$data['new']['id']);
323+
$app->dbmaster->query('UPDATE dns_soa SET status=\'ERROR\', status_txt=\''.str_replace(array('"', '\''), '', $statustext).'\' WHERE id='.$data['new']['id']);
317324
}
318325
unset($tpl);
319326
unset($records);
@@ -357,8 +364,8 @@ function soa_update($event_name, $data) {
357364
if(is_file($filename)) unlink($filename);
358365
if(is_file($filename.'.err')) unlink($filename.'.err');
359366
if(is_file($filename.'.signed')) unlink($filename.'.signed');
360-
}
361-
367+
}
368+
362369
//* Restart bind nameserver if update_acl is not empty, otherwise reload it
363370
if($data['new']['update_acl'] != '') {
364371
$app->services->restartServiceDelayed('bind', 'restart');
@@ -610,4 +617,5 @@ function write_named_conf($data, $dns_config) {
610617

611618
} // end class
612619

620+
613621
?>

0 commit comments

Comments
 (0)