goto end;
}
- /* Connect to the server and perform the TLS handshake */
- if ((ret = SSL_connect(ssl)) < 1) {
+ /* Do the handshake with the server */
+ if (SSL_connect(ssl) < 1) {
+ printf("Failed to connect to the server\n");
/*
* If the failure is due to a verification error we can get more
* information about it from SSL_get_verify_result().
*/
for (ai = res; ai != NULL; ai = BIO_ADDRINFO_next(ai)) {
/*
- * Create a TCP socket. We could equally use non-OpenSSL calls such
+ * Create a UDP socket. We could equally use non-OpenSSL calls such
* as "socket" here for this and the subsequent connect and close
* functions. But for portability reasons and also so that we get
* errors on the OpenSSL stack in the event of a failure we use
}
}
-
/* Free the address information resources we allocated earlier */
BIO_ADDRINFO_free(res);
BIO_closesocket(sock);
return NULL;
}
+
/*
* Associate the newly created BIO with the underlying socket. By
* passing BIO_CLOSE here the socket will be automatically closed when
goto end;
}
- /* Connect to the server and perform the TLS handshake */
- if ((ret = SSL_connect(ssl)) < 1) {
+ /* Do the handshake with the server */
+ if (SSL_connect(ssl) < 1) {
+ printf("Failed to connect to the server\n");
/*
* If the failure is due to a verification error we can get more
* information about it from SSL_get_verify_result().
if (sock == -1)
return NULL;
- /* Create a BIO to wrap the socket*/
+ /* Create a BIO to wrap the socket */
bio = BIO_new(BIO_s_socket());
if (bio == NULL) {
BIO_closesocket(sock);
If a client application calls L<SSL_write_ex(3)> or L<SSL_write(3)> first then
(by default) the default stream will be a client-initiated bi-directional
-stream. If the client applications call L<SSL_read_ex(3)> or L<SSL_read(3)>
+stream. If a client application calls L<SSL_read_ex(3)> or L<SSL_read(3)>
first then the first stream initiated by the server will be used as the default
stream (whether it is bi-directional or uni-directional).
* QUIC terms this means that the peer has sent FIN on the stream to
* indicate that no further data will be sent.
*/
- switch (SSL_get_error(ssl, 0)) {
+ switch (SSL_get_error(stream1, 0)) {
case SSL_ERROR_ZERO_RETURN:
/* Normal completion of the stream */
break;
* Some stream fatal error occurred. This could be because of a stream
* reset - or some failure occurred on the underlying connection.
*/
- switch (SSL_get_stream_read_state(ssl)) {
+ switch (SSL_get_stream_read_state(stream1)) {
case SSL_STREAM_STATE_RESET_REMOTE:
printf("Stream reset occurred\n");
/* The stream has been reset but the connection is still healthy. */