提交 642a166c 编写于 作者: R Richard Levitte

Convert the last uses of sockaddr in apps/* to use BIO_ADDR instead

Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 70c22888
...@@ -1736,18 +1736,24 @@ int s_client_main(int argc, char **argv) ...@@ -1736,18 +1736,24 @@ int s_client_main(int argc, char **argv)
} }
#ifndef OPENSSL_NO_DTLS #ifndef OPENSSL_NO_DTLS
if (socket_type == SOCK_DGRAM) { if (socket_type == SOCK_DGRAM) {
struct sockaddr peer; union BIO_sock_info_u peer_info;
int peerlen = sizeof peer;
sbio = BIO_new_dgram(s, BIO_NOCLOSE); sbio = BIO_new_dgram(s, BIO_NOCLOSE);
if (getsockname(s, &peer, (void *)&peerlen) < 0) { if ((peer_info.addr = BIO_ADDR_new()) == NULL) {
BIO_printf(bio_err, "memory allocation failure\n");
BIO_closesocket(s);
}
if (!BIO_sock_info(s, BIO_SOCK_INFO_ADDRESS, &peer_info)) {
BIO_printf(bio_err, "getsockname:errno=%d\n", BIO_printf(bio_err, "getsockname:errno=%d\n",
get_last_socket_error()); get_last_socket_error());
BIO_ADDR_free(peer_info.addr);
BIO_closesocket(s); BIO_closesocket(s);
goto end; goto end;
} }
(void)BIO_ctrl_set_connected(sbio, &peer); (void)BIO_ctrl_set_connected(sbio, peer_info.addr);
BIO_ADDR_free(peer_info.addr);
peer_info.addr = NULL;
if (enable_timeouts) { if (enable_timeouts) {
timeout.tv_sec = 0; timeout.tv_sec = 0;
...@@ -2608,11 +2614,15 @@ static void print_stuff(BIO *bio, SSL *s, int full) ...@@ -2608,11 +2614,15 @@ static void print_stuff(BIO *bio, SSL *s, int full)
{ {
/* Print out local port of connection: useful for debugging */ /* Print out local port of connection: useful for debugging */
int sock; int sock;
struct sockaddr_in ladd; union BIO_sock_info_u info;
socklen_t ladd_size = sizeof(ladd);
sock = SSL_get_fd(s); sock = SSL_get_fd(s);
getsockname(sock, (struct sockaddr *)&ladd, &ladd_size); if ((info.addr = BIO_ADDR_new()) != NULL
BIO_printf(bio_c_out, "LOCAL PORT is %u\n", ntohs(ladd.sin_port)); && BIO_sock_info(sock, BIO_SOCK_INFO_ADDRESS, &info)) {
BIO_printf(bio_c_out, "LOCAL PORT is %u\n",
ntohs(BIO_ADDR_rawport(info.adr)));
}
BIO_ADDR_free(info.addr);
} }
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册