diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index f385da6d8b7bc7ac6af174071fa208d8666c9a9c..7ac6f8110ce44340f8cd6834b7792d5a8cf8a2bb 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 4b1203ae50410805021f8e1f932428eb827d2c9f..66c26655dbc03ffe1b4930b7b957b938c2205306 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 98ff122525cc770001daef5fc4eb614e0450fd5a..0126c998d49f8177d28e147c1642a6e9fe4532c4 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 c8eb70f9bec2521eab1cd3ac6ace84d59da68c85..764730d096d88781daf63c2dc4cd99a6571965dc 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 5bc92d7d6d3b9418e164128e45faba19ed680346..faa42f3d7081b976c8877dd772a5717101070cf5 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 8d1f70c163fb012c98c71058bfd1520cbd137bd4..260c214a77280cd9bd352127a7afaa71f4ad14cf 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 7262cc1e27452d4842110925bafb3b55dc3041ac..3c084b306057251d1e7277a39f3a65e9de0c4082 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 216df1121ad1067279df3267217f69517a635672..3732cc7e2594c52bb36f2cf2b2d51f828ed32589 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 ='");