This is needed so that we can access hosts behind the VPN. The route might already be setup if VPN server is the same as nameserver or similar. --- Hi,
this should add the missing OpenVPN route that Daniel reported. I noticed that I had the route automagically setup in my test network, but that was because I had my OpenVPN server in the same host as nameserver. This meant that I had the route already setup and everything seemed to work properly. Daniel, please test and ack if ok. Cheers, Jukka src/connection.c | 34 +++++++++++++++++++++++++--------- 1 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/connection.c b/src/connection.c index 8b1b689..7b71298 100644 --- a/src/connection.c +++ b/src/connection.c @@ -832,15 +832,31 @@ int __connman_connection_gateway_add(struct connman_service *service, } if (service_type == CONNMAN_SERVICE_TYPE_VPN) { - if (type == CONNMAN_IPCONFIG_TYPE_IPV4 && - new_gateway->ipv4_gateway != NULL) - set_vpn_routes(new_gateway->ipv4_gateway, - service, gateway, type, peer); - else if (type == CONNMAN_IPCONFIG_TYPE_IPV6 && - new_gateway->ipv6_gateway != NULL) - set_vpn_routes(new_gateway->ipv6_gateway, - service, gateway, type, peer); + if (type == CONNMAN_IPCONFIG_TYPE_IPV4) { + if (new_gateway->ipv4_gateway != NULL) + set_vpn_routes(new_gateway->ipv4_gateway, + service, gateway, type, peer); + + /* + * Special route to VPN server via gateway. This + * is needed so that we can access hosts behind + * the VPN. The route might already exist depending + * on network topology. + */ + connman_inet_add_host_route(active_gateway->index, + gateway, + active_gateway->ipv4_gateway->gateway); + + } else if (type == CONNMAN_IPCONFIG_TYPE_IPV6) { + if (new_gateway->ipv6_gateway != NULL) + set_vpn_routes(new_gateway->ipv6_gateway, + service, gateway, type, peer); + + connman_inet_add_ipv6_host_route(active_gateway->index, + gateway, + active_gateway->ipv6_gateway->gateway); + } } else { if (type == CONNMAN_IPCONFIG_TYPE_IPV4 && -- 1.7.5.4 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman