From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Sun, 10 Jul 2016 05:02:35 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- install/dist/lib/opensuse.lib.php | 61 ++++++++++++++++-------------- 1 files changed, 33 insertions(+), 28 deletions(-) diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 612d415..ad70fe2 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -197,6 +197,27 @@ if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); + //* Create auxillary postfix conf files + $configfile = 'helo_access'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + # todo: look up this server's ip addrs and loop through each + # todo: look up domains hosted on this server and loop through each + wf($config_dir.'/'.$configfile, $content); + + $configfile = 'blacklist_helo'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + wf($config_dir.'/'.$configfile, $content); + //* Make a backup copy of the main.cf file copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); @@ -228,10 +249,10 @@ //* Check maildrop service in posfix master.cf $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; $configfile = $config_dir.'/master.cf'; - if ($this->postfix_master()) { + if($this->get_postfix_service('maildrop', 'unix')) { exec ("postconf -M maildrop.unix &> /dev/null", $out, $ret); $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; - } else { //* fallback - postfix < 2.9 + } else { $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; } if ($change_maildrop_flags) { @@ -365,16 +386,9 @@ } $config_dir = $conf['postfix']['config_dir']; + //* Configure master.cf and add a line for deliver - if ($this->postfix_master()) { - exec ("postconf -M dovecot.unix", $out, $ret); //* Postfix 2.9 - if (!isset($out[0])) exec ("postconf -M dovecot/unix", $out, $ret); //* Postfix >= 2.11 - $add_dovecot_service = @($out[0]=='')?true:false; - } else { //* fallback - postfix < 2.9 - $content = rf($config_dir.'/master.cf'); - $add_dovecot_service = @(!stristr($content, "dovecot/deliver"))?true:false; - } - if($add_dovecot_service) { + if(!$this->get_postfix_service('dovecot', 'unix')) { //* backup if(is_file($config_dir.'/master.cf')){ copy($config_dir.'/master.cf', $config_dir.'/master.cf~2'); @@ -384,7 +398,7 @@ } //* Configure master.cf and add a line for deliver $content = rf($conf["postfix"]["config_dir"].'/master.cf'); - $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'; + $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; af($conf["postfix"]["config_dir"].'/master.cf', $deliver_content); unset($content); unset($deliver_content); @@ -457,6 +471,10 @@ $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); $content = str_replace('{server_id}', $conf['server_id'], $content); + # enable iterate_query for dovecot2 + if(version_compare($dovecot_version,2, '>=')) { + $content = str_replace('# iterate_query', 'iterate_query', $content); + } wf("$config_dir/$configfile", $content); exec("chmod 600 $config_dir/$configfile"); @@ -503,22 +521,9 @@ $config_dir = $conf['postfix']['config_dir']; // Adding amavis-services to the master.cf file if the service does not already exists - if ($this->postfix_master()) { - exec ("postconf -M amavis.unix &> /dev/null", $out, $ret); - $add_amavis = @($out[0]=='')?true:false; - unset($out); - exec ("postconf -M 127.0.0.1:10025.inet &> /dev/null", $out, $ret); - $add_amavis_10025 = @($out[0]=='')?true:false; - unset($out); - exec ("postconf -M 127.0.0.1:10027.inet &> /dev/null", $out, $ret); - $add_amavis_10027 = @($out[0]=='')?true:false; - unset($out); - } else { //* fallback - postfix < 2.9 - $content = rf($conf['postfix']['config_dir'].'/master.cf'); - $add_amavis = @(!preg_match('/^amavis\s+unix\s+/m', $content))?true:false; - $add_amavis_10025 = @(!preg_match('/^127.0.0.1:10025\s+/m', $content))?true:false; - $add_amavis_10027 = @(!preg_match('/^127.0.0.1:10027\s+/m', $content))?true:false; - } + $add_amavis = !$this->get_postfix_service('amavis','unix'); + $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); + $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) { //* backup master.cf -- Gitblit v1.9.1