about summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2021-12-11 20:53:10 +0100
committerRobin Jarry <robin@jarry.cc>2021-12-11 21:45:51 +0100
commit15a4cc7d0a84870ba04307154f394f9bdc98fd31 (patch)
tree47840744eafdf50a7fc1b1402e6ffaf078c4433a /lib
parent175d0efeb22eb61ce40a1b25969886a66fcdf83e (diff)
downloadaerc-15a4cc7d0a84870ba04307154f394f9bdc98fd31.tar.gz
imap: fix build on macos
Fix the following build error on mac os:

 worker/imap/worker.go:368:29: undefined: syscall.TCP_KEEPCNT
 worker/imap/worker.go:376:29: undefined: syscall.TCP_KEEPINTVL

These symbols are not defined on darwin.

Fixes: 5dfeff75f368 ("imap: add tcp connection options")
Signed-off-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'lib')
-rw-r--r--lib/keepalive_dummy.go11
-rw-r--r--lib/keepalive_linux.go17
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/keepalive_dummy.go b/lib/keepalive_dummy.go
new file mode 100644
index 0000000..205b577
--- /dev/null
+++ b/lib/keepalive_dummy.go
@@ -0,0 +1,11 @@
+//+build !linux
+
+package lib
+
+func SetTcpKeepaliveProbes(fd, count int) error {
+	return nil
+}
+
+func SetTcpKeepaliveInterval(fd, interval int) error {
+	return nil
+}
diff --git a/lib/keepalive_linux.go b/lib/keepalive_linux.go
new file mode 100644
index 0000000..0dc3285
--- /dev/null
+++ b/lib/keepalive_linux.go
@@ -0,0 +1,17 @@
+//+build linux
+
+package lib
+
+import (
+	"syscall"
+)
+
+func SetTcpKeepaliveProbes(fd, count int) error {
+	return syscall.SetsockoptInt(
+		fd, syscall.IPPROTO_TCP, syscall.TCP_KEEPCNT, count)
+}
+
+func SetTcpKeepaliveInterval(fd, interval int) error {
+	return syscall.SetsockoptInt(
+		fd, syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, interval)
+}