Blame doc/man3/BIO_connect.pod

Packit Service 084de1
=pod
Packit Service 084de1
Packit Service 084de1
=head1 NAME
Packit Service 084de1
Packit Service 084de1
BIO_socket, BIO_bind, BIO_connect, BIO_listen, BIO_accept_ex, BIO_closesocket - BIO
Packit Service 084de1
socket communication setup routines
Packit Service 084de1
Packit Service 084de1
=head1 SYNOPSIS
Packit Service 084de1
Packit Service 084de1
 #include <openssl/bio.h>
Packit Service 084de1
Packit Service 084de1
 int BIO_socket(int domain, int socktype, int protocol, int options);
Packit Service 084de1
 int BIO_bind(int sock, const BIO_ADDR *addr, int options);
Packit Service 084de1
 int BIO_connect(int sock, const BIO_ADDR *addr, int options);
Packit Service 084de1
 int BIO_listen(int sock, const BIO_ADDR *addr, int options);
Packit Service 084de1
 int BIO_accept_ex(int accept_sock, BIO_ADDR *peer, int options);
Packit Service 084de1
 int BIO_closesocket(int sock);
Packit Service 084de1
Packit Service 084de1
=head1 DESCRIPTION
Packit Service 084de1
Packit Service 084de1
BIO_socket() creates a socket in the domain B<domain>, of type
Packit Service 084de1
B<socktype> and B<protocol>.  Socket B<options> are currently unused,
Packit Service 084de1
but is present for future use.
Packit Service 084de1
Packit Service 084de1
BIO_bind() binds the source address and service to a socket and
Packit Service 084de1
may be useful before calling BIO_connect().  The options may include
Packit Service 084de1
B<BIO_SOCK_REUSEADDR>, which is described in L</FLAGS> below.
Packit Service 084de1
Packit Service 084de1
BIO_connect() connects B<sock> to the address and service given by
Packit Service 084de1
B<addr>.  Connection B<options> may be zero or any combination of
Packit Service 084de1
B<BIO_SOCK_KEEPALIVE>, B<BIO_SOCK_NONBLOCK> and B<BIO_SOCK_NODELAY>.
Packit Service 084de1
The flags are described in L</FLAGS> below.
Packit Service 084de1
Packit Service 084de1
BIO_listen() has B<sock> start listening on the address and service
Packit Service 084de1
given by B<addr>.  Connection B<options> may be zero or any
Packit Service 084de1
combination of B<BIO_SOCK_KEEPALIVE>, B<BIO_SOCK_NONBLOCK>,
Packit Service 084de1
B<BIO_SOCK_NODELAY>, B<BIO_SOCK_REUSEADDR> and B<BIO_SOCK_V6_ONLY>.
Packit Service 084de1
The flags are described in L</FLAGS> below.
Packit Service 084de1
Packit Service 084de1
BIO_accept_ex() waits for an incoming connections on the given
Packit Service 084de1
socket B<accept_sock>.  When it gets a connection, the address and
Packit Service 084de1
port of the peer gets stored in B<peer> if that one is non-NULL.
Packit Service 084de1
Accept B<options> may be zero or B<BIO_SOCK_NONBLOCK>, and is applied
Packit Service 084de1
on the accepted socket.  The flags are described in L</FLAGS> below.
Packit Service 084de1
Packit Service 084de1
BIO_closesocket() closes B<sock>.
Packit Service 084de1
Packit Service 084de1
=head1 FLAGS
Packit Service 084de1
Packit Service 084de1
=over 4
Packit Service 084de1
Packit Service 084de1
=item BIO_SOCK_KEEPALIVE
Packit Service 084de1
Packit Service 084de1
Enables regular sending of keep-alive messages.
Packit Service 084de1
Packit Service 084de1
=item BIO_SOCK_NONBLOCK
Packit Service 084de1
Packit Service 084de1
Sets the socket to non-blocking mode.
Packit Service 084de1
Packit Service 084de1
=item BIO_SOCK_NODELAY
Packit Service 084de1
Packit Service 084de1
Corresponds to B<TCP_NODELAY>, and disables the Nagle algorithm.  With
Packit Service 084de1
this set, any data will be sent as soon as possible instead of being
Packit Service 084de1
buffered until there's enough for the socket to send out in one go.
Packit Service 084de1
Packit Service 084de1
=item BIO_SOCK_REUSEADDR
Packit Service 084de1
Packit Service 084de1
Try to reuse the address and port combination for a recently closed
Packit Service 084de1
port.
Packit Service 084de1
Packit Service 084de1
=item BIO_SOCK_V6_ONLY
Packit Service 084de1
Packit Service 084de1
When creating an IPv6 socket, make it only listen for IPv6 addresses
Packit Service 084de1
and not IPv4 addresses mapped to IPv6.
Packit Service 084de1
Packit Service 084de1
=back
Packit Service 084de1
Packit Service 084de1
These flags are bit flags, so they are to be combined with the
Packit Service 084de1
C<|> operator, for example:
Packit Service 084de1
Packit Service 084de1
 BIO_connect(sock, addr, BIO_SOCK_KEEPALIVE | BIO_SOCK_NONBLOCK);
Packit Service 084de1
Packit Service 084de1
=head1 RETURN VALUES
Packit Service 084de1
Packit Service 084de1
BIO_socket() returns the socket number on success or B<INVALID_SOCKET>
Packit Service 084de1
(-1) on error.  When an error has occurred, the OpenSSL error stack
Packit Service 084de1
will hold the error data and errno has the system error.
Packit Service 084de1
Packit Service 084de1
BIO_bind(), BIO_connect() and BIO_listen() return 1 on success or 0 on error.
Packit Service 084de1
When an error has occurred, the OpenSSL error stack will hold the error
Packit Service 084de1
data and errno has the system error.
Packit Service 084de1
Packit Service 084de1
BIO_accept_ex() returns the accepted socket on success or
Packit Service 084de1
B<INVALID_SOCKET> (-1) on error.  When an error has occurred, the
Packit Service 084de1
OpenSSL error stack will hold the error data and errno has the system
Packit Service 084de1
error.
Packit Service 084de1
Packit Service 084de1
=head1 SEE ALSO
Packit Service 084de1
Packit Service 084de1
L<BIO_ADDR(3)>
Packit Service 084de1
Packit Service 084de1
=head1 HISTORY
Packit Service 084de1
Packit Service 084de1
BIO_gethostname(), BIO_get_port(), BIO_get_host_ip(),
Packit Service 084de1
BIO_get_accept_socket() and BIO_accept() were deprecated in OpenSSL 1.1.0.
Packit Service 084de1
Use the functions described above instead.
Packit Service 084de1
Packit Service 084de1
=head1 COPYRIGHT
Packit Service 084de1
Packit Service 084de1
Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
Packit Service 084de1
Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
in the file LICENSE in the source distribution or at
Packit Service 084de1
L<https://www.openssl.org/source/license.html>.
Packit Service 084de1
Packit Service 084de1
=cut