android: Fix kernel-net implementation on Android 4.3 and earlier
authorTobias Brunner <tobias@strongswan.org>
Mon, 22 Jun 2015 15:15:33 +0000 (17:15 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 28 Jul 2015 11:27:33 +0000 (13:27 +0200)
commit5da31733de79baf9249b45be1132c1e2f7203f4e
tree55f5b02978b84f86856e60958ef7fc55196ca486
parent1082372448d8055b9ab2cd296a011b2f71eee3fe
android: Fix kernel-net implementation on Android 4.3 and earlier

Before fwmarks were used protected sockets were bound to the outbound
interface via SO_BINDTODEVICE.  This does not always seem to work well
together with our connect()/getsockname() trick if the server is covered
by the traffic selectors.  Calling protect() again after disconnecting
the socket seems to help, but if there is no connectivity at all we still
get the virtual IP back (maybe protect() does not bind the socket to any
interface then).
src/frontends/android/jni/libandroidbridge/android_jni.h
src/frontends/android/jni/libandroidbridge/kernel/android_net.c