From 65a74f3175855dc41b49332103ada6bb27733291 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 22 May 2018 19:40:51 +0200 Subject: Avoid sticky sockets on Android The android policy routing system does insane things. --- conn_default.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'conn_default.go') diff --git a/conn_default.go b/conn_default.go index fc52fbf..14ed56c 100644 --- a/conn_default.go +++ b/conn_default.go @@ -1,4 +1,4 @@ -// +build !linux +// +build !linux android /* SPDX-License-Identifier: GPL-2.0 * @@ -143,9 +143,12 @@ func (bind *NativeBind) Send(buff []byte, endpoint Endpoint) error { var fwmarkIoctl int func init() { - if runtime.GOOS == "freebsd" { + switch runtime.GOOS { + case "linux", "android": + fwmarkIoctl = 36 /* unix.SO_MARK */ + case "freebsd": fwmarkIoctl = 0x1015 /* unix.SO_USER_COOKIE */ - } else if runtime.GOOS == "openbsd" { + case "openbsd": fwmarkIoctl = 0x1021 /* unix.SO_RTABLE */ } } -- cgit v1.2.3-59-g8ed1b