From 165399547143a2c88d1546a814370ccef79ddfb6 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Thu, 14 Aug 2014 13:51:38 +0200 Subject: [PATCH] fixed (re)creation of DKIM Path and add some warn-logs --- server/plugins-available/mail_plugin_dkim.inc.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index a74c4b8ed..f53b1087f 100644 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -119,8 +119,12 @@ class mail_plugin_dkim { } /* dir for dkim-keys writeable? */ $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - if (isset($mail_config['dkim_path']) && (!empty($mail_config['dkim_path'])) && isset($data['new']['dkim_private']) && !empty($data['new']['dkim_private'])) { - + if ( isset($mail_config['dkim_path']) && + !empty($mail_config['dkim_path']) && + isset($data['new']['dkim_private']) && + !empty($data['new']['dkim_private']) && + $mail_config['dkim_path'] != '/' + ) { if (!is_dir($mail_config['dkim_path'])) { $app->log('DKIM Path '.$mail_config['dkim_path'].' not found - (re)created.', LOGLEVEL_DEBUG); if($app->system->is_user('amavis')) { @@ -133,10 +137,12 @@ class mail_plugin_dkim { } if(!empty($amavis_user)) { mkdir($mail_config['dkim_path'], 0750, true); - exec('chown '.$amavis_user.' /var/lib/amavis/dkim'); + exec('chown '.$amavis_user.' '.escapeshellarg($mail_config['dkim_path'])); unset($amavis_user); } else { mkdir($mail_config['dkim_path'], 0755, true); + $app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path'] +, LOGLEVEL_WARNING); } } @@ -194,6 +200,8 @@ class mail_plugin_dkim { if (!file_put_contents($key_file.'.public', $public_key) === false) $app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to save DKIM Privte-key to '.$key_file.'.private', LOGLEVEL_ERROR); } return $success; } -- GitLab