@@ -189,7 +189,7 @@ unsafe extern "C" fn destroy<S>(bio: *mut BIO) -> c_int {
189
189
}
190
190
191
191
cfg_if ! {
192
- if #[ cfg( any( ossl110, libressl273) ) ] {
192
+ if #[ cfg( any( ossl110, libressl273, boringssl ) ) ] {
193
193
use ffi:: { BIO_get_data , BIO_set_data , BIO_set_flags , BIO_set_init } ;
194
194
use crate :: cvt;
195
195
@@ -201,15 +201,34 @@ cfg_if! {
201
201
202
202
impl BIO_METHOD {
203
203
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
+
204
223
unsafe {
205
224
let ptr = cvt_p( ffi:: BIO_meth_new ( ffi:: BIO_TYPE_NONE , b"rust\0 " . as_ptr( ) as * const _) ) ?;
206
225
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 >) ) ) ?;
213
232
Ok ( method)
214
233
}
215
234
}
0 commit comments