Commit Graph

3198 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa 1ce9efc644 nghttpx: Set SCT data when built with boringssl 2021-10-15 23:06:24 +09:00
Tatsuhiro Tsujikawa 7055501efd src: Enable HTTP/3 with boringssl 2021-10-15 22:50:34 +09:00
Tatsuhiro Tsujikawa c790ee64a4 src: Prefer #ifdef for a single condition 2021-10-15 22:50:26 +09:00
Tatsuhiro Tsujikawa 9fb05d5ea2 Fix compile error under mac os 2021-10-15 19:54:08 +09:00
Tatsuhiro Tsujikawa 3742acaf39 nghttpx: Fix wrong SSL_CTX object usage 2021-10-15 18:19:07 +09:00
Tatsuhiro Tsujikawa d8282de229 nghttpx: Respect !tls-no-postpone-early-data with boringssl 2021-10-15 00:13:49 +09:00
Tatsuhiro Tsujikawa 3a721a9dd5 nghttpx: Send session ticket after handshake with boringssl 2021-10-15 00:13:49 +09:00
Tatsuhiro Tsujikawa 0b6092446b src: Compile with boringssl for non-http3 build 2021-10-14 23:44:27 +09:00
Tatsuhiro Tsujikawa fa7a916ef3 nghttpx: Store initial_rtt in ev_tstamp for consistency 2021-10-10 17:34:58 +09:00
Tatsuhiro Tsujikawa 69c4187100 nghttpx: Add --frontend-quic-initial-rtt option 2021-10-10 17:24:02 +09:00
Tatsuhiro Tsujikawa d7af5924ff nghttpx: Extend QUIC server ID to 4 bytes 2021-10-10 16:05:48 +09:00
Tatsuhiro Tsujikawa cb6aea9aa9 Compile with -DNDEBUG 2021-10-06 21:28:00 +09:00
Tatsuhiro Tsujikawa f4290c6497 Fix compile error 2021-10-04 23:23:03 +09:00
Tatsuhiro Tsujikawa 086b85b8f9 nghttpx: Unload BPF program after setting up all QUIC listeners 2021-10-04 22:39:31 +09:00
Tatsuhiro Tsujikawa abee658a60 nghttpx: Make sure that ngtcp2_conn_update_pkt_tx_time is called 2021-10-02 19:22:53 +09:00
Tatsuhiro Tsujikawa 87bdc21667 nghttpx: Add --worker-process-grace-shutdown-period option 2021-10-02 18:55:51 +09:00
Tatsuhiro Tsujikawa 0266c458a3 nghttpx: Add --max-worker-processes option 2021-09-29 22:12:10 +09:00
Tatsuhiro Tsujikawa d9c7631dcb Fix compile error 2021-09-29 21:05:46 +09:00
Tatsuhiro Tsujikawa df064fa2ba nghttpx: Unload BPF objects on reload to avoid running out of memlock 2021-09-29 19:33:16 +09:00
Tatsuhiro Tsujikawa 318e0c8447 Guard msghdr_get_local_addr with ENABLE_HTTP3 macro 2021-09-28 22:35:53 +09:00
Tatsuhiro Tsujikawa 19b4da6401 nghttpx: Support h3-29 2021-09-26 16:00:47 +09:00
Tatsuhiro Tsujikawa 886dc93f18 nghttpx: Fail h3 connection attempt if no ALPN is negotiated 2021-09-26 16:00:47 +09:00
Tatsuhiro Tsujikawa f6da0d342a nghttpx: Fix crash if no keying materials are specified in file 2021-09-24 18:19:01 +09:00
Tatsuhiro Tsujikawa 7271537a15 nghttpx: Add --rlimit-memlock option 2021-09-24 18:13:38 +09:00
Tatsuhiro Tsujikawa d0e8efac4d nghttpx: Fix bug that reading QUIC secret file fails without line separator 2021-09-24 17:50:28 +09:00
Tatsuhiro Tsujikawa 308c73bfa2 nghttpx: Read QUIC keying materials from file
Add --frontend-quic-secret-file to read QUIC keying materials from
file.  --frontend-quic-connection-id-encryption-key was removed in
favor of this new option.
2021-09-23 11:18:07 +09:00
Tatsuhiro Tsujikawa c40309ae8e nghttpx: optarg should be allocated per configuration 2021-09-23 11:01:01 +09:00
Tatsuhiro Tsujikawa 1c7a4ecc7f nghttpx: Rename generate_encrypted_quic_connection_id to generate_quic_connection_id 2021-09-21 23:09:03 +09:00
Tatsuhiro Tsujikawa 80cc623eb2 nghttpx: Allocate server id in Connection ID 2021-09-21 23:08:55 +09:00
Tatsuhiro Tsujikawa 657d94b992 Fix compile error with libressl 2021-09-21 19:48:38 +09:00
Tatsuhiro Tsujikawa 6a099ee50a nghttpx: QUIC requires TLS 2021-09-18 19:27:47 +09:00
Tatsuhiro Tsujikawa 9a6b623c25 Update doc 2021-09-18 15:19:15 +09:00
Tatsuhiro Tsujikawa fd107ab47c nghttpx: Refactor quic 2021-09-17 19:35:31 +09:00
Tatsuhiro Tsujikawa 1320d7efab nghttpx: Do not accept new connection during graceful shutdown period 2021-09-17 18:30:16 +09:00
Tatsuhiro Tsujikawa 7cdc6cfa6d nghttpx: Store Retry in CloseWait to rate limit its transmission 2021-09-17 17:52:05 +09:00
Tatsuhiro Tsujikawa e167e07a9a nghttpx: Check that HTTP response message finished safely 2021-09-16 22:00:36 +09:00
Tatsuhiro Tsujikawa 8f9744c07b nghttpx: Pass hashed_scid_ to CloseWait 2021-09-15 23:40:46 +09:00
Tatsuhiro Tsujikawa 684a219e39 nghttpx: Tweak close wait handling 2021-09-15 23:07:46 +09:00
Tatsuhiro Tsujikawa 0961295a82 nghttpx: Transform odcid into hashed cid 2021-09-15 22:19:52 +09:00
Tatsuhiro Tsujikawa fd060eb9f1 nghttpx: Connection ID encryption 2021-09-15 21:31:03 +09:00
Tatsuhiro Tsujikawa 1feeda4514 nghttpx: Fix bug that worker process never exit 2021-09-15 21:00:41 +09:00
Tatsuhiro Tsujikawa 6d29de0f1e Fix compile error 2021-09-14 17:22:25 +09:00
Tatsuhiro Tsujikawa 74162850f0 nghttpx: Compile with the latest nghttp3 2021-09-14 16:45:11 +09:00
Tatsuhiro Tsujikawa 8903bd1e8a nghttpx: Deal with error from ngtcp2_conn_read_pkt 2021-09-13 23:09:38 +09:00
Tatsuhiro Tsujikawa 8f419a4869 nghttpx: Add --frontend-quic-congestion-controller option 2021-09-13 21:35:46 +09:00
Tatsuhiro Tsujikawa 4541134c88 Add missing include 2021-09-13 21:19:00 +09:00
Tatsuhiro Tsujikawa b5e5972c2a Update doc 2021-09-12 18:11:11 +09:00
Tatsuhiro Tsujikawa 525d59fdf6 Remove util::make_hostport returning std::string 2021-09-12 18:07:54 +09:00
Tatsuhiro Tsujikawa 00f65afe20 nghttpx: Fix incorrect quic frontend address matching 2021-09-12 18:07:54 +09:00
Tatsuhiro Tsujikawa fc402f5804 Cleanup 2021-09-12 16:55:56 +09:00
Tatsuhiro Tsujikawa f74b6d9a43 nghttpx: Add --frontend-quic-require-token option 2021-09-12 15:04:54 +09:00
Tatsuhiro Tsujikawa ccaf2333ca nghttpx: Enable websocket over h3 2021-09-11 17:56:25 +09:00
Tatsuhiro Tsujikawa 0066bf8eed h2load: Cleanup 2021-09-11 17:00:11 +09:00
Tatsuhiro Tsujikawa bc8f88f5fa Compile with the latest ngtcp2 2021-09-11 16:57:14 +09:00
Tatsuhiro Tsujikawa 10c9d917ad Fix compile error 2021-09-10 22:55:33 +09:00
Tatsuhiro Tsujikawa cc5f752f2d nghttpx: Use secure random to create websocket nonce 2021-09-10 22:43:03 +09:00
Tatsuhiro Tsujikawa 39b1a51ff4 Compile with the latest ngtcp2 2021-09-09 23:41:27 +09:00
Tatsuhiro Tsujikawa a2e2e46af3 Build with OpenSSL v3.0.0 2021-09-09 18:35:35 +09:00
Tatsuhiro Tsujikawa 9d53a7e0a6 Fix compile error 2021-09-07 14:55:30 +09:00
Tatsuhiro Tsujikawa 7ea57eaa18 h2load: Add --max-udp-payload-size option 2021-09-07 14:42:35 +09:00
Tatsuhiro Tsujikawa 1657a425c1 Build with the latest ngtcp2 2021-09-07 13:40:41 +09:00
Tatsuhiro Tsujikawa e929e92245 nghttpx: Fix typo 2021-09-06 20:59:11 +09:00
Tatsuhiro Tsujikawa 5994e48b28 nghttpx: Add more logging for token validation 2021-09-06 20:58:35 +09:00
Tatsuhiro Tsujikawa 50662c9c9e nghttpx: Guard TLS1_3_VERSION 2021-09-06 20:07:38 +09:00
Tatsuhiro Tsujikawa addd614e94 nghttpx: Add qlog support 2021-09-06 20:06:38 +09:00
Tatsuhiro Tsujikawa fbb228050a nghttpx: Fix uninitialized dnf fields 2021-09-06 00:12:04 +09:00
Tatsuhiro Tsujikawa 9bda8e266e nghttpx: Remove BoringSSL early data for QUIC for now 2021-09-05 22:37:20 +09:00
Tatsuhiro Tsujikawa d977005126 nghttpx: Disable session cache for QUIC since it solely uses ticket 2021-09-05 22:36:43 +09:00
Tatsuhiro Tsujikawa 8b579bc7d0 nghttpx: Always renew TLS ticket for TLSv1.3 2021-09-05 22:26:45 +09:00
Tatsuhiro Tsujikawa ab16a11aa3 nghttpx: Add --frontend-quic-early-data, disable early data by default 2021-09-05 21:39:45 +09:00
Tatsuhiro Tsujikawa 85347e12de nghttpx: Rate limit Stateless Reset transmission 2021-09-05 19:23:50 +09:00
Tatsuhiro Tsujikawa 67afbbbaa6 nghttpx: Use ngtcp2_cid as a hash key 2021-09-05 19:00:26 +09:00
Tatsuhiro Tsujikawa b743ee21f0 nghttpx: Implement closing and draining state 2021-09-05 18:01:27 +09:00
Tatsuhiro Tsujikawa 72702a042e Cleanup 2021-09-05 17:47:50 +09:00
Tatsuhiro Tsujikawa 649c69fa9e nghttpx: Do not send CONNECTION_CLOSE on idle timeout 2021-09-04 19:04:22 +09:00
Tatsuhiro Tsujikawa 47edc33b0d nghttpx: Use ULOG 2021-09-04 17:48:02 +09:00
Tatsuhiro Tsujikawa 2afad0c650 nghttpx: Use ngtcp2_conn_get_client_initial_dcid 2021-09-04 17:43:24 +09:00
Tatsuhiro Tsujikawa fb53a6a686 Follow the latest ngtcp2 change 2021-09-04 17:37:00 +09:00
Tatsuhiro Tsujikawa c2e29ad06f nghttpx: Enforce worker-frontend-connections for QUIC 2021-08-31 19:48:26 +09:00
Tatsuhiro Tsujikawa ef3066a1bd nghttpx: Update doc 2021-08-31 19:24:41 +09:00
Tatsuhiro Tsujikawa 65db5b94e4 nghttpx: Document "quic" parameter 2021-08-31 19:24:41 +09:00
Tatsuhiro Tsujikawa 54fd0efdfe nghttpx: Return error if quic param is specified when quic is disabled 2021-08-31 17:15:44 +09:00
Tatsuhiro Tsujikawa f0d1e50d5a cmake: Build bpf 2021-08-31 17:15:37 +09:00
Tatsuhiro Tsujikawa e01d61484d Fix compile error with cmake 2021-08-31 16:49:55 +09:00
Tatsuhiro Tsujikawa 51f83087f2 nghttpx: Add missing HTTP/3 timer handling 2021-08-31 14:19:31 +09:00
Tatsuhiro Tsujikawa 17012654e1 nghttpx: Add HTTP/3 graceful shutdown 2021-08-31 14:06:59 +09:00
Tatsuhiro Tsujikawa e998d125ab nghttpx: Send CONNECTION_CLOSE if Retry token validation failed 2021-08-31 13:23:52 +09:00
Tatsuhiro Tsujikawa 95601d3179 nghttpx: Utilize the latest ngtcp2 features 2021-08-31 12:13:06 +09:00
Tatsuhiro Tsujikawa 0566a5833b nghttpx: Fix infinite loop 2021-08-30 18:39:28 +09:00
Tatsuhiro Tsujikawa 58d81dbc52 nghttpx: Send Stateless Reset in response to Short packet only for now 2021-08-29 21:08:41 +09:00
Tatsuhiro Tsujikawa 2b4dc4496f nghttpx: Forward QUIC UDP datagram to lingering worker in graceful shutdown
Forward QUIC UDP datagram to lingering worker process which is in
graceful shutdown.  Both SIGHUP and SIGUSR2 work.  To make this work
correctly, eBPF is required.
2021-08-29 18:35:41 +09:00
Tatsuhiro Tsujikawa c5e9d0096a nghttpx: Fix crash when ConnectionHandler is deleted while doing memcached request 2021-08-29 17:17:36 +09:00
Tatsuhiro Tsujikawa ef694923f7 Provide enum bpf_stats_type if not defined in linux/bpf.h for older kernel 2021-08-29 14:30:59 +09:00
Tatsuhiro Tsujikawa 8d02203bb6 Add LIBBPF_CFLAGS for eBPF program and nghttpx 2021-08-29 13:58:10 +09:00
Tatsuhiro Tsujikawa 7d13891066 nghttpx: Rename eBPF options 2021-08-27 21:34:18 +09:00
Tatsuhiro Tsujikawa 4292bd7ad9 nghttpx: Set max udp payload size to IPv4 minimum payload size for now 2021-08-27 21:26:50 +09:00
Tatsuhiro Tsujikawa 82cd110dbe nghttpx: Use SHRPX_MAX_UDP_PAYLOAD_SIZE 2021-08-27 21:13:26 +09:00
Tatsuhiro Tsujikawa d2729193c7 nghttpx: Add --frontend-http3-max-concurrent-streams option 2021-08-27 21:11:03 +09:00
Tatsuhiro Tsujikawa 87fb325357 nghttpx: Add window size options for HTTP/3 connection 2021-08-27 21:02:45 +09:00
Tatsuhiro Tsujikawa fb8ff7b892 nghttpx: Format duration for frontend-quic-idle-timeout default value 2021-08-27 19:52:24 +09:00