@@ -1732,6 +1732,22 @@ no_exception_p(VALUE opts)
17321732#endif
17331733
17341734
1735+ int ossl_ssl_connect_impl (SSL * ssl )
1736+ {
1737+ return SSL_connect (ssl );
1738+ }
1739+
1740+ int ossl_ssl_read_impl (SSL * ssl , VALUE str , int ilen )
1741+ {
1742+ return SSL_read (ssl , RSTRING_PTR (str ), ilen );
1743+ }
1744+
1745+ int ossl_ssl_write_impl (SSL * ssl , VALUE tmp , int num )
1746+ {
1747+ return SSL_write (ssl , RSTRING_PTR (tmp ), num );
1748+ }
1749+
1750+
17351751static void
17361752io_wait_writable (VALUE io )
17371753{
@@ -1848,7 +1864,7 @@ ossl_ssl_connect(VALUE self)
18481864{
18491865 ossl_ssl_setup (self );
18501866
1851- return ossl_start_ssl (self , SSL_connect , "SSL_connect" , Qfalse );
1867+ return ossl_start_ssl (self , ossl_ssl_connect_impl , "SSL_connect" , Qfalse );
18521868}
18531869
18541870/*
@@ -1881,7 +1897,7 @@ ossl_ssl_connect_nonblock(int argc, VALUE *argv, VALUE self)
18811897
18821898 ossl_ssl_setup (self );
18831899
1884- return ossl_start_ssl (self , SSL_connect , "SSL_connect" , opts );
1900+ return ossl_start_ssl (self , ossl_ssl_connect_impl , "SSL_connect" , opts );
18851901}
18861902
18871903/*
@@ -1966,7 +1982,7 @@ ossl_ssl_read_internal(int argc, VALUE *argv, VALUE self, int nonblock)
19661982
19671983 rb_str_locktmp (str );
19681984 for (;;) {
1969- int nread = SSL_read (ssl , RSTRING_PTR ( str ) , ilen );
1985+ int nread = ossl_ssl_read_impl (ssl , str , ilen );
19701986 switch (ssl_get_error (ssl , nread )) {
19711987 case SSL_ERROR_NONE :
19721988 rb_str_unlocktmp (str );
@@ -2072,7 +2088,7 @@ ossl_ssl_write_internal(VALUE self, VALUE str, VALUE opts)
20722088 return INT2FIX (0 );
20732089
20742090 for (;;) {
2075- int nwritten = SSL_write (ssl , RSTRING_PTR ( tmp ) , num );
2091+ int nwritten = ossl_ssl_write_impl (ssl , tmp , num );
20762092 switch (ssl_get_error (ssl , nwritten )) {
20772093 case SSL_ERROR_NONE :
20782094 return INT2NUM (nwritten );
0 commit comments