Skip to content

Commit 1653995

Browse files
author
Florian Schaal
committed
fixed (re)creation of DKIM Path and add some warn-logs
1 parent a5ce432 commit 1653995

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

server/plugins-available/mail_plugin_dkim.inc.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,12 @@ function check_system($data) {
119119
}
120120
/* dir for dkim-keys writeable? */
121121
$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
122-
if (isset($mail_config['dkim_path']) && (!empty($mail_config['dkim_path'])) && isset($data['new']['dkim_private']) && !empty($data['new']['dkim_private'])) {
123-
122+
if ( isset($mail_config['dkim_path']) &&
123+
!empty($mail_config['dkim_path']) &&
124+
isset($data['new']['dkim_private']) &&
125+
!empty($data['new']['dkim_private']) &&
126+
$mail_config['dkim_path'] != '/'
127+
) {
124128
if (!is_dir($mail_config['dkim_path'])) {
125129
$app->log('DKIM Path '.$mail_config['dkim_path'].' not found - (re)created.', LOGLEVEL_DEBUG);
126130
if($app->system->is_user('amavis')) {
@@ -133,10 +137,12 @@ function check_system($data) {
133137
}
134138
if(!empty($amavis_user)) {
135139
mkdir($mail_config['dkim_path'], 0750, true);
136-
exec('chown '.$amavis_user.' /var/lib/amavis/dkim');
140+
exec('chown '.$amavis_user.' '.escapeshellarg($mail_config['dkim_path']));
137141
unset($amavis_user);
138142
} else {
139143
mkdir($mail_config['dkim_path'], 0755, true);
144+
$app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path']
145+
, LOGLEVEL_WARNING);
140146
}
141147
}
142148

@@ -194,6 +200,8 @@ function write_dkim_key($key_file, $key_value, $key_domain) {
194200
if (!file_put_contents($key_file.'.public', $public_key) === false)
195201
$app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG);
196202
else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG);
203+
} else {
204+
$app->log('Unable to save DKIM Privte-key to '.$key_file.'.private', LOGLEVEL_ERROR);
197205
}
198206
return $success;
199207
}

0 commit comments

Comments
 (0)