現在テスト中です: 完了後にGitHubのコードを公開する予定です。

N · 見つからない

構造refresh

解放リクエスト(R)の時点でキーが存在しなかった場合、 またはtokenが現在保有中のトークンと一致しなかった場合に返されます。これはエラーではなく、 「存在しなかった」という値として返されます。

tokenはリクエストに載せた値をそのまま返した相関子です — クライアントはこの値で、どの リクエストに対する応答かを特定します (応答マッチングルール)。

バイト表記: opはASCII文字、tokenはバイナリ(u64、ビッグエンディアン)、keyはUTF-8 テキスト(可変長、構造上はNと表記)です。末尾の\n0Aです。固定ヘッダはバイナリ値のため 0x0Aを含みうるので、改行を探す前にバイト数で先に消費しなければなりません。

フロー

クライアント
サーバー
R · 解放 (key · token)
キーが存在しない、またはトークンが異なる — すでに失効/解放済み、または元から存在しない
N · 見つからない
リクエストレスポンス

解放はほぼ冪等です — サーバーがすでにlease失効で回収したキーや、すでに解放済みの キーに対してRを送るとNが返ります。これはフローの正常な分岐であるため、クライアントは エラーとして扱う必要はありません。