diff --git a/ChangeLog b/ChangeLog index 0bbff29341..ed0b5ae46f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Apr 3 16:22:24 2007 Nobuyoshi Nakada + + * ext/openssl/extconf.rb: check for functions added in 1.9. + + * ext/openssl/ruby_missing.h: check per features instead by + checking version code. [ruby-core:10845] + Tue Apr 3 02:48:48 2007 Technorama * ext/openssl/ossl_bn.c: More documentation. diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb index 98921bc468..27550f5dc7 100644 --- a/ext/openssl/extconf.rb +++ b/ext/openssl/extconf.rb @@ -59,6 +59,8 @@ unless have_header("openssl/conf_api.h") exit 1 end +%w"rb_str_set_len rb_block_call".each {|func| have_func(func, "ruby.h")} + message "=== Checking for OpenSSL features... ===\n" have_func("ERR_peek_last_error") have_func("BN_mod_add") diff --git a/ext/openssl/ruby_missing.h b/ext/openssl/ruby_missing.h index 3dd549cfca..64b76f26b4 100644 --- a/ext/openssl/ruby_missing.h +++ b/ext/openssl/ruby_missing.h @@ -9,33 +9,33 @@ * (See the file 'LICENCE'.) */ #if !defined(_OSSL_RUBY_MISSING_H_) -#define _OSS_RUBY_MISSING_H_ - -#include "version.h" +#define _OSSL_RUBY_MISSING_H_ #define rb_define_copy_func(klass, func) \ rb_define_method(klass, "initialize_copy", func, 1) -#if RUBY_VERSION_CODE >= 190 +#ifndef GetReadFile #define FPTR_TO_FD(fptr) (fptr->fd) #else +#define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr))) +#endif +#ifndef HAVE_RB_IO_T #define rb_io_t OpenFile -#define FPTR_TO_FD(fptr) (fileno(fptr->f)) - +#endif +#ifndef HAVE_RB_STR_SET_LEN /* these methods should probably be backported to 1.8 */ #define rb_str_set_len(str, length) do { \ RSTRING(str)->ptr[length] = 0; \ RSTRING(str)->len = length; \ } while(0) +#endif /* ! HAVE_RB_STR_SET_LEN */ +#ifndef HAVE_RB_BLOCK_CALL /* the openssl module doesn't use arg[3-4] and arg2 is always rb_each */ #define rb_block_call(arg1, arg2, arg3, arg4, arg5, arg6) rb_iterate(rb_each, arg1, arg5, arg6) +#endif /* ! HAVE_RB_BLOCK_CALL */ -#endif /* RUBY_VERSION_CODE >= 190 */ - - -#endif /* _OSS_RUBY_MISSING_H_ */ - +#endif /* _OSSL_RUBY_MISSING_H_ */