
1: =pod 2: 3: =head1 NAME 4: 5: SSL_set_connect_state, SSL_get_accept_state - prepare SSL object to work in client or server mode 6: 7: =head1 SYNOPSIS 8: 9: #include <openssl/ssl.h> 10: 11: void SSL_set_connect_state(SSL *ssl); 12: 13: void SSL_set_accept_state(SSL *ssl); 14: 15: =head1 DESCRIPTION 16: 17: SSL_set_connect_state() sets B<ssl> to work in client mode. 18: 19: SSL_set_accept_state() sets B<ssl> to work in server mode. 20: 21: =head1 NOTES 22: 23: When the SSL_CTX object was created with L<SSL_CTX_new(3)|SSL_CTX_new(3)>, 24: it was either assigned a dedicated client method, a dedicated server 25: method, or a generic method, that can be used for both client and 26: server connections. (The method might have been changed with 27: L<SSL_CTX_set_ssl_version(3)|SSL_CTX_set_ssl_version(3)> or 28: SSL_set_ssl_method().) 29: 30: When beginning a new handshake, the SSL engine must know whether it must 31: call the connect (client) or accept (server) routines. Even though it may 32: be clear from the method chosen, whether client or server mode was 33: requested, the handshake routines must be explicitly set. 34: 35: When using the L<SSL_connect(3)|SSL_connect(3)> or 36: L<SSL_accept(3)|SSL_accept(3)> routines, the correct handshake 37: routines are automatically set. When performing a transparent negotiation 38: using L<SSL_write(3)|SSL_write(3)> or L<SSL_read(3)|SSL_read(3)>, the 39: handshake routines must be explicitly set in advance using either 40: SSL_set_connect_state() or SSL_set_accept_state(). 41: 42: =head1 RETURN VALUES 43: 44: SSL_set_connect_state() and SSL_set_accept_state() do not return diagnostic 45: information. 46: 47: =head1 SEE ALSO 48: 49: L<ssl(3)|ssl(3)>, L<SSL_new(3)|SSL_new(3)>, L<SSL_CTX_new(3)|SSL_CTX_new(3)>, 50: L<SSL_connect(3)|SSL_connect(3)>, L<SSL_accept(3)|SSL_accept(3)>, 51: L<SSL_write(3)|SSL_write(3)>, L<SSL_read(3)|SSL_read(3)>, 52: L<SSL_do_handshake(3)|SSL_do_handshake(3)>, 53: L<SSL_CTX_set_ssl_version(3)|SSL_CTX_set_ssl_version(3)> 54: 55: =cut