diff options
Diffstat (limited to 'src/tool/transport_common.cc')
-rw-r--r-- | src/tool/transport_common.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/tool/transport_common.cc b/src/tool/transport_common.cc index 3f5e631..2c15c00 100644 --- a/src/tool/transport_common.cc +++ b/src/tool/transport_common.cc @@ -133,19 +133,19 @@ out: } bool Accept(int *out_sock, const std::string &port) { - struct sockaddr_in addr, cli_addr; + struct sockaddr_in6 addr, cli_addr; socklen_t cli_addr_len = sizeof(cli_addr); memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = INADDR_ANY; - addr.sin_port = htons(atoi(port.c_str())); + addr.sin6_family = AF_INET6; + addr.sin6_addr = in6addr_any; + addr.sin6_port = htons(atoi(port.c_str())); bool ok = false; int server_sock = -1; server_sock = - socket(addr.sin_family, SOCK_STREAM, 0); + socket(addr.sin6_family, SOCK_STREAM, 0); if (server_sock < 0) { perror("socket"); goto out; @@ -169,7 +169,14 @@ void PrintConnectionInfo(const SSL *ssl) { const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl); fprintf(stderr, " Version: %s\n", SSL_get_version(ssl)); + fprintf(stderr, " Resumed session: %s\n", + SSL_session_reused(ssl) ? "yes" : "no"); fprintf(stderr, " Cipher: %s\n", SSL_CIPHER_get_name(cipher)); + if (SSL_CIPHER_is_ECDHE(cipher)) { + fprintf(stderr, " ECDHE curve: %s\n", + SSL_get_curve_name( + SSL_SESSION_get_key_exchange_info(SSL_get_session(ssl)))); + } fprintf(stderr, " Secure renegotiation: %s\n", SSL_get_secure_renegotiation_support(ssl) ? "yes" : "no"); |