static SSL_SESSION *on_async_resumption_get(SSL *ssl, unsigned char *data, int len, int *copy) { h2o_socket_t *sock = SSL_get_rbio(ssl)->ptr; switch (sock->ssl->handshake.server.async_resumption.state) { case ASYNC_RESUMPTION_STATE_RECORD: sock->ssl->handshake.server.async_resumption.state = ASYNC_RESUMPTION_STATE_REQUEST_SENT; resumption_get_async(sock, h2o_iovec_init(data, len)); return NULL; case ASYNC_RESUMPTION_STATE_COMPLETE: *copy = 1; return sock->ssl->handshake.server.async_resumption.session_data; default: assert(!"FIXME"); return NULL; } }
static SSL_SESSION *on_async_resumption_get(SSL *ssl, #if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) const #endif unsigned char *data, int len, int *copy) { h2o_socket_t *sock = BIO_get_data(SSL_get_rbio(ssl)); switch (sock->ssl->handshake.server.async_resumption.state) { case ASYNC_RESUMPTION_STATE_RECORD: sock->ssl->handshake.server.async_resumption.state = ASYNC_RESUMPTION_STATE_REQUEST_SENT; resumption_get_async(sock, h2o_iovec_init(data, len)); return NULL; case ASYNC_RESUMPTION_STATE_COMPLETE: *copy = 1; return sock->ssl->handshake.server.async_resumption.session_data; default: assert(!"FIXME"); return NULL; } }