]> git.proxmox.com Git - pmg-api.git/commitdiff
pmg-smtp-filter: avoid long sleep in testmode
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 16 Feb 2017 08:14:53 +0000 (09:14 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 16 Feb 2017 08:14:53 +0000 (09:14 +0100)
use a retry loop instead.

bin/pmg-smtp-filter

index 92221adf6daf59edeca0573222d77ab6bd6d1d52..9d22aa4126ba4b3d9d882499173249008342a7a6 100755 (executable)
@@ -5,7 +5,7 @@ use warnings;
 
 use Carp;
 use Getopt::Long;
-use Time::HiRes qw (gettimeofday tv_interval);
+use Time::HiRes qw (usleep gettimeofday tv_interval);
 use POSIX qw(:sys_wait_h errno_h signal_h);
 
 use MIME::Parser;
@@ -903,17 +903,20 @@ if (!$opt_testmode) {
     $server->run ();
 } else {
     if (fork) {
-       $server->run ();
+       $server->run();
     } else {
-       sleep (1);
+
        my $sender ='sender@proxtest.com';
        my $targets = ['target1@proxtest.com',
                       'target2@proxtest.com',
                       'target3@proxtest.com'];
 
-       my $smtp = Net::SMTP->new ('127.0.0.1', Port => 10023);
-
-       die "unable to connect $!" if !$smtp;
+       my $smtp;
+       while (!$smtp) {
+           $smtp = Net::SMTP->new ('127.0.0.1', Port => 10023);
+           last if $smtp;
+           usleep(10);
+       }
 
        # syslog ('info', "connected to " . $smtp->domain);