aboutsummaryrefslogtreecommitdiffstats
path: root/pullimap
diff options
context:
space:
mode:
Diffstat (limited to 'pullimap')
-rwxr-xr-xpullimap10
1 files changed, 5 insertions, 5 deletions
diff --git a/pullimap b/pullimap
index dcbe59b..1dc4b9e 100755
--- a/pullimap
+++ b/pullimap
@@ -18,10 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------
+use v5.20.2;
use strict;
use warnings;
-use v5.20.2;
our $VERSION = '0.4';
my $NAME = 'pullimap';
@@ -29,7 +29,7 @@ use Errno 'EINTR';
use Fcntl qw/O_CREAT O_RDWR O_DSYNC F_SETLK F_WRLCK SEEK_SET F_GETFD F_SETFD FD_CLOEXEC/;
use Getopt::Long qw/:config posix_default no_ignore_case gnu_getopt auto_version/;
use List::Util 'first';
-use Socket qw/PF_INET PF_INET6 SOCK_STREAM/;
+use Socket qw/PF_INET PF_INET6 SOCK_STREAM IPPROTO_TCP/;
use lib 'lib';
use Net::IMAP::InterIMAP 0.0.5 qw/xdg_basedir read_config compact_set/;
@@ -146,8 +146,7 @@ sub sendmail($$) {
: $fam == PF_INET6 ? Socket::pack_sockaddr_in6($port, $addr)
: die;
- my $proto = getprotobyname("tcp") // die;
- socket($SMTP, $fam, SOCK_STREAM, $proto) or die "socket: $!";
+ socket($SMTP, $fam, SOCK_STREAM, IPPROTO_TCP) or die "socket: $!";
until (connect($SMTP, $sockaddr)) {
next if $! == EINTR; # try again if connect(2) was interrupted by a signal
die "connect: $!";
@@ -286,6 +285,7 @@ my $ATTRS = "ENVELOPE INTERNALDATE";
$ATTRS .= " BODY.PEEK[]" unless $CONFIG{'no-delivery'};
my $RE_ATOM = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x41-\x5A\x5E-\x7E]+/;
+my $DOT_STRING = qr/\A$RE_ATOM(?:\.$RE_ATOM)*\z/;
sub pull_callback($$) {
my ($uids, $mail) = @_;
return unless exists $mail->{RFC822} or $CONFIG{'no-delivery'}; # not for us
@@ -294,7 +294,7 @@ sub pull_callback($$) {
my $e = $mail->{ENVELOPE}->[3];
my $sender = '';
if (defined $e and defined (my $l = $e->[0]->[2]) and defined (my $d = $e->[0]->[3])) {
- if ($l =~ /\A$RE_ATOM(?:\.$RE_ATOM)*\z/o) {
+ if ($l =~ $DOT_STRING) {
$sender = $l.'@'.$d;
} elsif ($l =~ /\A[\x20-\x7E]*\z/) {
# quote the local part if not Dot-string (RFC 5321)