1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

http2: avoid logging neg "failure" if h2 was not requested

This commit is contained in:
Daniel Stenberg 2014-12-09 00:09:24 +01:00
parent 65d141e6da
commit 680d5fd041
5 changed files with 25 additions and 15 deletions

View File

@ -288,6 +288,9 @@ struct ssl_connect_data {
current state of the connection. */ current state of the connection. */
bool use; bool use;
ssl_connection_state state; ssl_connection_state state;
#ifdef USE_NGHTTP2
bool asked_for_h2;
#endif
#ifdef USE_SSLEAY #ifdef USE_SSLEAY
/* these ones requires specific SSL-types */ /* these ones requires specific SSL-types */
SSL_CTX* ctx; SSL_CTX* ctx;

View File

@ -618,6 +618,7 @@ gtls_connect_step1(struct connectdata *conn,
gnutls_alpn_set_protocols(session, protocols, protocols_size, 0); gnutls_alpn_set_protocols(session, protocols, protocols_size, 0);
infof(data, "ALPN, offering %s, %s\n", NGHTTP2_PROTO_VERSION_ID, infof(data, "ALPN, offering %s, %s\n", NGHTTP2_PROTO_VERSION_ID,
ALPN_HTTP_1_1); ALPN_HTTP_1_1);
connssl->asked_for_h2 = TRUE;
} }
else { else {
infof(data, "SSL, can't negotiate HTTP/2.0 without ALPN\n"); infof(data, "SSL, can't negotiate HTTP/2.0 without ALPN\n");
@ -1047,7 +1048,7 @@ gtls_connect_step3(struct connectdata *conn,
conn->negnpn = NPN_HTTP1_1; conn->negnpn = NPN_HTTP1_1;
} }
} }
else { else if(connssl->asked_for_h2) {
infof(data, "ALPN, server did not agree to a protocol\n"); infof(data, "ALPN, server did not agree to a protocol\n");
} }
} }

View File

@ -665,18 +665,19 @@ static void HandshakeCallback(PRFileDesc *sock, void *arg)
if(SSL_GetNextProto(sock, &state, buf, &buflen, buflenmax) == SECSuccess) { if(SSL_GetNextProto(sock, &state, buf, &buflen, buflenmax) == SECSuccess) {
switch(state) { switch(state) {
case SSL_NEXT_PROTO_NO_SUPPORT: case SSL_NEXT_PROTO_NO_SUPPORT:
case SSL_NEXT_PROTO_NO_OVERLAP: case SSL_NEXT_PROTO_NO_OVERLAP:
if(connssl->asked_for_h2)
infof(conn->data, "TLS, neither ALPN nor NPN succeeded\n"); infof(conn->data, "TLS, neither ALPN nor NPN succeeded\n");
return; return;
#ifdef SSL_ENABLE_ALPN #ifdef SSL_ENABLE_ALPN
case SSL_NEXT_PROTO_SELECTED: case SSL_NEXT_PROTO_SELECTED:
infof(conn->data, "ALPN, server accepted to use %.*s\n", buflen, buf); infof(conn->data, "ALPN, server accepted to use %.*s\n", buflen, buf);
break; break;
#endif #endif
case SSL_NEXT_PROTO_NEGOTIATED: case SSL_NEXT_PROTO_NEGOTIATED:
infof(conn->data, "NPN, server accepted to use %.*s\n", buflen, buf); infof(conn->data, "NPN, server accepted to use %.*s\n", buflen, buf);
break; break;
} }
if(buflen == NGHTTP2_PROTO_VERSION_ID_LEN && if(buflen == NGHTTP2_PROTO_VERSION_ID_LEN &&
@ -1639,6 +1640,7 @@ static CURLcode nss_setup_connect(struct connectdata *conn, int sockindex)
if(SSL_SetNextProtoNego(connssl->handle, alpn_protos, alpn_protos_len) if(SSL_SetNextProtoNego(connssl->handle, alpn_protos, alpn_protos_len)
!= SECSuccess) != SECSuccess)
goto error; goto error;
connssl->asked_for_h2 = TRUE;
} }
else { else {
infof(data, "SSL, can't negotiate HTTP/2.0 with neither NPN nor ALPN\n"); infof(data, "SSL, can't negotiate HTTP/2.0 with neither NPN nor ALPN\n");

View File

@ -1742,6 +1742,7 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
infof(data, "ALPN, offering %s, %s\n", NGHTTP2_PROTO_VERSION_ID, infof(data, "ALPN, offering %s, %s\n", NGHTTP2_PROTO_VERSION_ID,
ALPN_HTTP_1_1); ALPN_HTTP_1_1);
connssl->asked_for_h2 = TRUE;
} }
#endif #endif
} }
@ -2028,14 +2029,16 @@ static CURLcode ossl_connect_step2(struct connectdata *conn, int sockindex)
if(len == NGHTTP2_PROTO_VERSION_ID_LEN && if(len == NGHTTP2_PROTO_VERSION_ID_LEN &&
memcmp(NGHTTP2_PROTO_VERSION_ID, neg_protocol, len) == 0) { memcmp(NGHTTP2_PROTO_VERSION_ID, neg_protocol, len) == 0) {
conn->negnpn = NPN_HTTP2; conn->negnpn = NPN_HTTP2;
} }
else if(len == ALPN_HTTP_1_1_LENGTH && memcmp(ALPN_HTTP_1_1, else if(len ==
neg_protocol, ALPN_HTTP_1_1_LENGTH) == 0) { ALPN_HTTP_1_1_LENGTH && memcmp(ALPN_HTTP_1_1,
neg_protocol,
ALPN_HTTP_1_1_LENGTH) == 0) {
conn->negnpn = NPN_HTTP1_1; conn->negnpn = NPN_HTTP1_1;
} }
} }
else else if(connssl->asked_for_h2)
infof(data, "ALPN, server did not agree to a protocol\n"); infof(data, "ALPN, server did not agree to a protocol\n");
} }
#endif #endif

View File

@ -358,6 +358,7 @@ polarssl_connect_step1(struct connectdata *conn,
ssl_set_alpn_protocols(&connssl->ssl, protocols); ssl_set_alpn_protocols(&connssl->ssl, protocols);
infof(data, "ALPN, offering %s, %s\n", protocols[0], infof(data, "ALPN, offering %s, %s\n", protocols[0],
protocols[1]); protocols[1]);
connssl->asked_for_h2 = TRUE;
} }
} }
#endif #endif
@ -466,7 +467,7 @@ polarssl_connect_step2(struct connectdata *conn,
conn->negnpn = NPN_HTTP1_1; conn->negnpn = NPN_HTTP1_1;
} }
} }
else { else if(connssl->asked_for_h2) {
infof(data, "ALPN, server did not agree to a protocol\n"); infof(data, "ALPN, server did not agree to a protocol\n");
} }
} }