TapTap
ec6692ac41
protocol: add transport I/O vtable over TCP/TLS primitives
...
Introduce ProtocolIoOps (send/recv/has_pending), selected once by
protocol_session_init() and protocol_session_set_ssl(), and dispatch the
send, receive and status-read loops through session->ops instead of
branching on session->ssl at runtime.
Each op performs one transfer attempt and classifies the result
(PROTOCOL_IO_RETRY/CLOSED/ERROR), preserving the WANT_READ/WANT_WRITE
wait_events switching, the SSL_ERROR_SYSCALL/EINTR retry, the
SSL_pending poll gating and the deadline handling. The raw read()/write()
fallback lives in the plaintext ops.
Add unit tests: a socketpair session with a counting ops wrapper proving
the loops dispatch through the vtable, and a worker-thread test that
protocol_current_ssl() resolves the bound session's SSL when io_ssl is NULL.
2026-09-23 00:18:36 +02:00
..
2026-09-19 13:52:48 +02:00
2026-09-23 00:18:29 +02:00
2026-09-14 16:09:44 +02:00
2026-09-21 19:19:06 +02:00
2026-09-13 00:59:21 +02:00
2026-06-10 16:58:35 +02:00
2026-09-10 22:05:18 +02:00
2026-09-10 21:40:07 +02:00
2026-09-22 14:03:10 +02:00
2026-09-06 12:34:10 +02:00
2026-09-19 13:14:48 +02:00
2026-09-07 17:42:53 +02:00
2026-09-14 16:19:26 +02:00
2026-06-10 16:58:35 +02:00
2026-09-22 21:58:54 +02:00
2026-07-29 19:19:19 +02:00
2026-09-21 18:31:25 +02:00
2026-07-04 21:25:34 +02:00
2026-09-22 14:03:10 +02:00
2026-06-10 16:58:35 +02:00
2026-09-21 22:01:18 +02:00
2026-09-10 12:50:56 +02:00
2026-09-22 22:53:23 +02:00
2026-09-09 17:48:07 +02:00
2026-09-13 11:11:23 +02:00
2026-09-13 10:23:58 +02:00
2026-07-20 19:42:53 +02:00
2026-07-20 14:44:35 +02:00
2026-09-06 14:19:18 +02:00
2026-09-06 13:20:03 +02:00
2026-09-19 17:07:56 +02:00
2026-09-18 20:13:29 +02:00
2026-09-07 17:42:53 +02:00
2026-07-18 20:00:15 +02:00
2026-09-15 23:12:03 +02:00
2026-09-13 04:16:28 +02:00
2026-08-30 13:50:42 +02:00
2026-07-20 19:42:53 +02:00
2026-09-22 23:45:41 +02:00
2026-09-09 14:23:59 +02:00
2026-09-21 22:01:44 +02:00
2026-09-21 19:19:06 +02:00
2026-09-19 10:45:23 +02:00
2026-09-15 21:57:39 +02:00
2026-09-19 13:52:48 +02:00
2026-07-29 19:19:19 +02:00
2026-09-14 16:39:10 +02:00
2026-07-20 14:44:35 +02:00
2026-09-13 06:24:46 +02:00
2026-09-13 06:24:46 +02:00
2026-09-18 20:39:20 +02:00
2026-09-10 17:13:06 +02:00
2026-09-13 01:44:59 +02:00
2026-07-20 19:42:53 +02:00
2026-09-21 18:45:29 +02:00
2026-07-20 14:44:35 +02:00
2026-09-10 13:52:24 +02:00
2026-09-10 13:52:24 +02:00
2026-09-18 21:56:44 +02:00
2026-07-20 19:42:53 +02:00
2026-09-01 20:46:07 +02:00
2026-07-20 14:44:35 +02:00
2026-09-13 12:40:03 +02:00
2026-09-13 12:19:46 +02:00
2026-09-23 00:18:36 +02:00
2026-07-20 14:44:35 +02:00
2026-08-16 09:37:28 +02:00
2026-06-10 16:58:35 +02:00
2026-09-16 22:45:26 +02:00
2026-09-13 03:29:01 +02:00
2026-09-04 02:25:26 +02:00
2026-07-20 14:44:35 +02:00
2026-09-19 12:49:56 +02:00
2026-07-04 21:25:34 +02:00
2026-09-15 21:12:53 +02:00
2026-09-09 17:48:07 +02:00
2026-09-20 12:09:21 +02:00
2026-07-29 19:19:19 +02:00
2026-09-22 13:52:57 +02:00
2026-06-10 16:58:35 +02:00
2026-09-15 22:20:02 +02:00
2026-09-10 16:27:49 +02:00
2026-08-16 09:37:28 +02:00
2026-07-20 14:44:35 +02:00
2026-09-21 19:50:33 +02:00
2026-07-21 16:55:07 +02:00
2026-09-22 17:05:54 +02:00
2026-07-21 16:55:07 +02:00
2026-09-22 17:05:54 +02:00
2026-07-21 16:55:07 +02:00
2026-09-17 23:44:41 +02:00
2026-09-22 23:05:40 +02:00
2026-09-08 22:27:53 +02:00