From d89b8333c5bf7b319f0ab774951dfa53993ebdc1 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 15 Dec 2004 01:54:40 +0000 Subject: * ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198] * lib/cgi/session.rb (CGI::Session::initialize): generate new session if given session_id does not exist. [ruby-list:40368] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/openssl/ossl_ssl.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'ext/openssl/ossl_ssl.c') diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 4d8a64fc11..c73a160a94 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -119,8 +119,6 @@ ossl_sslctx_initialize(int argc, VALUE *argv, VALUE self) int i; char *s; - Data_Get_Struct(self, SSL_CTX, ctx); - for(i = 0; i < numberof(ossl_sslctx_attrs); i++){ char buf[32]; snprintf(buf, sizeof(buf), "@%s", ossl_sslctx_attrs[i]); @@ -142,6 +140,7 @@ ossl_sslctx_initialize(int argc, VALUE *argv, VALUE self) if (!method) { ossl_raise(rb_eArgError, "unknown SSL method `%s'.", s); } + Data_Get_Struct(self, SSL_CTX, ctx); if (SSL_CTX_set_ssl_version(ctx, method) != 1) { ossl_raise(eSSLError, "SSL_CTX_set_ssl_version:"); } @@ -325,12 +324,6 @@ ossl_sslctx_set_ciphers(VALUE self, VALUE v) int i; rb_check_frozen(self); - Data_Get_Struct(self, SSL_CTX, ctx); - if(!ctx){ - ossl_raise(eSSLError, "SSL_CTX is not initialized."); - return Qnil; - } - if (TYPE(v) == T_ARRAY) { str = rb_str_new2(NULL); for (i = 0; i < RARRAY(v)->len; i++) { @@ -345,6 +338,11 @@ ossl_sslctx_set_ciphers(VALUE self, VALUE v) StringValue(str); } + Data_Get_Struct(self, SSL_CTX, ctx); + if(!ctx){ + ossl_raise(eSSLError, "SSL_CTX is not initialized."); + return Qnil; + } if (!SSL_CTX_set_cipher_list(ctx, RSTRING(str)->ptr)) { ossl_raise(eSSLError, "SSL_CTX_set_ciphers:"); } @@ -491,8 +489,6 @@ ossl_ssl_read(int argc, VALUE *argv, VALUE self) VALUE len, str; OpenFile *fptr; - Data_Get_Struct(self, SSL, ssl); - GetOpenFile(ossl_ssl_get_io(self), fptr); rb_scan_args(argc, argv, "11", &len, &str); ilen = NUM2INT(len); if(NIL_P(str)) str = rb_str_new(0, ilen); @@ -503,6 +499,8 @@ ossl_ssl_read(int argc, VALUE *argv, VALUE self) } if(ilen == 0) return str; + Data_Get_Struct(self, SSL, ssl); + GetOpenFile(ossl_ssl_get_io(self), fptr); if (ssl) { if(SSL_pending(ssl) <= 0) rb_thread_wait_fd(fileno(fptr->f)); @@ -546,8 +544,8 @@ ossl_ssl_write(VALUE self, VALUE str) int nwrite = 0; FILE *fp; - Data_Get_Struct(self, SSL, ssl); StringValue(str); + Data_Get_Struct(self, SSL, ssl); if (ssl) { for (;;){ -- cgit v1.2.3