Add noquickack option
This commit is contained in:
11
src/main.c
11
src/main.c
@@ -83,6 +83,7 @@ enum sk_opt {
|
|||||||
sk_keepintvl,
|
sk_keepintvl,
|
||||||
sk_congestion,
|
sk_congestion,
|
||||||
sk_defer_accept,
|
sk_defer_accept,
|
||||||
|
sk_quickack,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sk_set (int fd, enum sk_opt opt, const void *val, socklen_t len)
|
static void sk_set (int fd, enum sk_opt opt, const void *val, socklen_t len)
|
||||||
@@ -122,6 +123,11 @@ static void sk_set (int fd, enum sk_opt opt, const void *val, socklen_t len)
|
|||||||
[sk_defer_accept] = { "TCP_DEFER_ACCEPT",
|
[sk_defer_accept] = { "TCP_DEFER_ACCEPT",
|
||||||
#ifdef TCP_DEFER_ACCEPT
|
#ifdef TCP_DEFER_ACCEPT
|
||||||
1, IPPROTO_TCP, TCP_DEFER_ACCEPT,
|
1, IPPROTO_TCP, TCP_DEFER_ACCEPT,
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
[sk_quickack] = { "TCP_QUICKACK",
|
||||||
|
#ifdef TCP_QUICKACK
|
||||||
|
1, IPPROTO_TCP, TCP_QUICKACK,
|
||||||
#endif
|
#endif
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -663,6 +669,7 @@ int main (int argc, char **argv)
|
|||||||
{ "multiqueue", NULL, option_option },
|
{ "multiqueue", NULL, option_option },
|
||||||
{ "keepalive", ka_opts, option_option },
|
{ "keepalive", ka_opts, option_option },
|
||||||
{ "buffer-size", &buffer_size, option_long },
|
{ "buffer-size", &buffer_size, option_long },
|
||||||
|
{ "noquickack", NULL, option_option },
|
||||||
{ "daemon", NULL, option_option },
|
{ "daemon", NULL, option_option },
|
||||||
{ "debug", NULL, option_option },
|
{ "debug", NULL, option_option },
|
||||||
{ "version", NULL, option_option },
|
{ "version", NULL, option_option },
|
||||||
@@ -681,6 +688,7 @@ int main (int argc, char **argv)
|
|||||||
int delay = option_is_set(opts, "delay");
|
int delay = option_is_set(opts, "delay");
|
||||||
int debug = option_is_set(opts, "debug");
|
int debug = option_is_set(opts, "debug");
|
||||||
int keepalive = option_is_set(opts, "keepalive");
|
int keepalive = option_is_set(opts, "keepalive");
|
||||||
|
int noquickack = option_is_set(opts, "noquickack");
|
||||||
|
|
||||||
if (buffer_size < 2048) {
|
if (buffer_size < 2048) {
|
||||||
buffer_size = 2048;
|
buffer_size = 2048;
|
||||||
@@ -921,6 +929,9 @@ int main (int argc, char **argv)
|
|||||||
buffer_shift(&sock.read);
|
buffer_shift(&sock.read);
|
||||||
|
|
||||||
if (FD_ISSET(sock.fd, &rfds)) {
|
if (FD_ISSET(sock.fd, &rfds)) {
|
||||||
|
if (noquickack)
|
||||||
|
sk_set_int(sock.fd, sk_quickack, 0);
|
||||||
|
|
||||||
ssize_t r = fd_read(sock.fd, sock.read.write,
|
ssize_t r = fd_read(sock.fd, sock.read.write,
|
||||||
buffer_write_size(&sock.read));
|
buffer_write_size(&sock.read));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user