diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sockopt.c | 13 | ||||
-rw-r--r-- | lib/sockopt.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/sockopt.c b/lib/sockopt.c index 985c3a38..e0027e88 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -342,6 +342,19 @@ setsockopt_ipv4_ifindex (int sock, int val) } int +setsockopt_ipv4_tos(int sock, int tos) +{ + int ret; + + ret = setsockopt (sock, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)); + if (ret < 0) + zlog_warn ("Can't set IP_TOS option for fd %d to %#x: %s", + sock, tos, safe_strerror(errno)); + return ret; +} + + +int setsockopt_ifindex (int af, int sock, int val) { int ret = -1; diff --git a/lib/sockopt.h b/lib/sockopt.h index 158f17ac..df0de61c 100644 --- a/lib/sockopt.h +++ b/lib/sockopt.h @@ -87,6 +87,7 @@ extern int setsockopt_multicast_ipv4(int sock, int optname, unsigned int ifindex /* optional: if non-zero, may be used instead of if_addr */); +extern int setsockopt_ipv4_tos(int sock, int tos); /* Ask for, and get, ifindex, by whatever method is supported. */ extern int setsockopt_ifindex (int, int, int); |