diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 42da878c3de2216bb9b6bf363a3c6e9874ff7191..8ed776519d0b0249e684f7c94c9af3c107a0bbb5 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -33,6 +33,19 @@ class installer extends installer_base { public function configure_dovecot() { global $conf; + + $virtual_transport = 'dovecot'; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + } $config_dir = $conf['dovecot']['config_dir']; @@ -57,7 +70,7 @@ class installer extends installer_base { // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', + 'virtual_transport = '.$virtual_transport, 'smtpd_sasl_type = dovecot', 'smtpd_sasl_path = private/auth' ); diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 078f64901dfbd8ce3db935c00209ed6b72d01f64..281d645ef74593ded9907770438abffe76340f2c 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -376,6 +376,19 @@ class installer_dist extends installer_base { { global $conf; + $virtual_transport = 'dovecot'; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + } + $config_dir = $conf['dovecot']['config_dir']; //* Use /etc/dovecot as config dir if exists @@ -402,7 +415,7 @@ class installer_dist extends installer_base { // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', + 'virtual_transport = '.$virtual_transport, 'smtpd_sasl_type = dovecot', 'smtpd_sasl_path = private/auth', ); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index b419082ccd37668bae040f1386c34eef691c63dd..8589343f29cba0f4918fffa77b145e150f257f4a 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -220,6 +220,19 @@ class installer extends installer_base { global $conf; + $virtual_transport = 'dovecot'; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + } + $config_dir = $conf['dovecot']['config_dir']; $configfile = $conf['postfix']['config_dir'].'/master.cf'; @@ -245,7 +258,7 @@ class installer extends installer_base //* Reconfigure postfix to use dovecot authentication $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', + 'virtual_transport = '.$virtual_transport, 'smtpd_sasl_type = dovecot', 'smtpd_sasl_path = private/auth' ); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 0bcf58d7882151878a729a9a800ffed71452adb3..055f3d73c6e97d77f99d2ecdd1bccc04c1eb1b05 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -430,6 +430,19 @@ class installer_dist extends installer_base { { global $conf; + $virtual_transport = 'dovecot'; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + } + $config_dir = $conf['dovecot']['config_dir']; //* Configure master.cf and add a line for deliver @@ -453,7 +466,7 @@ class installer_dist extends installer_base { // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', + 'virtual_transport = '.$virtual_transport, 'smtpd_sasl_type = dovecot', 'smtpd_sasl_path = private/auth', ); diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 6deaa7842ede67cb463bebd7d061c64842ef3705..03d3c50764102805a88074d9918ca7662a4de565 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -933,6 +933,19 @@ class installer_base { public function configure_dovecot() { global $conf; + + $virtual_transport = 'dovecot'; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $inst->db->queryOneRecord("SELECT * FROM ".$conf["mysql"]["database"].".server WHERE server_id = ".$conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + } + } $config_dir = $conf['dovecot']['config_dir']; @@ -957,7 +970,7 @@ class installer_base { // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', + 'virtual_transport = '.$virtual_transport, 'smtpd_sasl_type = dovecot', 'smtpd_sasl_path = private/auth' );