From 11c1344bdadb5a5aca061e1a5483c05c3b2c746e Mon Sep 17 00:00:00 2001
From: Guilhem Moulin <guilhem@fripost.org>
Date: Sun, 13 Mar 2016 16:23:26 +0100
Subject: pullimap: fix struct flock packing

---
 pullimap | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pullimap b/pullimap
index 317e880..65e222b 100755
--- a/pullimap
+++ b/pullimap
@@ -83,7 +83,9 @@ do {
     }
 
     sysopen($STATE, $statefile, O_CREAT|O_RDWR|O_DSYNC, 0600) or die "Can't open $statefile: $!";
-    fcntl($STATE, F_SETLK, pack('sslll', F_WRLCK, SEEK_SET, 0, 0, $$)) or die "Can't lock $statefile: $!";
+    # XXX we need to pack the struct flock manually: not portable!
+    my $struct_flock = pack('s!s!l!l!i!', F_WRLCK, SEEK_SET, 0, 0, 0);
+    fcntl($STATE, F_SETLK, $struct_flock) or die "Can't lock $statefile: $!";
     my $flags = fcntl($STATE, F_GETFD, 0)       or die "fcntl F_GETFD: $!";
     fcntl($STATE, F_SETFD, $flags | FD_CLOEXEC) or die "fcntl F_SETFD: $!";
 };
-- 
cgit v1.2.3