aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/openssl')
-rw-r--r--ext/openssl/extconf.rb2
-rw-r--r--ext/openssl/ruby_missing.h22
2 files changed, 13 insertions, 11 deletions
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_ */