40 #include <sys/socket.h>
41 #include <netinet/in.h>
42 #include <netinet/tcp.h>
53 #define SOCKADDR_STORAGE struct sockaddr_storage
55 #define SOCKADDR_STORAGE struct sockaddr
63 struct sockaddr *sa = (
struct sockaddr *) &ss;
71 if ((ret = getsockname(
vstream_fileno(fp), sa, &sa_length)) >= 0) {
72 switch (sa->sa_family) {
88 const char *myname =
"vstream_tweak_tcp";
108 if ((err = getsockopt(
vstream_fileno(fp), IPPROTO_TCP, TCP_MAXSEG,
109 (
void *) &mss, &mss_len)) < 0
110 && errno != ECONNRESET) {
111 msg_warn(
"%s: getsockopt TCP_MAXSEG: %m", myname);
115 msg_info(
"%s: TCP_MAXSEG %d", myname, mss);
128 #define EFF_BUFFER_SIZE(fp) (vstream_req_bufsize(fp) ? \
129 vstream_req_bufsize(fp) : VSTREAM_BUFSIZE)
131 #ifdef CA_VSTREAM_CTL_BUFSIZE
133 if (mss < INT_MAX / 2)
148 if ((err = setsockopt(
vstream_fileno(fp), IPPROTO_TCP, TCP_NODELAY,
149 (
void *) &nodelay,
sizeof(nodelay))) < 0
150 && errno != ECONNRESET)
151 msg_warn(
"%s: setsockopt TCP_NODELAY: %m", myname);
int vstream_tweak_tcp(VSTREAM *fp)
#define CA_VSTREAM_CTL_BUFSIZE(v)
void msg_warn(const char *fmt,...)
int vstream_tweak_sock(VSTREAM *fp)
#define vstream_fileno(vp)
#define CA_VSTREAM_CTL_END
void vstream_control(VSTREAM *stream, int name,...)
#define EFF_BUFFER_SIZE(fp)
void msg_info(const char *fmt,...)