Address review feedback for the SCTP changes

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3286)
This commit is contained in:
Matt Caswell 2017-04-24 14:15:49 +01:00
parent ce466c96f0
commit 561f6f1ed2
3 changed files with 15 additions and 2 deletions

View File

@ -617,7 +617,7 @@ int BIO_lookup(const char *host, const char *service,
} }
/*- /*-
* BIO_lookup - look up the node and service you want to connect to. * BIO_lookup_ex - look up the node and service you want to connect to.
* @node: the node you want to connect to. * @node: the node you want to connect to.
* @service: the service you want to connect to. * @service: the service you want to connect to.
* @lookup_type: declare intent with the result, client or server. * @lookup_type: declare intent with the result, client or server.

View File

@ -52,7 +52,7 @@ IPPROTO_TCP, IPPROTO_UDP or IPPORTO_SCTP. If set to 0 than any protocol can be
used. B<res> points at a pointer to hold the start of a B<BIO_ADDRINFO> used. B<res> points at a pointer to hold the start of a B<BIO_ADDRINFO>
chain. chain.
For the family B<AF_UNIX>, BIO_lookup() will ignore the B<service> For the family B<AF_UNIX>, BIO_lookup_ex() will ignore the B<service>
parameter and expects the B<node> parameter to hold the path to the parameter and expects the B<node> parameter to hold the path to the
socket file. socket file.
@ -89,6 +89,14 @@ case.
All other functions described here return 0 or B<NULL> when the All other functions described here return 0 or B<NULL> when the
information they should return isn't available. information they should return isn't available.
=head1 NOTES
The BIO_lookup_ex() implementation uses the platform provided getaddrinfo()
function. On Linux it is known that specifying 0 for the protocol will not
return any SCTP based addresses when calling getaddrinfo(). Therefore if an SCTP
address is required then the B<protocol> parameter to BIO_lookup_ex() should be
explicitly set to IPPROTO_SCTP. The same may be true on other platforms.
=head1 HISTORY =head1 HISTORY
The BIO_lookup_ex() function was added in OpenSSL 1.1.1. The BIO_lookup_ex() function was added in OpenSSL 1.1.1.

View File

@ -1006,11 +1006,16 @@ static handshake_status_t handshake_status(peer_status_t last_status,
int client_spoke_last) int client_spoke_last)
{ {
switch (last_status) { switch (last_status) {
case PEER_WAITING:
/* Shouldn't ever happen */
return INTERNAL_ERROR;
case PEER_SUCCESS: case PEER_SUCCESS:
switch (previous_status) { switch (previous_status) {
case PEER_SUCCESS: case PEER_SUCCESS:
/* Both succeeded. */ /* Both succeeded. */
return HANDSHAKE_SUCCESS; return HANDSHAKE_SUCCESS;
case PEER_WAITING:
case PEER_RETRY: case PEER_RETRY:
/* Let the first peer finish. */ /* Let the first peer finish. */
return HANDSHAKE_RETRY; return HANDSHAKE_RETRY;