{
const struct ssl_settings *ssl_set;
const struct ssl_iostream_settings *set = NULL;
+ const char *const names[] = {
+ "http/1.1",
+ NULL
+ };
if (client->ssl_ctx != NULL)
return 0;
if (client->ssl_set != NULL) {
- return ssl_iostream_client_context_cache_get(client->ssl_set,
- &client->ssl_ctx, error_r);
+ if (ssl_iostream_client_context_cache_get(client->ssl_set,
+ &client->ssl_ctx,
+ error_r) < 0)
+ return -1;
+ ssl_iostream_context_set_application_protocols(client->ssl_ctx, names);
+ return 0;
}
/* no ssl settings given via http_client_settings -
look them up automatically */
int ret = ssl_iostream_client_context_cache_get(set, &client->ssl_ctx,
error_r);
+ if (ret == 0) {
+ ssl_iostream_context_set_application_protocols(client->ssl_ctx,
+ names);
+ }
+
settings_free(set);
settings_free(ssl_set);
return ret;
e_debug(conn->event, "Starting SSL handshake");
http_server_connection_input_halt(conn);
+ const char *const names[] = {
+ "http/1.1",
+ NULL
+ };
if (server->ssl_set == NULL) {
const struct ssl_iostream_server_autocreate_parameters parameters = {
.event_parent = server->event,
+ .application_protocols = names,
};
ret = io_stream_autocreate_ssl_server(¶meters,
&conn->conn.input,
&ssl_ctx, &error) < 0)
ret = -1;
else {
+ ssl_iostream_context_set_application_protocols(ssl_ctx, names);
ret = io_stream_create_ssl_server(ssl_ctx,
server->event,
&conn->conn.input,