diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index ef327a935a8d5069f61f461fe5b2dfd7c7e32be4..96a24e480443e7a85fbc27b3a2f225187487e810 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -272,6 +272,7 @@ pub const SSL_CTRL_SET_TLSEXT_HOSTNAME: c_int = 55; pub const SSL_CTRL_EXTRA_CHAIN_CERT: c_int = 14; pub const SSL_CTRL_SET_READ_AHEAD: c_int = 41; +pub const SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER: c_long = 2; pub const SSL_MODE_AUTO_RETRY: c_long = 4; pub const SSL_ERROR_NONE: c_int = 0; diff --git a/openssl/src/ssl/mod.rs b/openssl/src/ssl/mod.rs index d0954bc72085ed34adc1b07d775a5294c14ae179..0252b11497efaf2f832202fbdd37fbc8ceb38cfc 100644 --- a/openssl/src/ssl/mod.rs +++ b/openssl/src/ssl/mod.rs @@ -567,7 +567,7 @@ impl SslContext { let ctx = SslContext { ctx: ctx }; // this is a bit dubious (?) - try!(ctx.set_mode(ffi::SSL_MODE_AUTO_RETRY)); + try!(ctx.set_mode(ffi::SSL_MODE_AUTO_RETRY | ffi::SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER)); if method.is_dtls() { ctx.set_read_ahead(1);