12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- =pod
- =head1 NAME
- SSL_set1_initial_peer_addr - set the initial peer address for a QUIC connection
- =head1 SYNOPSIS
- #include <openssl/ssl.h>
- int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *addr);
- =head1 DESCRIPTION
- SSL_set1_initial_peer_addr() sets the initial destination peer address to be used
- for the purposes of establishing a QUIC connection in client mode. This function
- can be used only on a QUIC connection SSL object, and can be used only before a
- connection attempt is first made. I<addr> must point to a B<BIO_ADDR>
- representing a UDP destination address of the server to connect to.
- Where a QUIC connection object is provided with a write BIO which supports the
- B<BIO_CTRL_DGRAM_GET_PEER> control (for example, B<BIO_s_dgram>), the initial
- destination peer address can be detected automatically; if
- B<BIO_CTRL_DGRAM_GET_PEER> returns a valid (non-B<AF_UNSPEC>) peer address and
- no valid peer address has yet been set, this will be set automatically as the
- initial peer address. This behaviour can be overridden by calling
- SSL_set1_initial_peer_addr() with a valid peer address explicitly.
- The destination address used by QUIC may change over time in response to
- connection events, such as connection migration (where supported).
- SSL_set1_initial_peer_addr() configures the destination address used for initial
- connection establishment, and does not confer any guarantee about the
- destination address being used for communication at any later time in the
- connection lifecycle.
- This function makes a copy of the address passed by the caller; the B<BIO_ADDR>
- structure pointed to by I<addr> may be freed by the caller after this function
- returns.
- =head1 RETURN VALUES
- Returns 1 on success and 0 on failure.
- =head1 SEE ALSO
- L<BIO_ADDR(3)>, L<ssl(7)>
- =head1 HISTORY
- The SSL_set1_initial_peer_addr() function was added in OpenSSL 3.2.
- =head1 COPYRIGHT
- Copyright 2022-2023 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
|