Skip to content

Commit 72695f0

Browse files
committed
Merged Revisions 3771-3801 from stable branch.
1 parent a126d73 commit 72695f0

File tree

524 files changed

+1942
-883
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

524 files changed

+1942
-883
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ function configure_postfix($options = '')
100100
'smtpd_tls_security_level = may',
101101
'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
102102
'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
103-
'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
103+
'transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
104104
'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
105105
'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf',
106106
'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps',

install/dist/lib/gentoo.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function configure_postfix($options = '')
9797
'smtpd_tls_security_level = may',
9898
'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
9999
'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
100-
'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
100+
'transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
101101
'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
102102
'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps',
103103
'smtpd_sender_restrictions = check_sender_access mysql:'.$config_dir.'/mysql-virtual_sender.cf',

install/dist/lib/opensuse.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ function configure_postfix($options = '')
114114
'smtpd_tls_security_level = may',
115115
'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
116116
'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
117-
'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
117+
'transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
118118
'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
119119
'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf',
120120
'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps',

install/lib/installer_base.lib.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,23 @@ public function configure_mailman($status = 'insert') {
566566
}
567567
}
568568
}
569+
570+
$config_dir = $conf['mailman']['config_dir'].'/';
571+
$full_file_name = $config_dir.'virtual_to_transport.sh';
572+
573+
//* Backup exiting virtual_to_transport.sh script
574+
if(is_file($full_file_name)) {
575+
copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
576+
}
577+
578+
copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
579+
chgrp($full_file_name,'list');
580+
chmod($full_file_name,0750);
581+
582+
if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
583+
exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
584+
585+
exec('/usr/lib/mailman/bin/genaliases');
569586

570587
$virtual_domains = '';
571588
if($status == 'update')
@@ -681,7 +698,7 @@ public function configure_postfix($options = '') {
681698
'smtpd_tls_security_level = may',
682699
'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
683700
'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
684-
'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
701+
'transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
685702
'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
686703
'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf',
687704
'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps',
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE `client` CHANGE `web_php_options` `web_php_options` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'no,fast-cgi,cgi,mod,suphp,php-fpm';

install/sql/ispconfig3.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ CREATE TABLE `client` (
185185
`limit_web_ip` text,
186186
`limit_web_domain` int(11) NOT NULL DEFAULT '-1',
187187
`limit_web_quota` int(11) NOT NULL DEFAULT '-1',
188-
`web_php_options` varchar(255) NOT NULL DEFAULT 'no,fast-cgi,cgi,mod,suphp',
188+
`web_php_options` varchar(255) NOT NULL DEFAULT 'no,fast-cgi,cgi,mod,suphp,php-fpm',
189189
`limit_cgi` enum('n','y') NOT NULL DEFAULT 'n',
190190
`limit_ssi` enum('n','y') NOT NULL DEFAULT 'n',
191191
`limit_perl` enum('n','y') NOT NULL DEFAULT 'n',

install/tpl/apps_php_fpm_pool.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ user = {fpm_user}
99
group = {fpm_group}
1010

1111
pm = dynamic
12-
pm.max_children = 10
12+
pm.max_children = 50
1313
pm.start_servers = 2
1414
pm.min_spare_servers = 1
1515
pm.max_spare_servers = 5
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
sed -r -e 's/(^[^#]\S+\s+).+$/\1local/' $1 > /var/lib/mailman/data/transport-mailman
3+
/usr/sbin/postmap /var/lib/mailman/data/transport-mailman

install/tpl/mm_cfg.py.master

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,7 @@ POSTFIX_STYLE_VIRTUAL_DOMAINS = [{virtual_domains}]
102102
# http://www.jamesh.id.au/articles/mailman-spamassassin/
103103
# GLOBAL_PIPELINE.insert(1, 'SpamAssassin')
104104

105+
POSTFIX_MAP_CMD = '/etc/mailman/virtual_to_transport.sh'
106+
105107
# Note - if you're looking for something that is imported from mm_cfg, but you
106108
# didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py.

interface/lib/classes/db_mysql.inc.php

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class db extends mysqli
4545
public $errorMessage = ''; // last error message
4646
private $errorLocation = '';// last error location
4747
public $show_error_messages = true; // false in server, true in interface
48+
private $isConnected = false; // needed to know if we have a valid mysqli object from the constructor
4849

4950
// constructor
5051
public function __construct($prefix = '') {
@@ -58,12 +59,20 @@ public function __construct($prefix = '') {
5859
$this->dbNewLink = $conf[$prefix.'db_new_link'];
5960
$this->dbClientFlags = $conf[$prefix.'db_client_flags'];
6061
parent::__construct($conf[$prefix.'db_host'], $conf[$prefix.'db_user'],$conf[$prefix.'db_password'],$conf[$prefix.'db_database']);
61-
if ($this->connect_error) {
62+
$try = 0;
63+
while(!is_null($this->connect_error) && $try < 5) {
64+
if($try > 0) sleep(1);
65+
66+
$try++;
6267
$this->updateError('DB::__construct');
63-
return false;
64-
} else {
65-
$this->setCharacterEncoding();
68+
69+
parent::__construct($conf[$prefix.'db_host'], $conf[$prefix.'db_user'],$conf[$prefix.'db_password'],$conf[$prefix.'db_database']);
6670
}
71+
72+
if(is_null($this->connect_error)) $this->isConnected = true;
73+
else return false;
74+
75+
$this->setCharacterEncoding();
6776
}
6877

6978
public function __destruct() {
@@ -74,7 +83,7 @@ public function __destruct() {
7483
public function updateError($location) {
7584
global $app;
7685

77-
if($this->connect_error) {
86+
if(!is_null($this->connect_error)) {
7887
$this->errorNumber = $this->connect_errno;
7988
$this->errorMessage = $this->connect_error;
8089
} else {
@@ -95,18 +104,20 @@ public function updateError($location) {
95104
}
96105

97106
private function setCharacterEncoding() {
107+
if($this->isConnected == false) return false;
98108
parent::query( 'SET NAMES '.$this->dbCharset);
99109
parent::query( "SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'");
100110
}
101111

102112
public function query($queryString) {
113+
if($this->isConnected == false) return false;
103114
$try = 0;
104115
do {
105116
$try++;
106-
$ok = parent::ping();
117+
$ok = $this->ping();
107118
if(!$ok) {
108-
if(!parent::real_connect($this->dbHost, $this->dbUser, $this->dbPass,$this->dbName)) {
109-
if($try > 9) {
119+
if(!$this->real_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) {
120+
if($try > 4) {
110121
$this->updateError('DB::query -> reconnect');
111122
return false;
112123
} else {
@@ -479,7 +490,7 @@ public function dropTable($table_name) {
479490

480491
// gibt Array mit Tabellennamen zur�ck
481492
public function getTables($database_name = '') {
482-
493+
if($this->isConnected == false) return false;
483494
if($database_name == '') $database_name = $this->dbName;
484495
$result = parent::query("SHOW TABLES FROM $database_name");
485496
for ($i = 0; $i < $result->num_rows; $i++) {

0 commit comments

Comments
 (0)