From a59ad3ae1bd0b9bf773120074113f4a9cf19864f Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 09 Jun 2010 09:31:02 -0400
Subject: [PATCH] Merged revisions 1806-1811,1816 from stable.

---
 interface/web/dns/form/dns_soa.tform.php               |    2 +-
 server/conf/autoresponder.master                       |    2 +-
 server/plugins-available/postfix_server_plugin.inc.php |    6 +++++-
 server/conf/bind_named.conf.local.master               |    2 +-
 server/conf/bind_pri.domain.master                     |    2 +-
 interface/lib/classes/listform.inc.php                 |    7 ++++++-
 server/plugins-available/bind_plugin.inc.php           |   19 ++++++++++++++-----
 server/lib/classes/system.inc.php                      |    4 +++-
 8 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index f385da6..7ac6f81 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -129,12 +129,17 @@
         //* 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 4b1203a..66c2665 100644
--- a/interface/web/dns/form/dns_soa.tform.php
+++ b/interface/web/dns/form/dns_soa.tform.php
@@ -82,7 +82,7 @@
 										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 98ff122..0126c99 100644
--- a/server/conf/autoresponder.master
+++ b/server/conf/autoresponder.master
@@ -13,7 +13,7 @@
                       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 c8eb70f..764730d 100644
--- a/server/conf/bind_named.conf.local.master
+++ b/server/conf/bind_named.conf.local.master
@@ -3,7 +3,7 @@
 <tmpl_if name='zone'>
 zone "<tmpl_var name='zone'>" {
         type master;
-        file "<tmpl_var name='zonefile_path'>";
+<tmpl_var name='options'>        file "<tmpl_var name='zonefile_path'>";
 };
 </tmpl_if>
 </tmpl_loop>
diff --git a/server/conf/bind_pri.domain.master b/server/conf/bind_pri.domain.master
index 5bc92d7..faa42f3 100644
--- a/server/conf/bind_pri.domain.master
+++ b/server/conf/bind_pri.domain.master
@@ -39,7 +39,7 @@
 {tmpl_var name='name'}      RP        {tmpl_var name='data'}
 </tmpl_if>
 <tmpl_if name="type" op='==' value='SRV'>
-{tmpl_var name='name'}      SRV        {tmpl_var name='data'}
+{tmpl_var name='name'}      SRV        0 {tmpl_var name='data'}
 </tmpl_if>
 <tmpl_if name="type" op='==' value='TXT'>
 {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 8d1f70c..260c214 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1202,7 +1202,9 @@
 		
 		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 7262cc1..3c084b3 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -99,6 +99,7 @@
 		
 			$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 @@
 			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 @@
 		$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 @@
 	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 216df11..3732cc7 100644
--- a/server/plugins-available/postfix_server_plugin.inc.php
+++ b/server/plugins-available/postfix_server_plugin.inc.php
@@ -86,7 +86,11 @@
 		
 		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 ='");
 			

--
Gitblit v1.9.1