From a59ad3ae1bd0b9bf773120074113f4a9cf19864f Mon Sep 17 00:00:00 2001 From: tbrehm Date: Wed, 9 Jun 2010 13:31:02 +0000 Subject: [PATCH] Merged revisions 1806-1811,1816 from stable. --- interface/lib/classes/listform.inc.php | 7 ++++++- interface/web/dns/form/dns_soa.tform.php | 2 +- server/conf/autoresponder.master | 2 +- server/conf/bind_named.conf.local.master | 2 +- server/conf/bind_pri.domain.master | 2 +- server/lib/classes/system.inc.php | 4 +++- server/plugins-available/bind_plugin.inc.php | 19 ++++++++++++++----- .../postfix_server_plugin.inc.php | 6 +++++- 8 files changed, 32 insertions(+), 12 deletions(-) diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php index f385da6d8b..7ac6f8110c 100644 --- a/interface/lib/classes/listform.inc.php +++ b/interface/lib/classes/listform.inc.php @@ -129,12 +129,17 @@ class listform { //* Get config variable $list_name = $this->listDef['name']; $search_prefix = $this->listDef['search_prefix']; + + if(isset($_REQUEST['Filter']) && !isset($_SESSION['search'][$list_name])) { + //* Jump back to page 1 of the list when a new search gets started. + $_SESSION['search'][$list_name]['page'] = 0; + } //* store retrieval query foreach($this->listDef['item'] as $i) { $field = $i['field']; - //*TODO: comment = hat sich die suche ge�ndert + //* The search string has been changed if(isset($_REQUEST[$search_prefix.$field]) && isset($_SESSION['search'][$list_name][$search_prefix.$field]) && $_REQUEST[$search_prefix.$field] != $_SESSION['search'][$list_name][$search_prefix.$field]){ $this->searchChanged = 1; diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php index 4b1203ae50..66c26655db 100644 --- a/interface/web/dns/form/dns_soa.tform.php +++ b/interface/web/dns/form/dns_soa.tform.php @@ -82,7 +82,7 @@ $form["tabs"]['dns_soa'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'origin_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}[\.]{0,1}$/', + 'regex' => '/^[\w\.\-\/]{2,255}\.[a-zA-Z]{2,10}[\.]{0,1}$/', 'errmsg'=> 'origin_error_regex'), ), 'default' => '', diff --git a/server/conf/autoresponder.master b/server/conf/autoresponder.master index 98ff122525..0126c998d4 100644 --- a/server/conf/autoresponder.master +++ b/server/conf/autoresponder.master @@ -13,7 +13,7 @@ if ($RETURNCODE==1) RESPONDDB="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst" # The following must be one contiguous line - cc "| mailbot -t $RESPOND -d $RESPONDDB -D 1 \ + cc "| mailbot -t $RESPOND -d $RESPONDDB -c 'UTF-8' -D 1 \ -A 'From: $RECIPIENT' -s 'Auto Response: from $RECIPIENT' \ /usr/sbin/sendmail -t -f ''" } diff --git a/server/conf/bind_named.conf.local.master b/server/conf/bind_named.conf.local.master index c8eb70f9be..764730d096 100644 --- a/server/conf/bind_named.conf.local.master +++ b/server/conf/bind_named.conf.local.master @@ -3,7 +3,7 @@ zone "" { type master; - file ""; + file ""; }; diff --git a/server/conf/bind_pri.domain.master b/server/conf/bind_pri.domain.master index 5bc92d7d6d..faa42f3d70 100644 --- a/server/conf/bind_pri.domain.master +++ b/server/conf/bind_pri.domain.master @@ -39,7 +39,7 @@ $TTL {tmpl_var name='ttl'} {tmpl_var name='name'} RP {tmpl_var name='data'} -{tmpl_var name='name'} SRV {tmpl_var name='data'} +{tmpl_var name='name'} SRV 0 {tmpl_var name='data'} {tmpl_var name='name'} TXT {tmpl_var name='data'} diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 8d1f70c163..260c214a77 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1202,7 +1202,9 @@ class system{ if($user != '' && $this->is_user($user) && $user != 'root') { $user = escapeshellarg($user); - exec("chown $user $dir $dir_cur $dir_new $dir_tmp"); + // I assume that the name of the (vmail group) is the same as the name of the mail user in ispconfig 3 + $group = $user; + exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp"); } //* Add the subfolder to the subscriptions and courierimapsubscribed files diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index 7262cc1e27..3c084b3060 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -99,6 +99,7 @@ class bind_plugin { $records = $app->db->queryAllRecords("SELECT * FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'"); $tpl->setLoop('zones',$records); + $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri.'.substr($zone['origin'],0,-1)); $app->log("Writing BIND domain file: ".$filename,LOGLEVEL_DEBUG); @@ -106,6 +107,7 @@ class bind_plugin { exec('chown '.escapeshellcmd($dns_config['bind_user']).':'.escapeshellcmd($dns_config['bind_group']).' '.$filename); unset($tpl); unset($records); + unset($records_out); unset($zone); } @@ -136,9 +138,9 @@ class bind_plugin { $this->write_named_conf($data,$dns_config); //* Delete the domain file - $filename = $dns_config['bind_zonefiles_dir'].'/pri.'.substr($data['old']['origin'],0,-1); - if(is_file($filename)) unset($filename); - $app->log("Deleting BIND domain file: ".$filename,LOGLEVEL_DEBUG); + $zone_file_name = $dns_config['bind_zonefiles_dir'].'/pri.'.substr($data['old']['origin'],0,-1); + if(is_file($zone_file_name)) unlink($zone_file_name); + $app->log("Deleting BIND domain file: ".$zone_file_name,LOGLEVEL_DEBUG); //* Reload bind nameserver $app->services->restartServiceDelayed('bind','reload'); @@ -186,11 +188,18 @@ class bind_plugin { function write_named_conf($data, $dns_config) { global $app, $conf; - $tmps = $app->db->queryAllRecords("SELECT origin FROM dns_soa WHERE active = 'Y'"); + $tmps = $app->db->queryAllRecords("SELECT origin, xfer, also_notify FROM dns_soa WHERE active = 'Y'"); $zones = array(); + foreach($tmps as $tmp) { + + $options = ''; + if(trim($tmp['xfer']) != '') $options .= ' allow-transfer {'.str_replace(',',';',$tmp['xfer']).";};\n"; + if(trim($tmp['also_notify']) != '') $options .= ' also-notify {'.str_replace(',',';',$tmp['also_notify']).";};\n"; + $zones[] = array( 'zone' => substr($tmp['origin'],0,-1), - 'zonefile_path' => $dns_config['bind_zonefiles_dir'].'/pri.'.substr($tmp['origin'],0,-1) + 'zonefile_path' => $dns_config['bind_zonefiles_dir'].'/pri.'.substr($tmp['origin'],0,-1), + 'options' => $options ); } diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 216df1121a..3732cc7e25 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -86,7 +86,11 @@ class postfix_server_plugin { if($mail_config["relayhost"] != '') { exec("postconf -e 'relayhost = ".$mail_config["relayhost"]."'"); - exec("postconf -e 'smtp_sasl_auth_enable = yes'"); + if($mail_config["relayhost_user"] != '' && $mail_config["relayhost_password"] != '') { + exec("postconf -e 'smtp_sasl_auth_enable = yes'"); + } else { + exec("postconf -e 'smtp_sasl_auth_enable = no'"); + } exec("postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'"); exec("postconf -e 'smtp_sasl_security_options ='"); -- GitLab