mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-04 13:23:26 +01:00
70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
|
=pod
|
||
|
|
||
|
=head1 NAME
|
||
|
|
||
|
BIO_socket_wait,
|
||
|
BIO_wait,
|
||
|
BIO_do_connect_retry
|
||
|
- BIO connection utility functions
|
||
|
|
||
|
=head1 SYNOPSIS
|
||
|
|
||
|
#include <openssl/bio.h>
|
||
|
|
||
|
#ifndef OPENSSL_NO_SOCK
|
||
|
int BIO_socket_wait(int fd, int for_read, time_t max_time);
|
||
|
#endif
|
||
|
int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds);
|
||
|
int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds);
|
||
|
|
||
|
=head1 DESCRIPTION
|
||
|
|
||
|
BIO_socket_wait() waits on the socket B<fd> for reading if B<for_read> is not 0,
|
||
|
else for writing, at most until B<max_time>.
|
||
|
It succeeds immediately if B<max_time> == 0 (which means no timeout given).
|
||
|
|
||
|
BIO_wait() waits at most until B<max_time> on the given (typically socket-based)
|
||
|
B<bio>, for reading if B<bio> is supposed to read, else for writing.
|
||
|
It is used by BIO_do_connect_retry() and can be used together L<BIO_read(3)>.
|
||
|
It succeeds immediately if B<max_time> == 0 (which means no timeout given).
|
||
|
If sockets are not available it supports polling by succeeding after sleeping
|
||
|
at most the given B<nap_milliseconds> in order to avoid a tight busy loop.
|
||
|
Via B<nap_milliseconds> the caller determines the polling granularity.
|
||
|
|
||
|
BIO_do_connect_retry() connects via the given B<bio>.
|
||
|
It retries BIO_do_connect() as far as needed to reach a definite outcome,
|
||
|
i.e., connection succeeded, timeout has been reached, or an error occurred.
|
||
|
For nonblocking and potentially even non-socket BIOs it polls
|
||
|
every B<nap_milliseconds> and sleeps in between using BIO_wait().
|
||
|
If B<nap_milliseconds> is < 0 then a default value of 100 ms is used.
|
||
|
If the B<timeout> parameter is > 0 this indicates the maximum number of seconds
|
||
|
to wait until the connection is established or a definite error occurred.
|
||
|
A value of 0 enables waiting indefinitely (i.e, no timeout),
|
||
|
while a value < 0 means that BIO_do_connect() is tried only once.
|
||
|
The function may, directly or indirectly, invoke ERR_clear_error().
|
||
|
|
||
|
=head1 RETURN VALUES
|
||
|
|
||
|
BIO_socket_wait(), BIO_wait(), and BIO_do_connect_retry()
|
||
|
return -1 on error, 0 on timeout, and 1 on success.
|
||
|
|
||
|
=head1 SEE ALSO
|
||
|
|
||
|
L<BIO_do_connect(3)>, L<BIO_read(3)>
|
||
|
|
||
|
=head1 HISTORY
|
||
|
|
||
|
BIO_socket_wait(), BIO_wait(), and BIO_do_connect_retry()
|
||
|
were added in OpenSSL 3.0.
|
||
|
|
||
|
=head1 COPYRIGHT
|
||
|
|
||
|
Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||
|
|
||
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
||
|
this file except in compliance with the License. You can obtain a copy
|
||
|
in the file LICENSE in the source distribution or at
|
||
|
L<https://www.openssl.org/source/license.html>.
|
||
|
|
||
|
=cut
|