Define PIP_OPT_MASK to represent all flags of interest to process_ip_header, so that it can have a fast exit path if no flags are set.
Merged from OpenVPN 2.1 Signed-off-by: James Yonan <ja...@openvpn.net> --- src/openvpn/forward.c | 8 +------- src/openvpn/forward.h | 4 +++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/openvpn/forward.c b/src/openvpn/forward.c index 4a91f92..ef554fc 100644 --- a/src/openvpn/forward.c +++ b/src/openvpn/forward.c @@ -1054,13 +1054,7 @@ process_ip_header (struct context *c, unsigned int flags, struct buffer *buf) * The --passtos and --mssfix options require * us to examine the IPv4 header. */ - - if (flags & (PIP_MSSFIX -#if PASSTOS_CAPABILITY - | PIPV4_PASSTOS -#endif - | PIPV4_CLIENT_NAT - )) + if (flags & PIP_OPT_MASK) { struct buffer ipbuf = *buf; if (is_ipv4 (TUNNEL_TYPE (c->c1.tuntap), &ipbuf)) diff --git a/src/openvpn/forward.h b/src/openvpn/forward.h index af3b0a6..7debcb1 100644 --- a/src/openvpn/forward.h +++ b/src/openvpn/forward.h @@ -249,9 +249,11 @@ bool send_control_channel_string (struct context *c, const char *str, int msglev #define PIPV4_PASSTOS (1<<0) #define PIP_MSSFIX (1<<1) /* v4 and v6 */ -#define PIPV4_OUTGOING (1<<2) #define PIPV4_EXTRACT_DHCP_ROUTER (1<<3) #define PIPV4_CLIENT_NAT (1<<4) +#define PIP_OPT_MASK 0xFFFF /* all possible options for */ + /* process_ip_header() */ +#define PIPV4_OUTGOING (1<<16) void process_ip_header (struct context *c, unsigned int flags, struct buffer *buf); -- 1.9.1