From: Tobias Brunner Date: Tue, 18 Oct 2011 09:52:43 +0000 (+0200) Subject: pluto: CAP_NET_RAW seems to be required on Android even to open regular sockets. X-Git-Tag: 4.6.0~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8256f0bda86447ff0f436deaff5675938db1cf1;p=thirdparty%2Fstrongswan.git pluto: CAP_NET_RAW seems to be required on Android even to open regular sockets. --- diff --git a/src/pluto/plutomain.c b/src/pluto/plutomain.c index 6366b2982d..db5f2d941c 100644 --- a/src/pluto/plutomain.c +++ b/src/pluto/plutomain.c @@ -294,7 +294,13 @@ int main(int argc, char **argv) bool force_keepalive = FALSE; char *virtual_private = NULL; #ifdef CAPABILITIES - int keep[] = { CAP_NET_ADMIN, CAP_NET_BIND_SERVICE }; + int keep[] = { + CAP_NET_ADMIN, + CAP_NET_BIND_SERVICE, +#ifdef ANDROID + CAP_NET_RAW, +#endif + }; #endif /* CAPABILITIES */ /* initialize library and optionsfrom */ diff --git a/src/pluto/server.c b/src/pluto/server.c index 2d608048b0..167b1d4c70 100644 --- a/src/pluto/server.c +++ b/src/pluto/server.c @@ -229,7 +229,7 @@ find_raw_ifaces4(void) struct ifconf ifconf; struct ifreq buf[300]; /* for list of interfaces -- arbitrary limit */ struct raw_iface *rifaces = NULL; - int master_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); /* Get a UDP socket */ + int master_sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); /* Get a UDP socket */ /* get list of interfaces with assigned IPv4 addresses from system */