summaryrefslogtreecommitdiffhomepage
path: root/svr-main.c
diff options
context:
space:
mode:
Diffstat (limited to 'svr-main.c')
-rw-r--r--svr-main.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/svr-main.c b/svr-main.c
index 284e02d..5234086 100644
--- a/svr-main.c
+++ b/svr-main.c
@@ -138,7 +138,6 @@ void main_noinetd() {
}
for (i = 0; i < listensockcount; i++) {
- set_sock_priority(listensocks[i], DROPBEAR_PRIO_LOWDELAY);
FD_SET(listensocks[i], &fds);
}
@@ -403,9 +402,9 @@ static void commonsetup() {
}
/* Set up listening sockets for all the requested ports */
-static size_t listensockets(int *sock, size_t sockcount, int *maxfd) {
-
- unsigned int i;
+static size_t listensockets(int *socks, size_t sockcount, int *maxfd) {
+
+ unsigned int i, n;
char* errstring = NULL;
size_t sockpos = 0;
int nsock;
@@ -416,7 +415,7 @@ static size_t listensockets(int *sock, size_t sockcount, int *maxfd) {
TRACE(("listening on '%s:%s'", svr_opts.addresses[i], svr_opts.ports[i]))
- nsock = dropbear_listen(svr_opts.addresses[i], svr_opts.ports[i], &sock[sockpos],
+ nsock = dropbear_listen(svr_opts.addresses[i], svr_opts.ports[i], &socks[sockpos],
sockcount - sockpos,
&errstring, maxfd);
@@ -427,6 +426,14 @@ static size_t listensockets(int *sock, size_t sockcount, int *maxfd) {
continue;
}
+ for (n = 0; n < (unsigned int)nsock; n++) {
+ int sock = socks[sockpos + n];
+ set_sock_priority(sock, DROPBEAR_PRIO_LOWDELAY);
+#ifdef DROPBEAR_TCP_FAST_OPEN
+ set_listen_fast_open(sock);
+#endif
+ }
+
sockpos += nsock;
}