-const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.145 2017/06/08 13:04:56 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $
#define AI_NUMERICSERV 0
#endif
-const char jbsockets_h_rcs[] = JBSOCKETS_H_VERSION;
-
/*
* Maximum number of gethostbyname(_r) retries in case of
* soft errors (TRY_AGAIN).
*/
#define MAX_DNS_RETRIES 10
-#define MAX_LISTEN_BACKLOG 128
-
#ifdef HAVE_RFC2553
static jb_socket rfc2553_connect_to(const char *host, int portnum, struct client_state *csp);
#else
*
* Function : set_no_delay_flag
*
- * Description : Disables TCP coalescence for the given socket.
+ * Description : Disables the Nagle algorithm (TCP send coalescence)
+ * for the given socket.
*
* Parameters :
* 1 : fd = The file descriptor to operate on
* Parameters :
* 1 : hostnam = TCP/IP address to bind/listen to
* 2 : portnum = port to listen on
- * 3 : pfd = pointer used to return file descriptor.
+ * 3 : backlog = Listen backlog
+ * 4 : pfd = pointer used to return file descriptor.
*
* Returns : if success, returns 0 and sets *pfd.
* if failure, returns -3 if address is in use,
* -2 if address unresolvable,
* -1 otherwise
*********************************************************************/
-int bind_port(const char *hostnam, int portnum, jb_socket *pfd)
+int bind_port(const char *hostnam, int portnum, int backlog, jb_socket *pfd)
{
#ifdef HAVE_RFC2553
struct addrinfo hints;
}
#endif /* ndef HAVE_RFC2553 */
- while (listen(fd, MAX_LISTEN_BACKLOG) == -1)
+ while (listen(fd, backlog) == -1)
{
if (errno != EINTR)
{
#else
do
{
-#if defined(FEATURE_ACCEPT_FILTER) && defined(SO_ACCEPTFILTER)
- if (csp->config->enable_accept_filter)
- {
- struct accept_filter_arg af_options;
- bzero(&af_options, sizeof(af_options));
- strlcpy(af_options.af_name, "httpready", sizeof(af_options.af_name));
- if (setsockopt(fd, SOL_SOCKET, SO_ACCEPTFILTER, &af_options,
- sizeof(af_options)))
- {
- log_error(LOG_LEVEL_ERROR,
- "Enabling accept filter for socket %d failed: %E", fd);
- }
- }
-#endif
afd = accept (fd, (struct sockaddr *) &client, &c_length);
} while (afd < 0 && errno == EINTR);
if (afd < 0)