Skip to content

Commit d576cad

Browse files
committed
Merge remote-tracking branch 'origin/develop' into 5374-mail-last-accessed-frontend
2 parents 710a652 + 5794207 commit d576cad

Some content is hidden

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

56 files changed

+363
-128
lines changed

.gitignore

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
.idea
22
/nbproject/private/
3-
.vscode
43
.phplint-cache
54
*.swp
65

@@ -37,4 +36,18 @@ Temporary Items
3736
.apdisk
3837

3938
# Configuration for the Nova editor
40-
.nova
39+
.nova
40+
41+
# VS Code files for those working on multiple tools
42+
.vscode/*
43+
*.code-workspace
44+
45+
# Local History for Visual Studio Code
46+
.history/
47+
48+
# Built Visual Studio Code Extensions
49+
*.vsix
50+
51+
# Visual Studio code coverage results
52+
*.coverage
53+
*.coveragexml

install/dist/lib/debian60.lib.php

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function configure_dovecot()
6161
if(is_file($config_dir.'/master.cf')){
6262
copy($config_dir.'/master.cf', $config_dir.'/master.cf~2');
6363
}
64-
if(is_file($config_dir.'/master.cf~')){
64+
if(is_file($config_dir.'/master.cf~2')){
6565
chmod($config_dir.'/master.cf~2', 0400);
6666
}
6767
//* Configure master.cf and add a line for deliver
@@ -209,14 +209,6 @@ public function configure_dovecot()
209209

210210
}
211211

212-
public function configure_apache() {
213-
global $conf;
214-
215-
if(file_exists('/etc/apache2/mods-available/fcgid.conf')) replaceLine('/etc/apache2/mods-available/fcgid.conf', 'MaxRequestLen', 'MaxRequestLen 15728640', 0, 1);
216-
217-
parent::configure_apache();
218-
}
219-
220212
public function configure_fail2ban() {
221213
/*
222214
copy('tpl/dovecot-pop3imap.conf.master',"/etc/fail2ban/filter.d/dovecot-pop3imap.conf");

install/dist/lib/fedora.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public function configure_dovecot()
144144
if(is_file($config_dir.'/master.cf')){
145145
copy($config_dir.'/master.cf', $config_dir.'/master.cf~2');
146146
}
147-
if(is_file($config_dir.'/master.cf~')){
147+
if(is_file($config_dir.'/master.cf~2')){
148148
chmod($config_dir.'/master.cf~2', 0400);
149149
}
150150
//* Configure master.cf and add a line for deliver

install/dist/lib/gentoo.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ public function configure_dovecot() {
399399
if(is_file($config_dir.'/master.cf')){
400400
copy($config_dir.'/master.cf', $config_dir.'/master.cf~2');
401401
}
402-
if(is_file($config_dir.'/master.cf~')){
402+
if(is_file($config_dir.'/master.cf~2')){
403403
chmod($config_dir.'/master.cf~2', 0400);
404404
}
405405
//* Configure master.cf and add a line for deliver

install/dist/lib/opensuse.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ public function configure_dovecot()
383383
if(is_file($config_dir.'/master.cf')){
384384
copy($config_dir.'/master.cf', $config_dir.'/master.cf~2');
385385
}
386-
if(is_file($config_dir.'/master.cf~')){
386+
if(is_file($config_dir.'/master.cf~2')){
387387
chmod($config_dir.'/master.cf~2', 0400);
388388
}
389389
//* Configure master.cf and add a line for deliver

install/lib/installer_base.lib.php

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ public function configure_jailkit() {
916916

917917
if (is_dir($config_dir)) {
918918
if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~');
919-
if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~');
919+
if(is_file($config_dir.'/'.$jk_chrootsh)) copy($config_dir.'/'.$jk_chrootsh, $config_dir.'/'.$jk_chrootsh.'~');
920920

921921
if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master')) {
922922
copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
@@ -1353,7 +1353,7 @@ public function configure_postfix($options = '') {
13531353
$change_maildrop_flags = @(preg_match("/$quoted_regex/", $configfile))?false:true;
13541354
}
13551355
if ($change_maildrop_flags) {
1356-
//* Change maildrop service in posfix master.cf
1356+
//* Change maildrop service in postfix master.cf
13571357
if(is_file($config_dir.'/master.cf')) {
13581358
copy($config_dir.'/master.cf', $config_dir.'/master.cf~');
13591359
}
@@ -1362,8 +1362,8 @@ public function configure_postfix($options = '') {
13621362
}
13631363
$configfile = $config_dir.'/master.cf';
13641364
$content = rf($configfile);
1365-
$content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}',
1366-
'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}',
1365+
$content = preg_replace('/flags=(DRX?hu) user=vmail argv=\/usr\/bin\/maildrop -d \${recipient}/',
1366+
'flags=$1 user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' \${extension} \${recipient} \${user} \${nexthop} \${sender}',
13671367
$content);
13681368
wf($configfile, $content);
13691369
}
@@ -1539,7 +1539,7 @@ public function configure_dovecot() {
15391539
if(is_file($config_dir.'/master.cf')){
15401540
copy($config_dir.'/master.cf', $config_dir.'/master.cf~2');
15411541
}
1542-
if(is_file($config_dir.'/master.cf~')){
1542+
if(is_file($config_dir.'/master.cf~2')){
15431543
chmod($config_dir.'/master.cf~2', 0400);
15441544
}
15451545
//* Configure master.cf and add a line for deliver
@@ -2049,7 +2049,7 @@ public function configure_rspamd() {
20492049
rename("/etc/rspamd/local.d/greylist.conf", "/etc/rspamd/local.d/greylist.old");
20502050
}
20512051

2052-
exec('chmod a+r /etc/rspamd/local.d/* /etc/rspamd/local.d/maps.d/* /etc/rspamd/override.d/*');
2052+
exec('chmod a+r,-x+X /etc/rspamd/local.d/* /etc/rspamd/local.d/maps.d/* /etc/rspamd/override.d/*');
20532053
# protect passwords in these files
20542054
exec('chgrp _rspamd /etc/rspamd/local.d/redis.conf /etc/rspamd/local.d/classifier-bayes.conf');
20552055
exec('chmod 640 /etc/rspamd/local.d/redis.conf /etc/rspamd/local.d/classifier-bayes.conf');
@@ -2396,13 +2396,17 @@ public function configure_apache() {
23962396
replaceLine('/etc/apache2/ports.conf', 'Listen 443', 'Listen 443', 1);
23972397

23982398
// Comment out the namevirtualhost lines, as they were added by ispconfig in ispconfig.conf file again
2399-
replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1);
2400-
replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1);
2399+
replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1, 0);
2400+
replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1, 0);
24012401
}
24022402

24032403
if(is_file('/etc/apache2/mods-available/fcgid.conf')) {
24042404
// add or modify the parameters for fcgid.conf
2405-
replaceLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen','MaxRequestLen 15728640',1);
2405+
if(hasLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen')) {
2406+
replaceLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen',' MaxRequestLen 15728640',1);
2407+
} else {
2408+
preg_replace('/^(.*\n)(.*)$/sU', '$1 MaxRequestLen 15728640\n$2', '/etc/apache2/mods-available/fcgid.conf');
2409+
}
24062410
}
24072411

24082412
if(is_file('/etc/apache2/apache.conf')) {
@@ -2984,15 +2988,15 @@ public function make_ispconfig_ssl_cert() {
29842988
$dnsa=dns_get_record($hostname, DNS_A);
29852989
if($dnsa) {
29862990
foreach ($dnsa as $rec) {
2987-
$dns_ips[] = $rec['ip'];
2991+
if(is_array($rec) && isset($rec['ip'])) $dns_ips[] = $rec['ip'];
29882992
}
29892993
}
29902994
}
29912995
if (checkdnsrr($hostname, 'AAAA')) {
29922996
$dnsaaaa=dns_get_record($hostname, DNS_AAAA);
29932997
if($dnsaaaa) {
29942998
foreach ($dnsaaaa as $rec) {
2995-
$dns_ips[] = $rec['ip'];
2999+
if(is_array($rec) && isset($rec['ip'])) $dns_ips[] = $rec['ip'];
29963000
}
29973001
}
29983002
}
@@ -3047,6 +3051,8 @@ public function make_ispconfig_ssl_cert() {
30473051
$crt_issuer = exec("openssl x509 -in ".escapeshellarg($ssl_crt_file)." -inform PEM -noout -issuer");
30483052
}
30493053

3054+
$issued_successfully = false;
3055+
30503056
if ((@file_exists($ssl_crt_file) && ($crt_subject == $crt_issuer)) || (!@is_dir($acme_cert_dir) || !@file_exists($check_acme_file) || !@file_exists($ssl_crt_file) || md5_file($check_acme_file) != md5_file($ssl_crt_file)) && $ip_address_match == true) {
30513057

30523058
// This script is needed earlier to check and open http port 80 or standalone might fail
@@ -3145,8 +3151,6 @@ public function make_ispconfig_ssl_cert() {
31453151
}
31463152
}
31473153

3148-
$issued_successfully = false;
3149-
31503154
// Backup existing ispserver ssl files
31513155
//
31523156
// We may find valid or broken symlinks or actual files here.
@@ -3923,7 +3927,7 @@ public function install_crontab() {
39233927
$install_dir = $conf['ispconfig_install_dir'];
39243928

39253929
//* Root Crontab
3926-
exec('crontab -u root -l > crontab.txt');
3930+
exec('crontab -u root -l > crontab.txt 2>/dev/null');
39273931
$existing_root_cron_jobs = file('crontab.txt');
39283932

39293933
// remove existing ispconfig cronjobs, in case the syntax has changed
@@ -3952,7 +3956,7 @@ public function install_crontab() {
39523956
//* Getmail crontab
39533957
if(is_user('getmail')) {
39543958
$cf = $conf['getmail'];
3955-
exec('crontab -u getmail -l > crontab.txt');
3959+
exec('crontab -u getmail -l > crontab.txt 2>/dev/null');
39563960
$existing_cron_jobs = file('crontab.txt');
39573961

39583962
$cron_jobs = array(

install/tpl/config.inc.php.master

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ $conf['timezone'] = '{timezone}';
158158

159159
//** Misc.
160160
$conf['interface_logout_url'] = ''; // example: http://www.domain.tld/
161+
$conf['interface_base_url'] = ''; // example: http://www.domain.tld (no trailing slash)
161162

162163

163164
//** Auto Load Modules

install/tpl/jk_init.ini.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ includesections = php_common
240240

241241
[php8_2]
242242
comment = php version 8.2
243-
paths = /usr/bin/php8.2, /usr/lib/php/8.2/, /usr/lib/php/20210902/, /usr/share/php/8.2/, /etc/php/8.2/cli/, /etc/php/8.2/mods-available/
243+
paths = /usr/bin/php8.2, /usr/lib/php/8.2/, /usr/lib/php/20220829/, /usr/share/php/8.2/, /etc/php/8.2/cli/, /etc/php/8.2/mods-available/
244244
includesections = php_common
245245

246246
[imagemagick]

install/tpl/server.ini.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ mailbox_size_limit=0
5858
message_size_limit=0
5959
mailbox_soft_delete=0
6060
mailbox_quota_stats=y
61-
realtime_blackhole_list=zen.spamhaus.org
61+
realtime_blackhole_list=
6262
overquota_notify_threshold=90
6363
overquota_notify_admin=y
6464
overquota_notify_reseller=y

install/update.php

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,33 @@
279279

280280
//* initialize the master DB, if we have a multiserver setup
281281
if($conf['mysql']['master_slave_setup'] == 'y') {
282+
//** Get MySQL root credentials
283+
$finished = false;
284+
do {
285+
$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname');
286+
$tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
287+
$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');
288+
$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
289+
$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
290+
291+
//* Initialize the MySQL server connection
292+
if(@mysqli_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password, $tmp_mysql_server_database, (int)$tmp_mysql_server_port)) {
293+
$conf['mysql']['master_host'] = $tmp_mysql_server_host;
294+
$conf['mysql']['master_port'] = $tmp_mysql_server_port;
295+
$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
296+
$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
297+
$conf['mysql']['master_database'] = $tmp_mysql_server_database;
298+
$finished = true;
299+
} else {
300+
swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
301+
}
302+
} while ($finished == false);
303+
unset($finished);
282304

283305
// initialize the connection to the master database
284306
$inst->dbmaster = new db();
285307
if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
286-
$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_ispconfig_user"], $conf['mysql']["master_ispconfig_password"], $conf['mysql']["master_port"]);
308+
$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"], $conf['mysql']["master_port"]);
287309
$inst->dbmaster->setDBName($conf['mysql']["master_database"]);
288310
} else {
289311
$inst->dbmaster = $inst->db;
@@ -330,35 +352,6 @@
330352
$reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no','reconfigure_permissions_in_master_database');
331353

332354
if($reconfigure_master_database_rights_answer == 'yes') {
333-
//** Get MySQL root credentials, to upgrade the dbmaster connection.
334-
$finished = false;
335-
do {
336-
$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname');
337-
$tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
338-
$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');
339-
$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
340-
$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
341-
342-
//* Initialize the MySQL server connection
343-
if(@mysqli_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password, $tmp_mysql_server_database, (int)$tmp_mysql_server_port)) {
344-
$conf['mysql']['master_host'] = $tmp_mysql_server_host;
345-
$conf['mysql']['master_port'] = $tmp_mysql_server_port;
346-
$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
347-
$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
348-
$conf['mysql']['master_database'] = $tmp_mysql_server_database;
349-
$finished = true;
350-
} else {
351-
swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
352-
}
353-
} while ($finished == false);
354-
unset($finished);
355-
356-
// initialize the connection to the master database
357-
$inst->dbmaster = new db();
358-
if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
359-
$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"], $conf['mysql']["master_port"]);
360-
$inst->dbmaster->setDBName($conf['mysql']["master_database"]);
361-
362355
$inst->grant_master_database_rights();
363356
}
364357
//}

0 commit comments

Comments
 (0)