servername_cb (and others) do odd things with lambda/proc?
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず、OpenSSL::SSL::SSLContext#servername_cb を通じて2つの callback 形式を再現し、proc と lambda が socket と name をどのように受け取るかを比較します。SSLContext.new と servername_cb 周辺の callback の動作を読み、修正後の動作が期待される引数で両方の形式を処理することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Might be related to https://bugs.ruby-lang.org/issues/12705
When I do something like this:
server_context = OpenSSL::SSL::SSLContext.new.tap do |context|
context.servername_cb = proc {|socket, name|
if hosts.include? name
OpenSSL::SSL::SSLContext.new.tap do |context|
context.cert = certificates[name]
context.key = keys[name]
end
end
}
end
it works. But if I change proc to lambda, it fails with ArgumentError: wrong number of arguments (given 1, expected 2).
server_context = OpenSSL::SSL::SSLContext.new.tap do |context|
context.servername_cb = lambda {|socket, name|
if hosts.include? name
OpenSSL::SSL::SSLContext.new.tap do |context|
context.cert = certificates[name]
context.key = keys[name]
end
end
}
end
However, I feel like both should work. Does proc unwrap array implicitly?
- 主要言語
- C
- スター
- 276
- フォーク
- 205
- 平均マージ
- 1日 3時間
- マージ済み PR(30日)
- 10
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ruby/openssl のほかの issue
-
Add OpenSSL::SSL::SSLContext#client_hello_cb= (binding for SSL_CTX_set_client_hello_cb())対応中かも @kou が 17 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 53/100
ruby/openssl#1125 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
Documenting how to use OpenSSL::SSL::SSLContext in PQC use cases対応中かも @junaruga が 4 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
ruby/openssl#1118 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
Expose XOFs like SHAKE128 and SHAKE256対応中かも @rhenium が 114 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
ruby/openssl#1082 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
ruby/openssl#1075 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
Unchecked *_set_* calls対応中かも @ndossche が 184 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
ruby/openssl#1038 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
vim.filetype.match() prefixes a URL buffer name with the cwd before passing it to filetype functionsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
stream_curl: retry_count never resets after a successful reconnect, so long sequential streams die after 5 drops対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
mpv-player/mpv#18728 ·
メンテナーはふだん 1 日以内に返信
-
followup Prio 📌
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cyrusimap/cyrus-imapd#6640 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
メンテナーはふだん 1 日以内に返信