From 6915ea0c0d832cc670e21af389d905d52f2860b0 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 7 May 2015 12:58:35 +0200 Subject: [PATCH] move socket option to socket.c instead of if.c (socket descriptor isn't initialized yet) --- server/src/if.c | 6 ------ server/src/socket.c | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/src/if.c b/server/src/if.c index 4085f1b36..3e5a37334 100644 --- a/server/src/if.c +++ b/server/src/if.c @@ -64,12 +64,6 @@ int if_start(struct interface *i, int affinity) if (s->netem) { s->mark = 1 + mark++; - /* Set fwmark for outgoing packets */ - if (setsockopt(s->sd, SOL_SOCKET, SO_MARK, &s->mark, sizeof(s->mark))) - serror("Failed to set fwmark for outgoing packets"); - else - debug(4, "Set fwmark for socket (sd=%u) to %u", s->sd, s->mark); - tc_mark(i, TC_HDL(4000, s->mark), s->mark); tc_netem(i, TC_HDL(4000, s->mark), s->netem); } diff --git a/server/src/socket.c b/server/src/socket.c index deddb6188..2f0869bc7 100644 --- a/server/src/socket.c +++ b/server/src/socket.c @@ -121,6 +121,12 @@ int socket_open(struct node *n) if (ret < 0) serror("Failed to connect socket"); } + + /* Set fwmark for outgoing packets */ + if (setsockopt(s->sd, SOL_SOCKET, SO_MARK, &s->mark, sizeof(s->mark))) + serror("Failed to set fwmark for outgoing packets"); + else + debug(4, "Set fwmark for socket (sd=%u) to %u", s->sd, s->mark); /* Set socket priority, QoS or TOS IP options */ int prio;