La biblioteca de OpenSSL le ofrece la máxima flexibilidad en términos de manejo de problemas relacionados con el socket. Los bloques SSL_connect
en su caso, ya que debe utilizarlo con un socket de bloqueo. Úselo con un zócalo no bloqueante, en cuyo caso volverá con un -1. Si llama a la función SSL_get_error
que le dará el error SSL_ERROR_WANT_READ
o SSL_ERROR_WANT_WRITE
dependiendo de cuándo el tcp recv o send no puede completar la operación, respectivamente.
Cuando se obtiene SSL_ERROR_WANT_WRITE
/SSL_ERROR_WANT_READ
, debe llamar a la función de selección pasando el conector al fd_set
apropiado y un tiempo de espera excedido. Si el tiempo de espera de selección finaliza, puede considerar que se agotó el tiempo de espera de su SSL_connect
.
Nota: El SSL_SESSION_set_timeout
se utiliza para establecer los valores de tiempo de espera de sesión que están vinculados a la reanudación de SSL. No tienen nada que ver con el tiempo de espera de una conexión.
Los enlaces siguientes le ayudarán (especialmente el segundo enlace, Sección 6, que habla de multiplexado I/O):
:(recurso vinculado trasladó –
Aquí hay algunos otros enlaces a esos archivos PDF: [part1] (http://vanets.vuse.vanderbilt.edu/dokuwiki/lib/exe/fetch.php?media=resource:part1.pdf), y [part2] (http: //vanets.vuse.vanderbilt.edu/dokuwiki/lib/exe/fetch.php?media=resource:part2.pdf). Ho pe esto ayuda! – Castaglia