BIO_set_accept_name (3)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
BIO_s_accept, BIO_set_accept_name, BIO_set_accept_port, BIO_get_accept_name, BIO_get_accept_port, BIO_new_accept, BIO_set_nbio_accept, BIO_set_accept_bios, BIO_set_bind_mode, BIO_get_bind_mode, BIO_do_accept - accept BIOSYNOPSIS
#include <openssl/bio.h> const BIO_METHOD *BIO_s_accept(void); long BIO_set_accept_name(BIO *b, char *name); char *BIO_get_accept_name(BIO *b); long BIO_set_accept_port(BIO *b, char *port); char *BIO_get_accept_port(BIO *b); BIO *BIO_new_accept(char *host_port); long BIO_set_nbio_accept(BIO *b, int n); long BIO_set_accept_bios(BIO *b, char *bio); long BIO_set_bind_mode(BIO *b, long mode); long BIO_get_bind_mode(BIO *b); int BIO_do_accept(BIO *b);
DESCRIPTION
BIO_s_accept() returns the acceptUsing accept BIOs,
Read and write operations on an accept
Accept BIOs support BIO_puts() but not BIO_gets().
If the close flag is set on an accept
Calling BIO_reset() on an accept
BIO_get_fd() and BIO_set_fd() can be called to retrieve or set the accept socket. See BIO_s_fd(3)
BIO_set_accept_name() uses the string name to set the accept name. The name is represented as a string of the form ``host:port'', where ``host'' is the interface to use and ``port'' is the port. The host can be ``*'' or empty which is interpreted as meaning any interface. If the host is an IPv6 address, it has to be enclosed in brackets, for example ``[::1]:https''. ``port'' has the same syntax as the port specified in BIO_set_conn_port() for connect BIOs, that is it can be a numerical port string or a string to lookup using getservbyname() and a string table.
BIO_set_accept_port() uses the string port to set the accept port. ``port'' has the same syntax as the port specified in BIO_set_conn_port() for connect BIOs, that is it can be a numerical port string or a string to lookup using getservbyname() and a string table.
BIO_new_accept() combines BIO_new() and BIO_set_accept_name() into a single call: that is it creates a new accept
BIO_set_nbio_accept() sets the accept socket to blocking mode (the default) if n is 0 or non blocking mode if n is 1.
BIO_set_accept_bios() can be used to set a chain of BIOs which will be duplicated and prepended to the chain when an incoming connection is received. This is useful if, for example, a buffering or
BIO_set_bind_mode() and BIO_get_bind_mode() set and retrieve the current bind mode. If
BIO_do_accept() serves two functions. When it is first called, after the accept
NOTES
When an acceptWhen a connection is established a new socket
If any additional BIOs have been set using BIO_set_accept_bios() then they are placed between the socket and the accept
If a server wishes to process multiple connections (as is normally the case) then the accept
connection = BIO_pop(accept);
After this call connection will contain a
If only a single connection will be processed it is possible to perform I/O using the accept
If the underlying accept socket is non-blocking and BIO_do_accept() is called to await an incoming connection it is possible for BIO_should_io_special() with the reason
BIO_set_accept_name(), BIO_get_accept_name(), BIO_set_accept_port(), BIO_get_accept_port(), BIO_set_nbio_accept(), BIO_set_accept_bios(), BIO_set_bind_mode(), BIO_get_bind_mode() and BIO_do_accept() are macros.
RETURN VALUES
BIO_do_accept(), BIO_set_accept_name(), BIO_set_accept_port(), BIO_set_nbio_accept(), BIO_set_accept_bios(), and BIO_set_bind_mode(), return 1 for success and 0 or -1 for failure.BIO_get_accept_name() returns the accept name or
BIO_get_accept_port() returns the port as a string or
BIO_get_bind_mode() returns the set of
BIO_new_accept() returns a
EXAMPLE
This example accepts two connections on port 4444, sends messages down each and finally closes both down.
BIO *abio, *cbio, *cbio2; /* First call to BIO_accept() sets up accept BIO */ abio = BIO_new_accept("4444"); if (BIO_do_accept(abio) <= 0) { fprintf(stderr, "Error setting up accept\n"); ERR_print_errors_fp(stderr); exit(1); } /* Wait for incoming connection */ if (BIO_do_accept(abio) <= 0) { fprintf(stderr, "Error accepting connection\n"); ERR_print_errors_fp(stderr); exit(1); } fprintf(stderr, "Connection 1 established\n"); /* Retrieve BIO for connection */ cbio = BIO_pop(abio); BIO_puts(cbio, "Connection 1: Sending out Data on initial connection\n"); fprintf(stderr, "Sent out data on connection 1\n"); /* Wait for another connection */ if (BIO_do_accept(abio) <= 0) { fprintf(stderr, "Error accepting connection\n"); ERR_print_errors_fp(stderr); exit(1); } fprintf(stderr, "Connection 2 established\n"); /* Close accept BIO to refuse further connections */ cbio2 = BIO_pop(abio); BIO_free(abio); BIO_puts(cbio2, "Connection 2: Sending out Data on second\n"); fprintf(stderr, "Sent out data on connection 2\n"); BIO_puts(cbio, "Connection 1: Second connection established\n"); /* Close the two established connections */ BIO_free(cbio); BIO_free(cbio2);
COPYRIGHT
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.Licensed under the OpenSSL license (the ``License''). You may not use this file except in compliance with the License. You can obtain a copy in the file