Attention is currently required from: plaisthos.
Hello plaisthos,
I'd like you to do a code review.
Please visit
http://gerrit.openvpn.net/c/openvpn/+/1467?usp=email
to review the following change.
Change subject: socks: Replace magic "10" for socks header with macro
......................................................................
socks: Replace magic "10" for socks header with macro
So that it is easier to check that we indeed
have reserved this prior to assuming we have.
Github: openvpn-private-issues#4
Change-Id: I0aca7e7d9aa190541f11745cf72193cb6b39540a
Signed-off-by: Frank Lichtenheld <[email protected]>
---
M src/openvpn/init.c
M src/openvpn/mtu.c
M src/openvpn/mtu.h
M src/openvpn/socks.c
4 files changed, 14 insertions(+), 9 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/67/1467/1
diff --git a/src/openvpn/init.c b/src/openvpn/init.c
index b690dff..4c23170 100644
--- a/src/openvpn/init.c
+++ b/src/openvpn/init.c
@@ -2927,7 +2927,7 @@
headroom += 4;
/* socks proxy header */
- headroom += 10;
+ headroom += SOCKS_UDPv4_HEADROOM;
/* compression header and fragment header (part of the encrypted payload)
*/
headroom += 1 + 1;
diff --git a/src/openvpn/mtu.c b/src/openvpn/mtu.c
index 67ae67f..e5db8ab 100644
--- a/src/openvpn/mtu.c
+++ b/src/openvpn/mtu.c
@@ -66,11 +66,11 @@
bool tlsmode = options->tls_server || options->tls_client;
- /* A socks proxy adds 10 byte of extra header to each packet
+ /* A socks proxy adds extra header to each packet
* (we only support Socks with IPv4, this value is different for IPv6) */
if (options->ce.socks_proxy_server && proto_is_udp(options->ce.proto))
{
- header_size += 10;
+ header_size += SOCKS_UDPv4_HEADROOM;
}
/* TCP stream based packets have a 16 bit length field */
diff --git a/src/openvpn/mtu.h b/src/openvpn/mtu.h
index 29a7d04..ca8109c 100644
--- a/src/openvpn/mtu.h
+++ b/src/openvpn/mtu.h
@@ -94,6 +94,11 @@
*/
#define PAYLOAD_ALIGN 4
+/*
+ * How many bytes we prepend for a SOCKS UDP proxy.
+ * This only handles IPv4 right now.
+ */
+#define SOCKS_UDPv4_HEADROOM 10
/**************************************************************************/
/**
diff --git a/src/openvpn/socks.c b/src/openvpn/socks.c
index 1e99c9a..078b4e1 100644
--- a/src/openvpn/socks.c
+++ b/src/openvpn/socks.c
@@ -434,7 +434,7 @@
}
/*
- * Remove the 10 byte socks5 header from an incoming
+ * Remove the socks5 header from an incoming
* UDP packet, setting *from to the source address.
*
* Run after UDP read.
@@ -444,7 +444,7 @@
{
int atyp;
- if (BLEN(buf) < 10)
+ if (BLEN(buf) < SOCKS_UDPv4_HEADROOM)
{
goto error;
}
@@ -471,7 +471,7 @@
}
/*
- * Add a 10 byte socks header prior to UDP write.
+ * Add a socks header prior to UDP write.
* *to is the destination address.
*
* Run before UDP write.
@@ -481,11 +481,11 @@
socks_process_outgoing_udp(struct buffer *buf, const struct link_socket_actual
*to)
{
/*
- * Get a 10 byte subset buffer prepended to buf --
+ * Get a subset buffer prepended to buf --
* we expect these bytes will be here because
* we always allocate space for these bytes
*/
- struct buffer head = buf_sub(buf, 10, true);
+ struct buffer head = buf_sub(buf, SOCKS_UDPv4_HEADROOM, true);
/* crash if not enough headroom in buf */
ASSERT(buf_defined(&head));
@@ -496,5 +496,5 @@
buf_write(&head, &to->dest.addr.in4.sin_addr,
sizeof(to->dest.addr.in4.sin_addr));
buf_write(&head, &to->dest.addr.in4.sin_port,
sizeof(to->dest.addr.in4.sin_port));
- return 10;
+ return SOCKS_UDPv4_HEADROOM;
}
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1467?usp=email
To unsubscribe, or for help writing mail filters, visit
http://gerrit.openvpn.net/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I0aca7e7d9aa190541f11745cf72193cb6b39540a
Gerrit-Change-Number: 1467
Gerrit-PatchSet: 1
Gerrit-Owner: flichtenheld <[email protected]>
Gerrit-Reviewer: plaisthos <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: plaisthos <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel