Skip to main contentModule tls
Source - stats
- OsRng
- TcpIoWrapper
- FETCH_BYTE_CAP
- 【2026-07-29】HTTPS 取得の結果を段階別に集計する。
- OS_RNG_CALL_COUNTER 🔒
- 【2026-07-24診断用】
get_ticks()だけをシードにすると、短時間に連続して
TLS接続を開く場合(例: 外部CSS/フォントの立て続けの取得)に同じtick値を
読んでしまい、複数の接続で全く同一の「乱数」シーケンス(ClientHello random、
鍵交換の一時鍵等)が生成されうる。1回目のHTTPS接続は成功するが2回目以降が
毎回TLSハンドシェイクに失敗する未解明の現象の調査の一環として、呼び出し毎に
必ず異なる値になるよう単調増加カウンタを合成し、この可能性を切り分ける。 - WRITE_RETX_COUNT
- そのうち再送に至った回数(=本当に応答が来なかった回)。
- WRITE_WAIT_CALLS
- WRITE_WAIT_TICKS
- 【2026-08-05 計測】
retry_write 経路で送信後に待った累計 tick と回数。
- https_get
- https_get_binary
- https_get_binary_attempt 🔒
- 1回分のHTTPS GET試行。戻り値は(生レスポンス, Content-Lengthと矛盾なく
完全に受信できたか)。呼び出し元
https_get_binaryがこれを複数回試行し、
打ち切り(TLSタイムアウト等による部分受信)を検出したら再試行する。
remote_ipは呼び出し元で1回だけ解決済みのものを使い回す
(DNS解決自体を毎試行で繰り返さないため)。 - https_get_binary_keepalive
- レスポンスヘッダから
Content-Length(10進)を読み取る。無ければNone。
同一ホストの複数パスを 1 本の接続・1 回のハンドシェイクで取得する。 - https_get_binary_measured 🔒
- https_post
- HTTPS POST。https_get と同じ TLS 経路で、リクエスト行を POST にし
Content-Type / Content-Length ヘッダ + ボディを送信する。
フォーム送信(DuckDuckGo lite の検索等)が HTTPS で正しく届くために必須。
- https_request
- 任意メソッド + 任意ヘッダの HTTPS リクエスト(OAuth2 / REST API 用)。
Authorization: Bearer ... などの追加ヘッダを付けて送れる。body が Some なら
Content-Type / Content-Length を付与する(content_type が空なら付けない)。 - response_looks_truncated 🔒
Content-Lengthが判明していて、かつ受信済みボディがそれより短い
(=TLS読み取り途中で打ち切られた)場合にtrueを返す。chunked応答は
対象外(Content-Lengthヘッダを通常持たないため判定不能)。