]> jfr.im git - irc/rizon/plexus4.git/commitdiff
Set SO_LINGER on throttle and fd limit rejected clients
authorAdam <redacted>
Tue, 17 May 2016 21:20:17 +0000 (17:20 -0400)
committerAdam <redacted>
Tue, 24 May 2016 16:30:41 +0000 (12:30 -0400)
(cherry picked from commit f613d3622542dac0a661da2883d8b12c4b98ec3d)

src/listener.c

index 53ddac666e9f0462d20266111824f13c55af616a..5bbbc72db6ba2399e42531241afef228fd655859 100644 (file)
@@ -437,6 +437,9 @@ accept_connection(fde_t *pfd, void *data)
         send(fd, buf, sizeof(buf) - 1, 0);
       }
 
+      struct linger linger = { .l_onoff = 1, .l_linger = 0 };
+      setsockopt(fd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
+
       close(fd);
       break;    /* jump out and re-register a new io request */
     }
@@ -459,6 +462,9 @@ accept_connection(fde_t *pfd, void *data)
         send(fd, buf, i, 0);
       }
 
+      struct linger linger = { .l_onoff = 1, .l_linger = 0 };
+      setsockopt(fd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
+
       close(fd);
       continue;    /* drop the one and keep on clearing the queue */
     }