* ext/openssl/openssl_missing.h (i2d_of_void): cast for callbacks.

[ruby-core:22860]

* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): suppress a
  warning.

* ext/openssl/ossl_ssl.c (ossl_sslctx_flush_sessions): time_t may
  be larger than long.

* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_get_time),
  (ossl_ssl_session_get_timeout): use TIMET2NUM() to convert
  time_t.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-03-13 07:45:35 +00:00
Родитель 9300355bec
Коммит 1f46af14e4
6 изменённых файлов: 30 добавлений и 12 удалений

Просмотреть файл

@ -1,3 +1,18 @@
Fri Mar 13 16:45:33 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/openssl/openssl_missing.h (i2d_of_void): cast for callbacks.
[ruby-core:22860]
* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): suppress a
warning.
* ext/openssl/ossl_ssl.c (ossl_sslctx_flush_sessions): time_t may
be larger than long.
* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_get_time),
(ossl_ssl_session_get_timeout): use TIMET2NUM() to conver
time_t.
Fri Mar 13 15:10:43 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> Fri Mar 13 15:10:43 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): should use * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): should use

Просмотреть файл

@ -18,6 +18,9 @@ extern "C" {
#ifndef TYPEDEF_D2I_OF #ifndef TYPEDEF_D2I_OF
typedef char *d2i_of_void(); typedef char *d2i_of_void();
#endif #endif
#ifndef TYPEDEF_I2D_OF
typedef int i2d_of_void();
#endif
/* /*
* These functions are not included in headers of OPENSSL <= 0.9.6b * These functions are not included in headers of OPENSSL <= 0.9.6b
@ -30,33 +33,33 @@ typedef char *d2i_of_void();
#if !defined(PEM_write_bio_DSAPublicKey) #if !defined(PEM_write_bio_DSAPublicKey)
# define PEM_write_bio_DSAPublicKey(bp,x) \ # define PEM_write_bio_DSAPublicKey(bp,x) \
PEM_ASN1_write_bio((int (*)())i2d_DSAPublicKey,\ PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAPublicKey,\
PEM_STRING_DSA_PUBLIC,\ PEM_STRING_DSA_PUBLIC,\
bp,(char *)x, NULL, NULL, 0, NULL, NULL) bp,(char *)x, NULL, NULL, 0, NULL, NULL)
#endif #endif
#if !defined(DSAPrivateKey_dup) #if !defined(DSAPrivateKey_dup)
# define DSAPrivateKey_dup(dsa) (DSA *)ASN1_dup((int (*)())i2d_DSAPrivateKey, \ # define DSAPrivateKey_dup(dsa) (DSA *)ASN1_dup((i2d_of_void *)i2d_DSAPrivateKey, \
(d2i_of_void *)d2i_DSAPrivateKey,(char *)dsa) (d2i_of_void *)d2i_DSAPrivateKey,(char *)dsa)
#endif #endif
#if !defined(DSAPublicKey_dup) #if !defined(DSAPublicKey_dup)
# define DSAPublicKey_dup(dsa) (DSA *)ASN1_dup((int (*)())i2d_DSAPublicKey, \ # define DSAPublicKey_dup(dsa) (DSA *)ASN1_dup((i2d_of_void *)i2d_DSAPublicKey, \
(d2i_of_void *)d2i_DSAPublicKey,(char *)dsa) (d2i_of_void *)d2i_DSAPublicKey,(char *)dsa)
#endif #endif
#if !defined(X509_REVOKED_dup) #if !defined(X509_REVOKED_dup)
# define X509_REVOKED_dup(rev) (X509_REVOKED *)ASN1_dup((int (*)())i2d_X509_REVOKED, \ # define X509_REVOKED_dup(rev) (X509_REVOKED *)ASN1_dup((i2d_of_void *)i2d_X509_REVOKED, \
(d2i_of_void *)d2i_X509_REVOKED, (char *)rev) (d2i_of_void *)d2i_X509_REVOKED, (char *)rev)
#endif #endif
#if !defined(PKCS7_SIGNER_INFO_dup) #if !defined(PKCS7_SIGNER_INFO_dup)
# define PKCS7_SIGNER_INFO_dup(si) (PKCS7_SIGNER_INFO *)ASN1_dup((int (*)())i2d_PKCS7_SIGNER_INFO, \ # define PKCS7_SIGNER_INFO_dup(si) (PKCS7_SIGNER_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_SIGNER_INFO, \
(d2i_of_void *)d2i_PKCS7_SIGNER_INFO, (char *)si) (d2i_of_void *)d2i_PKCS7_SIGNER_INFO, (char *)si)
#endif #endif
#if !defined(PKCS7_RECIP_INFO_dup) #if !defined(PKCS7_RECIP_INFO_dup)
# define PKCS7_RECIP_INFO_dup(ri) (PKCS7_RECIP_INFO *)ASN1_dup((int (*)())i2d_PKCS7_RECIP_INFO, \ # define PKCS7_RECIP_INFO_dup(ri) (PKCS7_RECIP_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_RECIP_INFO, \
(d2i_of_void *)d2i_PKCS7_RECIP_INFO, (char *)ri) (d2i_of_void *)d2i_PKCS7_RECIP_INFO, (char *)ri)
#endif #endif

Просмотреть файл

@ -119,7 +119,7 @@ ossl_engine_s_by_id(VALUE klass, VALUE id)
if(!ENGINE_init(e)) if(!ENGINE_init(e))
ossl_raise(eEngineError, NULL); ossl_raise(eEngineError, NULL);
ENGINE_ctrl(e, ENGINE_CTRL_SET_PASSWORD_CALLBACK, ENGINE_ctrl(e, ENGINE_CTRL_SET_PASSWORD_CALLBACK,
0, NULL, (void(*)())ossl_pem_passwd_cb); 0, NULL, (void(*)(void))ossl_pem_passwd_cb);
ERR_clear_error(); ERR_clear_error();
return obj; return obj;

Просмотреть файл

@ -177,7 +177,7 @@ ossl_pkey_sign(VALUE self, VALUE digest, VALUE data)
str = rb_str_new(0, EVP_PKEY_size(pkey)+16); str = rb_str_new(0, EVP_PKEY_size(pkey)+16);
if (!EVP_SignFinal(&ctx, (unsigned char *)RSTRING_PTR(str), &buf_len, pkey)) if (!EVP_SignFinal(&ctx, (unsigned char *)RSTRING_PTR(str), &buf_len, pkey))
ossl_raise(ePKeyError, NULL); ossl_raise(ePKeyError, NULL);
assert(buf_len <= RSTRING_LEN(str)); assert((long)buf_len <= RSTRING_LEN(str));
rb_str_set_len(str, buf_len); rb_str_set_len(str, buf_len);
return str; return str;

Просмотреть файл

@ -905,7 +905,7 @@ ossl_sslctx_flush_sessions(int argc, VALUE *argv, VALUE self)
rb_raise(rb_eArgError, "arg must be Time or nil"); rb_raise(rb_eArgError, "arg must be Time or nil");
} }
SSL_CTX_flush_sessions(ctx, tm); SSL_CTX_flush_sessions(ctx, (long)tm);
return self; return self;
} }

Просмотреть файл

@ -107,7 +107,7 @@ static VALUE ossl_ssl_session_get_time(VALUE self)
if (t == 0) if (t == 0)
return Qnil; return Qnil;
return rb_funcall(rb_cTime, rb_intern("at"), 1, LONG2NUM(t)); return rb_funcall(rb_cTime, rb_intern("at"), 1, TIMET2NUM(t));
} }
/* /*
@ -126,14 +126,14 @@ static VALUE ossl_ssl_session_get_timeout(VALUE self)
t = SSL_SESSION_get_timeout(ctx); t = SSL_SESSION_get_timeout(ctx);
return ULONG2NUM(t); return TIMET2NUM(t);
} }
#define SSLSESSION_SET_TIME(func) \ #define SSLSESSION_SET_TIME(func) \
static VALUE ossl_ssl_session_set_##func(VALUE self, VALUE time_v) \ static VALUE ossl_ssl_session_set_##func(VALUE self, VALUE time_v) \
{ \ { \
SSL_SESSION *ctx; \ SSL_SESSION *ctx; \
time_t t; \ unsigned long t; \
\ \
GetSSLSession(self, ctx); \ GetSSLSession(self, ctx); \
\ \