aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/socket.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-01-24 17:43:35 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2017-02-13 21:55:18 +0100
commit5a6d43eb15b537e525d724c9fb3400031ae14c70 (patch)
tree2824757f1016582eb74fc83bf06989b142cb627b /src/socket.c
parentmain: add `wg` type alias (diff)
downloadwireguard-monolithic-historical-5a6d43eb15b537e525d724c9fb3400031ae14c70.tar.xz
wireguard-monolithic-historical-5a6d43eb15b537e525d724c9fb3400031ae14c70.zip
socket: enable setting of fwmark
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/socket.c b/src/socket.c
index e26504d..f799d91 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -20,6 +20,7 @@ static inline int send4(struct wireguard_device *wg, struct sk_buff *skb, struct
.daddr = endpoint->addr4.sin_addr.s_addr,
.fl4_dport = endpoint->addr4.sin_port,
.fl4_sport = htons(wg->incoming_port),
+ .flowi4_mark = wg->fwmark,
.flowi4_proto = IPPROTO_UDP
};
struct rtable *rt = NULL;
@@ -62,7 +63,6 @@ static inline int send4(struct wireguard_device *wg, struct sk_buff *skb, struct
if (cache)
dst_cache_set_ip4(cache, &rt->dst, fl.saddr);
}
-
udp_tunnel_xmit_skb(rt, sock, skb,
fl.saddr, fl.daddr,
ds, ip4_dst_hoplimit(&rt->dst), 0,
@@ -85,6 +85,7 @@ static inline int send6(struct wireguard_device *wg, struct sk_buff *skb, struct
.daddr = endpoint->addr6.sin6_addr,
.fl6_dport = endpoint->addr6.sin6_port,
.fl6_sport = htons(wg->incoming_port),
+ .flowi6_mark = wg->fwmark,
.flowi6_oif = endpoint->addr6.sin6_scope_id,
.flowi6_proto = IPPROTO_UDP
/* TODO: addr->sin6_flowinfo */