diff --git a/src/main/assets/arm/tun2socks b/src/main/assets/arm/tun2socks index 680e6a4f..1e371a2e 100755 Binary files a/src/main/assets/arm/tun2socks and b/src/main/assets/arm/tun2socks differ diff --git a/src/main/assets/x86/tun2socks b/src/main/assets/x86/tun2socks index 6e9ce5c1..1fab6e3e 100755 Binary files a/src/main/assets/x86/tun2socks and b/src/main/assets/x86/tun2socks differ diff --git a/src/main/jni/badvpn/tun2socks/tun2socks.c b/src/main/jni/badvpn/tun2socks/tun2socks.c index eebe67af..0df7250d 100644 --- a/src/main/jni/badvpn/tun2socks/tun2socks.c +++ b/src/main/jni/badvpn/tun2socks/tun2socks.c @@ -392,8 +392,15 @@ int main (int argc, char **argv) #ifdef ANDROID // use supplied file descriptor - if (!BTap_InitWithFD(&device, &ss, options.tun_fd, options.tun_mtu, device_error_handler, NULL, 1)) { - BLog(BLOG_ERROR, "BTap_InitWithFD failed"); + + struct BTap_init_data init_data; + init_data.dev_type = BTAP_DEV_TUN; + init_data.init_type = BTAP_INIT_FD; + init_data.init.fd.fd = options.tun_fd; + init_data.init.fd.mtu = options.tun_mtu; + + if (!BTap_Init2(&device, &ss, init_data, device_error_handler, NULL)) { + BLog(BLOG_ERROR, "BTap_Init2 failed"); goto fail3; } #else diff --git a/src/main/jni/badvpn/tuntap/BTap.c b/src/main/jni/badvpn/tuntap/BTap.c index 7aa926db..43d3e7a8 100644 --- a/src/main/jni/badvpn/tuntap/BTap.c +++ b/src/main/jni/badvpn/tuntap/BTap.c @@ -195,51 +195,6 @@ int BTap_Init (BTap *o, BReactor *reactor, char *devname, BTap_handler_error han return BTap_Init2(o, reactor, init_data, handler_error, handler_error_user); } -#ifdef ANDROID -int BTap_InitWithFD (BTap *o, BReactor *reactor, int fd, int mtu, BTap_handler_error handler_error, void *handler_error_user, int tun) -{ - ASSERT(tun == 0 || tun == 1) - - #ifndef BADVPN_LINUX - - return 0; - - #endif - - o->reactor = reactor; - o->handler_error = handler_error; - o->handler_error_user = handler_error_user; - o->frame_mtu = mtu; - o->fd = fd; - - // init file descriptor object - BFileDescriptor_Init(&o->bfd, o->fd, (BFileDescriptor_handler)fd_handler, o); - if (!BReactor_AddFileDescriptor(o->reactor, &o->bfd)) { - BLog(BLOG_ERROR, "BReactor_AddFileDescriptor failed"); - goto fail1; - } - o->poll_events = 0; - - goto success; - -fail1: - ASSERT_FORCE(close(o->fd) == 0) -fail0: - return 0; - -success: - // init output - PacketRecvInterface_Init(&o->output, o->frame_mtu, (PacketRecvInterface_handler_recv)output_handler_recv, o, BReactor_PendingGroup(o->reactor)); - - // set no output packet - o->output_packet = NULL; - - DebugError_Init(&o->d_err, BReactor_PendingGroup(o->reactor)); - DebugObject_Init(&o->d_obj); - return 1; -} -#endif - int BTap_Init2 (BTap *o, BReactor *reactor, struct BTap_init_data init_data, BTap_handler_error handler_error, void *handler_error_user) { ASSERT(init_data.dev_type == BTAP_DEV_TUN || init_data.dev_type == BTAP_DEV_TAP) diff --git a/src/main/jni/badvpn/tuntap/BTap.h b/src/main/jni/badvpn/tuntap/BTap.h index d88ebd19..021ac839 100644 --- a/src/main/jni/badvpn/tuntap/BTap.h +++ b/src/main/jni/badvpn/tuntap/BTap.h @@ -107,10 +107,6 @@ typedef struct { */ int BTap_Init (BTap *o, BReactor *bsys, char *devname, BTap_handler_error handler_error, void *handler_error_user, int tun) WARN_UNUSED; -#ifdef ANDROID -int BTap_InitWithFD (BTap *o, BReactor *bsys, int fd, int mtu, BTap_handler_error handler_error, void *handler_error_user, int tun) WARN_UNUSED; -#endif - enum BTap_dev_type {BTAP_DEV_TUN, BTAP_DEV_TAP}; enum BTap_init_type {