Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 914a9ab3 authored by Atis Elsts's avatar Atis Elsts Committed by David S. Miller
Browse files

net: Use sk_mark for routing lookup in more places



This patch against v2.6.31 adds support for route lookup using sk_mark in some 
more places. The benefits from this patch are the following.
First, SO_MARK option now has effect on UDP sockets too.
Second, ip_queue_xmit() and inet_sk_rebuild_header() could fail to do routing 
lookup correctly if TCP sockets with SO_MARK were used.

Signed-off-by: default avatarAtis Elsts <atis@mikrotik.com>
Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
parent 66466797
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1119,6 +1119,7 @@ int inet_sk_rebuild_header(struct sock *sk)
{
	struct flowi fl = {
		.oif = sk->sk_bound_dev_if,
		.mark = sk->sk_mark,
		.nl_u = {
			.ip4_u = {
				.daddr	= daddr,
+1 −0
Original line number Diff line number Diff line
@@ -335,6 +335,7 @@ int ip_queue_xmit(struct sk_buff *skb, int ipfragok)

		{
			struct flowi fl = { .oif = sk->sk_bound_dev_if,
					    .mark = sk->sk_mark,
					    .nl_u = { .ip4_u =
						      { .daddr = daddr,
							.saddr = inet->saddr,
+1 −0
Original line number Diff line number Diff line
@@ -696,6 +696,7 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,

	if (rt == NULL) {
		struct flowi fl = { .oif = ipc.oif,
				    .mark = sk->sk_mark,
				    .nl_u = { .ip4_u =
					      { .daddr = faddr,
						.saddr = saddr,