summaryrefslogtreecommitdiff
path: root/net/quagga/files/extra-tcpmd5-patch-lib-sockopt.c
blob: d44ec4949c018a739fa2e60a8a2f66d0d2e18449 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- lib/sockopt.c.orig	Tue Jan  4 10:03:36 2005
+++ lib/sockopt.c	Fri Jan 28 17:52:57 2005
@@ -243,6 +243,32 @@
 
 }
 
+int
+sockopt_tcp_signature (int family, int sock, int enable)
+{
+  int ret;
+
+#if defined(QUAGGA_TCP_MD5SIG) && defined(TCP_MD5SIG)
+  if (family == AF_INET)
+    {
+      ret = setsockopt (sock, IPPROTO_TCP, TCP_MD5SIG,
+                        (void *) &enable, sizeof (int));
+      if (ret < 0)
+        {
+          zlog (NULL, LOG_WARNING, "can't set sockopt TCP_MD5SIG %d to socket %d", enable, sock);
+          return -1;
+        }
+      return 0;
+    }
+#endif /* QUAGGA_TCP_MD5SIG */
+
+  /* fallthrough */
+
+  zlog (NULL, LOG_WARNING, "can't set sockopt TCP_MD5SIG on socket %d with family %d",
+                 sock, family);
+  return -1;
+}
+
 static int
 setsockopt_ipv4_ifindex (int sock, int val)
 {