From: GOTOU Yuuzou Date: 2003-09-10T22:34:11+09:00 Subject: [ruby-dev:21372] Re: ext/openssl on mswin32 In message <20030910200336.9AF3.TIETEW-ML-RUBY-DEV@tietew.net>, `Tietew ' wrote: > openssl/conf_api.h で定義されている _CONF_* が libeay32.dll から > export されていないのが原因なんですが,どうするのがいいでしょう。 > > 1) OpenSSL 側に,_CONF_* も export してくれるよう頼む > ※ OpenSSL をソースからコンパイルしても _CONF_* は dll に入らない > 2) ossl_config.c を _CONF_* を使わないよう修正する うぅ。どっちがいいんしょうねえ。 応急処置として、WIN32 では使わないようにするパッチを作ってみ ました。make が通るなら、ひとまずこれをコミットしてみようと 思うので試して頂けませんか。 -- ごとうゆうぞう Index: ossl.h =================================================================== RCS file: /src/ruby/ext/openssl/ossl.h,v retrieving revision 1.6 diff -u -p -r1.6 ossl.h --- ossl.h 8 Sep 2003 10:31:38 -0000 1.6 +++ ossl.h 10 Sep 2003 13:22:55 -0000 @@ -24,6 +24,7 @@ extern "C" { #if defined(_WIN32) # define OpenFile WINAPI_OpenFile +# define OSSL_NO_CONF_API 1 #endif #include #include Index: ossl_config.c =================================================================== RCS file: /src/ruby/ext/openssl/ossl_config.c,v retrieving revision 1.4 diff -u -p -r1.4 ossl_config.c --- ossl_config.c 8 Sep 2003 20:19:01 -0000 1.4 +++ ossl_config.c 10 Sep 2003 13:22:55 -0000 @@ -148,7 +148,11 @@ ossl_config_initialize(int argc, VALUE * ossl_raise(eConfigError, "error in %s:%d", filename, eline); } } +#ifdef OSSL_NO_CONF_API + else rb_raise(rb_eArgError, "wrong number of arguments(0 for 1)"); +#else else _CONF_new_data(conf); +#endif return self; } @@ -156,6 +160,9 @@ ossl_config_initialize(int argc, VALUE * static VALUE ossl_config_add_value(VALUE self, VALUE section, VALUE name, VALUE value) { +#ifdef OSSL_NO_CONF_API + rb_notimplement(); +#else CONF *conf; CONF_VALUE *sv, *cv; @@ -181,6 +188,7 @@ ossl_config_add_value(VALUE self, VALUE } return value; +#endif } static VALUE