04f6b0fd91
BIO_new, etc., don't need a non-const BIO_METHOD. This allows all the built-in method tables to live in .rodata. Reviewed-by: Richard Levitte <levitte@openssl.org>
63 lines
1.5 KiB
Text
63 lines
1.5 KiB
Text
=pod
|
|
|
|
=head1 NAME
|
|
|
|
BIO_s_socket, BIO_new_socket - socket BIO
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
#include <openssl/bio.h>
|
|
|
|
const BIO_METHOD *BIO_s_socket(void);
|
|
|
|
long BIO_set_fd(BIO *b, int fd, long close_flag);
|
|
long BIO_get_fd(BIO *b, int *c);
|
|
|
|
BIO *BIO_new_socket(int sock, int close_flag);
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
BIO_s_socket() returns the socket BIO method. This is a wrapper
|
|
round the platform's socket routines.
|
|
|
|
BIO_read() and BIO_write() read or write the underlying socket.
|
|
BIO_puts() is supported but BIO_gets() is not.
|
|
|
|
If the close flag is set then the socket is shut down and closed
|
|
when the BIO is freed.
|
|
|
|
BIO_set_fd() sets the socket of BIO B<b> to B<fd> and the close
|
|
flag to B<close_flag>.
|
|
|
|
BIO_get_fd() places the socket in B<c> if it is not NULL, it also
|
|
returns the socket. If B<c> is not NULL it should be of type (int *).
|
|
|
|
BIO_new_socket() returns a socket BIO using B<sock> and B<close_flag>.
|
|
|
|
=head1 NOTES
|
|
|
|
Socket BIOs also support any relevant functionality of file descriptor
|
|
BIOs.
|
|
|
|
The reason for having separate file descriptor and socket BIOs is that on some
|
|
platforms sockets are not file descriptors and use distinct I/O routines,
|
|
Windows is one such platform. Any code mixing the two will not work on
|
|
all platforms.
|
|
|
|
BIO_set_fd() and BIO_get_fd() are macros.
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
BIO_s_socket() returns the socket BIO method.
|
|
|
|
BIO_set_fd() always returns 1.
|
|
|
|
BIO_get_fd() returns the socket or -1 if the BIO has not been
|
|
initialized.
|
|
|
|
BIO_new_socket() returns the newly allocated BIO or NULL is an error
|
|
occurred.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
TBA
|