@@ -189,7 +189,7 @@ unsafe extern "C" fn destroy<S>(bio: *mut BIO) -> c_int {
189189}
190190
191191cfg_if ! {
192- if #[ cfg( any( ossl110, libressl273) ) ] {
192+ if #[ cfg( any( ossl110, libressl273, boringssl ) ) ] {
193193 use ffi:: { BIO_get_data , BIO_set_data , BIO_set_flags , BIO_set_init } ;
194194 use crate :: cvt;
195195
@@ -201,15 +201,34 @@ cfg_if! {
201201
202202 impl BIO_METHOD {
203203 fn new<S : Read + Write >( ) -> Result <BIO_METHOD , ErrorStack > {
204+ #[ cfg( not( boringssl) ) ]
205+ use ffi:: {
206+ BIO_meth_set_write__fixed_rust as BIO_meth_set_write ,
207+ BIO_meth_set_read__fixed_rust as BIO_meth_set_read ,
208+ BIO_meth_set_puts__fixed_rust as BIO_meth_set_puts ,
209+ BIO_meth_set_ctrl__fixed_rust as BIO_meth_set_ctrl ,
210+ BIO_meth_set_create__fixed_rust as BIO_meth_set_create ,
211+ BIO_meth_set_destroy__fixed_rust as BIO_meth_set_destroy ,
212+ } ;
213+ #[ cfg( boringssl) ]
214+ use ffi:: {
215+ BIO_meth_set_write ,
216+ BIO_meth_set_read ,
217+ BIO_meth_set_puts ,
218+ BIO_meth_set_ctrl ,
219+ BIO_meth_set_create ,
220+ BIO_meth_set_destroy ,
221+ } ;
222+
204223 unsafe {
205224 let ptr = cvt_p( ffi:: BIO_meth_new ( ffi:: BIO_TYPE_NONE , b"rust\0 " . as_ptr( ) as * const _) ) ?;
206225 let method = BIO_METHOD ( ptr) ;
207- cvt( ffi :: BIO_meth_set_write__fixed_rust ( method. 0 , Some ( bwrite:: <S >) ) ) ?;
208- cvt( ffi :: BIO_meth_set_read__fixed_rust ( method. 0 , Some ( bread:: <S >) ) ) ?;
209- cvt( ffi :: BIO_meth_set_puts__fixed_rust ( method. 0 , Some ( bputs:: <S >) ) ) ?;
210- cvt( ffi :: BIO_meth_set_ctrl__fixed_rust ( method. 0 , Some ( ctrl:: <S >) ) ) ?;
211- cvt( ffi :: BIO_meth_set_create__fixed_rust ( method. 0 , Some ( create) ) ) ?;
212- cvt( ffi :: BIO_meth_set_destroy__fixed_rust ( method. 0 , Some ( destroy:: <S >) ) ) ?;
226+ cvt( BIO_meth_set_write ( method. 0 , Some ( bwrite:: <S >) ) ) ?;
227+ cvt( BIO_meth_set_read ( method. 0 , Some ( bread:: <S >) ) ) ?;
228+ cvt( BIO_meth_set_puts ( method. 0 , Some ( bputs:: <S >) ) ) ?;
229+ cvt( BIO_meth_set_ctrl ( method. 0 , Some ( ctrl:: <S >) ) ) ?;
230+ cvt( BIO_meth_set_create ( method. 0 , Some ( create) ) ) ?;
231+ cvt( BIO_meth_set_destroy ( method. 0 , Some ( destroy:: <S >) ) ) ?;
213232 Ok ( method)
214233 }
215234 }
0 commit comments