Hi On Thu, Nov 11, 2021 at 4:41 AM Lev Stipakov <lstipa...@gmail.com> wrote:
> From: Lev Stipakov <l...@openvpn.net> > > This is the rebase of original Selva Nair's patch > which hasn't been merged: > > https://sourceforge.net/p/openvpn/mailman/message/34674818/ Yes, something I wanted 5 years ago > > and documentation change to reflect code changes, which > is basically a revert of another Selva's patch (which got merged): > > > https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg13387.html That was a compromise as the offset patch got no traction.. > > > For subnet topology use "offset 0" as default for > calculating DHCP server address, which makes it equal > to the network address. > > There is no know reason why non-zero default offset > is needed. Besides, offset -1 breaks subnet /30 case, > which in some cases is pushed by OpenVPN Cloud product. > I could not sell this as a bugfix that time as /30 in subnet mode was not possible with our server mode as the pool would have been empty in that case without the patch. Also /30 in subnet mode was considered somewhat silly. The reason for the original -1 is probably historical -- the general "rule" not to use network address as a source address. > > Signed-off-by: Lev Stipakov <l...@openvpn.net> > --- > doc/man-sections/windows-options.rst | 2 +- > src/openvpn/helper.c | 4 ++-- > src/openvpn/tun.c | 9 +-------- > 3 files changed, 4 insertions(+), 11 deletions(-) > > diff --git a/doc/man-sections/windows-options.rst > b/doc/man-sections/windows-options.rst > index eacb9af8..c389fbc4 100644 > --- a/doc/man-sections/windows-options.rst > +++ b/doc/man-sections/windows-options.rst > @@ -93,7 +93,7 @@ Windows-Specific Options > server to masquerade as if it were coming from the remote > endpoint. > > The optional offset parameter is an integer which is > > :code:`-256` > - and < :code:`256` and which defaults to -1. If offset is positive, > + and < :code:`256` and which defaults to 0. If offset is positive, > the DHCP server will masquerade as the IP address at network > address + offset. If offset is negative, the DHCP server will > masquerade as the IP address at broadcast address + offset. > diff --git a/src/openvpn/helper.c b/src/openvpn/helper.c > index 032a71e8..4ac1cf8e 100644 > --- a/src/openvpn/helper.c > +++ b/src/openvpn/helper.c > @@ -237,7 +237,7 @@ helper_client_server(struct options *o) > * if tap OR (tun AND topology == subnet): > * ifconfig 10.8.0.1 255.255.255.0 > * if !nopool: > - * ifconfig-pool 10.8.0.2 10.8.0.253 255.255.255.0 > + * ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0 > * push "route-gateway 10.8.0.1" > * if route-gateway unset: > * route-gateway 10.8.0.2 > @@ -340,7 +340,7 @@ helper_client_server(struct options *o) > { > o->ifconfig_pool_defined = true; > o->ifconfig_pool_start = o->server_network + 2; > - o->ifconfig_pool_end = (o->server_network | > ~o->server_netmask) - 2; > + o->ifconfig_pool_end = (o->server_network | > ~o->server_netmask) - 1; > ifconfig_pool_verify_range(M_USAGE, > o->ifconfig_pool_start, o->ifconfig_pool_end); > } > o->ifconfig_pool_netmask = o->server_netmask; > diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c > index 28f803ec..75d5eaf7 100644 > --- a/src/openvpn/tun.c > +++ b/src/openvpn/tun.c > @@ -6357,14 +6357,7 @@ tuntap_dhcp_mask(const struct tuntap *tt, const > char *device_guid) > { > if (tt->topology == TOP_SUBNET) > { > - if (tt->options.dhcp_masq_custom_offset) > - { > - ep[2] = dhcp_masq_addr(tt->local, tt->remote_netmask, > tt->options.dhcp_masq_offset); > - } > - else > - { > - ep[2] = dhcp_masq_addr(tt->local, tt->remote_netmask, -1); > - } > + ep[2] = dhcp_masq_addr(tt->local, tt->remote_netmask, > tt->options.dhcp_masq_custom_offset ? tt->options.dhcp_masq_offset : 0); > } > else > { > -- > 2.23.0.windows.1 > Looks good to me based on my recollection of testing this a long time ago -- I have not re-tested this version of the patch. (An ACK from me may look like an attempt to get in via the backdoor, so resisting that..). Selva
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel