UDP's datagram semantics means that the application either writes an entire 
datagram (if kernel socket buffer has enough space) or it needs to retry. I am 
guessing that comes to play here.


- Pradosh



On Thursday, August 21, 2014 3:31 PM, Iñaki Baz Castillo <[email protected]> wrote:
OpenSSL 1.1.0-dev (git master version at 2014-08-22) compiled in OSX 10.9.4.

I've a SSL in DTLSv1 server mode. Previously in its SSL_CTX I set the
SSL_MODE_ENABLE_PARTIAL_WRITE option to enable SSL_write() to return
less than the given data length. I've also tried to set it at SSL
level with SSL_set_mode(). Read/write BIOs are created with
BIO_new(BIO_s_mem().

I call SSL_write() by passing a very long data (65536) and it still
returns -1. So, in case I want to write a big data over a DTLS UDP
connection I do not know how I should split the application data. I
expected that SSL_MODE_ENABLE_PARTIAL_WRITE would work in a way that
SSL_write() returns a value suitable for a UDP datagram so I send it
and then call SSL_write() again by passing the following chuck in my
data buffer.

It seems a bug or limitation, am I right?

-- 
Iñaki Baz Castillo
<[email protected]>
______________________________________________________________________
OpenSSL Project                                http://www.openssl.org
Development Mailing List                      [email protected]
Automated List Manager                          [email protected]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to