From: Tobias Brunner Date: Wed, 8 Aug 2012 12:46:22 +0000 (+0200) Subject: Add virtual IP to the TUN device builder X-Git-Tag: 5.0.1~210^2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62e6630b248b0f7e387dae8d16dd56db71262b35;p=thirdparty%2Fstrongswan.git Add virtual IP to the TUN device builder After the CHILD_SA is established we can easily get this address from the IKE_SA. --- diff --git a/src/frontends/android/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/jni/libandroidbridge/backend/android_service.c index 691d5fc6d7..d44bebc9a6 100644 --- a/src/frontends/android/jni/libandroidbridge/backend/android_service.c +++ b/src/frontends/android/jni/libandroidbridge/backend/android_service.c @@ -80,13 +80,21 @@ static bool setup_tun_device(private_android_service_t *this, ike_sa_t *ike_sa, child_sa_t *child_sa) { vpnservice_builder_t *builder; + host_t *vip; int tunfd; DBG1(DBG_DMN, "setting up TUN device for CHILD_SA %s{%u}", child_sa->get_name(child_sa), child_sa->get_reqid(child_sa)); + vip = ike_sa->get_virtual_ip(ike_sa, TRUE); + if (!vip || vip->is_anyaddr(vip)) + { + DBG1(DBG_DMN, "setting up TUN device failed, no virtual IP found"); + return FALSE; + } builder = charonservice->get_vpnservice_builder(charonservice); - if (!builder->set_mtu(builder, TUN_DEFAULT_MTU)) + if (!builder->add_address(builder, vip) || + !builder->set_mtu(builder, TUN_DEFAULT_MTU)) { return FALSE; }