tune.quic.fe.stream.max-total <number>
Sets the maximum number of requests that can be handled by a single QUIC
connection. Once this total is reached, the connection will be gracefully
- shutdown. In HTTP/3, this translates in a GOAWAY frame. The connection is
+ shutdown. In HTTP/3, this translates to a GOAWAY frame. The connection is
finally closed when all remaining transfers are completed.
This setting is applied as a hard limit on the connection via the QUIC flow
side, as well as CPU consumption on both sides due to TLS handshakes.
The default value is 0 which implies no specific limit outside of the QUIC
- protocol encoding limitation (2^60, more that a billion billion).
+ protocol encoding limitation (2^60, more than a billion billion).
tune.quic.frontend.max-streams-bidi <number> (deprecated)
This keyword has been deprecated in 3.3 and will be removed in 3.5. It is
logs will be emitted, and even permits to emit multiple logs for a
same transaction. Special value 'all' may be used to enable all available
log origins, making it possible to track a transaction from accept to close.
- Indidivual log origins may also be specified using their names separated by
+ Individual log origins may also be specified using their names separated by
commas to selectively enable when logs should be produced.
Common log origins are: accept, connect, request, response, close.
loads as it is measured over a few tens to hundreds of requests. This is the
same value as used to decide to enable connection killing on too high
glitches, or to disable compression. See also "tune.glitches.kill.cpu-usage"
- and "maxcomcpuusage".
+ and "maxcompcpuusage".
date([<offset>[,<unit>]]) : integer
Returns the current date as the epoch (number of seconds since 01/01/1970).
"GET http://127.0.0.1:12345/MEMwQT HTTP/1.1"
Troubleshooting:
- A common error that can happen with let's encrypt certificates is if the DNS
+ A common error that can happen with Let's Encrypt certificates is if the DNS
resolution provides an IPv6 address and your system does not have a valid
outgoing IPv6 route. In such a case, you can either create the appropriate
route or set the "httpclient.resolvers.prefer ipv4" option in the global
the profile is not supported. When not set, no profile field is included
and the CA uses its default issuance policy.
- See https://letsencrypt.org/docs/profiles/ for letsencrypt profiles.
+ See https://letsencrypt.org/docs/profiles/ for Let's Encrypt profiles.
Example:
# Request short-lived certificates
-C : dump the configuration and exit
-D : goes daemon
-b <keysize> : RSA key size in bits (ex: "2048", "4096"...)
- -c <curves> : ECSDA curves (ex: "P-256", "P-384"...)
+ -c <curves> : ECDSA curves (ex: "P-256", "P-384"...)
-v : shows version
-d : enable the traces for all http protocols
--quic-bind-opts <opts> : append options to QUIC "bind" lines
case H3_FT_GOAWAY:
ret = h3_parse_goaway_frm(qcs->qcc->ctx, b, flen);
if (ret < 0) {
- TRACE_ERROR("error on SETTINGS parsing", H3_EV_RX_FRAME, qcs->qcc->conn, qcs);
+ TRACE_ERROR("error on GOAWAY parsing", H3_EV_RX_FRAME, qcs->qcc->conn, qcs);
qcc_set_error(qcs->qcc, h3c->err, 1);
goto err;
}
/* Local stack should not attached stream on a closed connection. */
BUG_ON(quic_stream_is_local(qcs->qcc, qcs->id));
- TRACE_STATE("close stream outside of goaway range", H3_EV_H3S_NEW, qcs->qcc->conn, qcs);
+ TRACE_STATE("close stream outside of GOAWAY range", H3_EV_H3S_NEW, qcs->qcc->conn, qcs);
qcc_abort_stream_read(qcs);
qcc_reset_stream(qcs, H3_ERR_REQUEST_REJECTED);
}
while (!LIST_ISEMPTY(&qcc->lfctl.frms)) {
struct quic_frame *frm = LIST_ELEM(qcc->lfctl.frms.n, struct quic_frame *, list);
- qc_frm_free(conn_is_quic(qcc->conn) ? qcc->conn->handle.qc : 0, &frm);
+ qc_frm_free(conn_is_quic(qcc->conn) ? qcc->conn->handle.qc : NULL, &frm);
}
qcc_clear_frms(qcc);
qcc->wait_event.tasklet = tasklet_new();
if (!qcc->wait_event.tasklet) {
- TRACE_ERROR("taslket alloc failure", QMUX_EV_QCC_NEW);
+ TRACE_ERROR("tasklet alloc failure", QMUX_EV_QCC_NEW);
goto err;
}
qcs = qcc_init_stream_local(qcc, 1);
if (!qcs) {
- TRACE_PROTO("Cannot allocate a new locally initiated streeam",
+ TRACE_PROTO("Cannot allocate a new locally initiated stream",
QMUX_EV_QCC_NEW|QMUX_EV_QCC_ERR, conn);
goto err;
}
[ST_I_INF_UPTIME_SEC] = { .name = "Uptime_sec", .alt_name = "uptime_seconds", .desc = "How long ago this worker process was started (seconds)" },
[ST_I_INF_START_TIME_SEC] = { .name = "Start_time_sec", .alt_name = "start_time_seconds", .desc = "Start time in seconds" },
[ST_I_INF_MEMMAX_MB] = { .name = "Memmax_MB", .alt_name = NULL, .desc = "Worker process's hard limit on memory usage in MB (-m on command line)" },
- [ST_I_INF_MEMMAX_BYTES] = { .name = "Memmax_bytes", .alt_name = "max_memory_bytes", .desc = "Worker process's hard limit on memory usage in byes (-m on command line)" },
+ [ST_I_INF_MEMMAX_BYTES] = { .name = "Memmax_bytes", .alt_name = "max_memory_bytes", .desc = "Worker process's hard limit on memory usage in bytes (-m on command line)" },
[ST_I_INF_POOL_ALLOC_MB] = { .name = "PoolAlloc_MB", .alt_name = NULL, .desc = "Amount of memory allocated in pools (in MB)" },
[ST_I_INF_POOL_ALLOC_BYTES] = { .name = "PoolAlloc_bytes", .alt_name = "pool_allocated_bytes", .desc = "Amount of memory allocated in pools (in bytes)" },
[ST_I_INF_POOL_USED_MB] = { .name = "PoolUsed_MB", .alt_name = NULL, .desc = "Amount of pool memory currently used (in MB)" },
goto out;
}
else {
- ha_alert("parsing [%s:%d] : unknown healthcheck type '%s (expects 'tcp-check', 'httpchk', 'ssl-hello-chk', "
+ ha_alert("parsing [%s:%d] : unknown healthcheck type '%s' (expects 'tcp-check', 'httpchk', 'ssl-hello-chk', "
"'smtpchk', 'pgsql-check', 'redis-check', 'mysql-check', 'ldap-check', 'spop-check').\n",
file, linenum, args[1]);
err_code |= ERR_ALERT | ERR_ABORT;