@@ -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;
@@ -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 */
@@ -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
/**************************************************************************/
/**
@@ -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;
}