return ssl_io->host;
}
+static const char *
+openssl_iostream_get_compression(struct ssl_iostream *ssl_io)
+{
+#if defined(HAVE_SSL_COMPRESSION) && !defined(OPENSSL_NO_COMP)
+ const COMP_METHOD *comp;
+
+ comp = SSL_get_current_compression(ssl_io->ssl);
+ return comp == NULL ? NULL : SSL_COMP_get_name(comp);
+#else
+ return NULL;
+#endif
+}
+
static const char *
openssl_iostream_get_security_string(struct ssl_iostream *ssl_io)
{
openssl_iostream_cert_match_name,
openssl_iostream_get_peer_name,
openssl_iostream_get_server_name,
+ openssl_iostream_get_compression,
openssl_iostream_get_security_string,
openssl_iostream_get_last_error
};
int (*cert_match_name)(struct ssl_iostream *ssl_io, const char *name);
const char *(*get_peer_name)(struct ssl_iostream *ssl_io);
const char *(*get_server_name)(struct ssl_iostream *ssl_io);
+ const char *(*get_compression)(struct ssl_iostream *ssl_io);
const char *(*get_security_string)(struct ssl_iostream *ssl_io);
const char *(*get_last_error)(struct ssl_iostream *ssl_io);
};
return ssl_vfuncs->get_server_name(ssl_io);
}
+const char *ssl_iostream_get_compression(struct ssl_iostream *ssl_io)
+{
+ return ssl_vfuncs->get_compression(ssl_io);
+}
+
const char *ssl_iostream_get_security_string(struct ssl_iostream *ssl_io)
{
return ssl_vfuncs->get_security_string(ssl_io);
const char *host, const char **error_r);
int ssl_iostream_cert_match_name(struct ssl_iostream *ssl_io, const char *name);
const char *ssl_iostream_get_peer_name(struct ssl_iostream *ssl_io);
+const char *ssl_iostream_get_compression(struct ssl_iostream *ssl_io);
const char *ssl_iostream_get_server_name(struct ssl_iostream *ssl_io);
const char *ssl_iostream_get_security_string(struct ssl_iostream *ssl_io);
const char *ssl_iostream_get_last_error(struct ssl_iostream *ssl_io);