]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: add TCP_CORK wrapper
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 5 Aug 2010 17:26:24 +0000 (10:26 -0700)
committerPaul Jakma <paul@quagga.net>
Mon, 21 Mar 2011 17:30:52 +0000 (17:30 +0000)
* sockunion.{c,h}: (sockopt_cork) wrapper for TCP_CORK socket option for
  those platforms that provide it.  For other platforms, it is just a nop.

lib/sockunion.c
lib/sockunion.h

index 6a40f33211e654ad8cd75b4a5e188504fe6035c8..f6c060f55498b886506a450e90599e40c6552155 100644 (file)
@@ -527,6 +527,16 @@ sockopt_ttl (int family, int sock, int ttl)
   return 0;
 }
 
+int
+sockopt_cork (int sock, int onoff)
+{
+#ifdef TCP_CORK
+  return setsockopt (sock, IPPROTO_TCP, TCP_CORK, &onoff, sizeof(onoff));
+#else
+  return 0;
+#endif
+}
+
 /* If same family and same prefix return 1. */
 int
 sockunion_same (union sockunion *su1, union sockunion *su2)
index 96b9a0d4a14f50e5e353cb09051dd33062b66150..91bfbc7f33caec4e9e226389d2e4cc3f5e82465b 100644 (file)
@@ -102,6 +102,7 @@ extern int sockopt_reuseport (int);
 extern int sockunion_bind (int sock, union sockunion *, 
                            unsigned short, union sockunion *);
 extern int sockopt_ttl (int family, int sock, int ttl);
+extern int sockopt_cork (int sock, int onoff);
 extern int sockunion_socket (union sockunion *su);
 extern const char *inet_sutop (union sockunion *su, char *str);
 extern enum connect_result sockunion_connect (int fd, union sockunion *su,