diff options
author | James Yonan | 2011-11-03 02:03:35 +0000 |
---|---|---|
committer | David Sommerseth | 2011-12-14 17:04:05 +0100 |
commit | 840799182c0769c8ac9d014d09a497563516fc0d (patch) | |
tree | deddc036a7ccebde4aa757bd43b25b707e2892c1 /forward.c | |
parent | ffea644ce62a67ea06e375c17277cea4e9cb9873 (diff) | |
download | openvpn-840799182c0769c8ac9d014d09a497563516fc0d.zip openvpn-840799182c0769c8ac9d014d09a497563516fc0d.tar.gz |
Fixed client issues with DHCP Router option extraction/deletion when
using layer 2 with DHCP proxy:
* Extract/delete Router option from both DHCPOFFER and DHCPACK
messages. Prevously we only considered DHCPACK messages.
With DHCPACK messages, we extract the Router IP for
use as the vpn_gateway, as well as delete the Router option from
the DHCP message. For DHCPOFFER, we only delete the Router
message.
* Monitor all DHCPOFFER and DHCPACK messages for possible Router
options needing to be extracted/deleted. Previously, we turned
off monitoring after the first successful extraction/deletion
from a DHCPACK message.
* Previously, we deleted Router options by padding them with DHCP
PAD options. This has proven not to work with some DHCP clients,
so we now delete the message entirely, and add PADs to the end of
the message so as not to change its length.
* In some cases, UDP checksum was not being correctly updated for
modified DHCP packets.
To properly use this feature on Linux, after tunnel comes up,
run these commands:
ifconfig tap0 up
dhclient tap0
Version 2.1.17
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@7682 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'forward.c')
-rw-r--r-- | forward.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1011,7 +1011,7 @@ process_ipv4_header (struct context *c, unsigned int flags, struct buffer *buf) if (!c->options.passtos) flags &= ~PIPV4_PASSTOS; #endif - if (!c->options.route_gateway_via_dhcp || !route_list_vpn_gateway_needed (c->c1.route_list)) + if (!c->options.route_gateway_via_dhcp) flags &= ~PIPV4_EXTRACT_DHCP_ROUTER; if (buf->len > 0) |