GET_CONF_INT(conf, filename, min_workers);
GET_CONF_INT(conf, filename, max_workers);
GET_CONF_INT(conf, filename, max_clients);
+ GET_CONF_INT(conf, filename, max_queued_clients);
GET_CONF_INT(conf, filename, prio_workers);
int min_workers;
int max_workers;
int max_clients;
+ int max_queued_clients;
int prio_workers;
let processing_entry = int_entry "min_workers"
| int_entry "max_workers"
| int_entry "max_clients"
+ | int_entry "max_queued_clients"
| int_entry "max_requests"
| int_entry "max_client_requests"
| int_entry "prio_workers"
NULL,
#endif
false,
+ config->max_queued_clients,
config->max_client_requests)))
goto error;
if (sock_path_ro) {
NULL,
#endif
true,
+ config->max_queued_clients,
config->max_client_requests)))
goto error;
}
NULL,
#endif
false,
+ config->max_queued_clients,
config->max_client_requests)))
goto error;
config->auth_tls,
ctxt,
false,
+ config->max_queued_clients,
config->max_client_requests))) {
virObjectUnref(ctxt);
goto error;
# over all sockets combined.
#max_clients = 20
+# The maximum length of queue of connections waiting to be
+# accepted by the daemon. Note, that some protocols supporting
+# retransmission may obey this so that a later reattempt at
+# connection succeeds.
+#max_queued_clients = 1000
+
# The minimum limit sets the number of workers to start up
# initially. If the number of active clients exceeds this,
#if WITH_GNUTLS
NULL,
#endif
- false, 1)))
+ false, 0, 1)))
return -1;
if (virNetServerAddService(srv, svc, NULL) < 0) {
NULL,
#endif
false,
+ 0,
5)))
goto error;
virNetTLSContextPtr tls,
#endif
bool readonly,
+ size_t max_queued_clients,
size_t nrequests_client_max)
{
virNetServerServicePtr svc;
goto error;
for (i = 0; i < svc->nsocks; i++) {
- if (virNetSocketListen(svc->socks[i], 0) < 0)
+ if (virNetSocketListen(svc->socks[i], max_queued_clients) < 0)
goto error;
/* IO callback is initially disabled, until we're ready
virNetTLSContextPtr tls,
#endif
bool readonly,
+ size_t max_queued_clients,
size_t nrequests_client_max)
{
virNetServerServicePtr svc;
goto error;
for (i = 0; i < svc->nsocks; i++) {
- if (virNetSocketListen(svc->socks[i], 0) < 0)
+ if (virNetSocketListen(svc->socks[i], max_queued_clients) < 0)
goto error;
/* IO callback is initially disabled, until we're ready
virNetTLSContextPtr tls,
# endif
bool readonly,
+ size_t max_queued_clients,
size_t nrequests_client_max);
virNetServerServicePtr virNetServerServiceNewUNIX(const char *path,
mode_t mask,
virNetTLSContextPtr tls,
# endif
bool readonly,
+ size_t max_queued_clients,
size_t nrequests_client_max);
virNetServerServicePtr virNetServerServiceNewFD(int fd,
int auth,