Skip to content

Commit

Permalink
route: warn on IPv4 routes installation when no IPv4 is configured
Browse files Browse the repository at this point in the history
Same as already happens for IPv6, it is useful for the user to throw a
warning when an IPv4 route is about to be installed and the tun interface
has no IPv4 configured.

The twin message for IPv4 is adapted to have the same format.

The warning is not fatal, becuase the route might actually be external
to the tun interface and therefore it may still work.

At the same time, modify the error message used for a route
installation failure to explicitly mention "IPv4" since this it is
used in the IPv4 code path only.

Trac: OpenVPN#208
Signed-off-by: Antonio Quartulli <[email protected]>

Acked-by: Gert Doering <[email protected]>
Message-Id: <[email protected]>
URL: https://www.mail-archive.com/[email protected]/msg19946.html
Signed-off-by: Gert Doering <[email protected]>
  • Loading branch information
ordex authored and cron2 committed Jun 7, 2020
1 parent 6a8cd03 commit 826d895
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/openvpn/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -987,7 +987,7 @@ redirect_default_route_to_vpn(struct route_list *rl, const struct tuntap *tt,
unsigned int flags, const struct env_set *es,
openvpn_net_ctx_t *ctx)
{
const char err[] = "NOTE: unable to redirect default gateway --";
const char err[] = "NOTE: unable to redirect IPv4 default gateway --";

if (rl && rl->flags & RG_ENABLE)
{
Expand Down Expand Up @@ -1192,6 +1192,14 @@ add_routes(struct route_list *rl, struct route_ipv6_list *rl6,
{
struct route_ipv4 *r;

if (rl->routes && !tt->did_ifconfig_setup)
{
msg(M_INFO, "WARNING: OpenVPN was configured to add an IPv4 "
"route. However, no IPv4 has been configured for %s, "
"therefore the route installation may fail or may not work "
"as expected.", tt->actual_name);
}

#ifdef ENABLE_MANAGEMENT
if (management && rl->routes)
{
Expand Down Expand Up @@ -1223,9 +1231,9 @@ add_routes(struct route_list *rl, struct route_ipv6_list *rl6,
if (!tt->did_ifconfig_ipv6_setup)
{
msg(M_INFO, "WARNING: OpenVPN was configured to add an IPv6 "
"route over %s. However, no IPv6 has been configured for "
"this interface, therefore the route installation may "
"fail or may not work as expected.", tt->actual_name);
"route. However, no IPv6 has been configured for %s, "
"therefore the route installation may fail or may not work "
"as expected.", tt->actual_name);
}

for (r = rl6->routes_ipv6; r; r = r->next)
Expand Down

0 comments on commit 826d895

Please sign in to comment.