lib: add TCP_CORK wrapper

* 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.
This commit is contained in:
Stephen Hemminger 2010-08-05 10:26:24 -07:00 committed by Paul Jakma
parent 35398589cf
commit 58192df774
2 changed files with 11 additions and 0 deletions

View File

@ -527,6 +527,16 @@ sockopt_ttl (int family, int sock, int ttl)
return 0; 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. */ /* If same family and same prefix return 1. */
int int
sockunion_same (union sockunion *su1, union sockunion *su2) sockunion_same (union sockunion *su1, union sockunion *su2)

View File

@ -102,6 +102,7 @@ extern int sockopt_reuseport (int);
extern int sockunion_bind (int sock, union sockunion *, extern int sockunion_bind (int sock, union sockunion *,
unsigned short, union sockunion *); unsigned short, union sockunion *);
extern int sockopt_ttl (int family, int sock, int ttl); 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 int sockunion_socket (union sockunion *su);
extern const char *inet_sutop (union sockunion *su, char *str); extern const char *inet_sutop (union sockunion *su, char *str);
extern enum connect_result sockunion_connect (int fd, union sockunion *su, extern enum connect_result sockunion_connect (int fd, union sockunion *su,