return rv;
}
} else {
- /* cnonce and nc both require qop */
- if (digest_request->cnonce || digest_request->nc[0] != '\0') {
- debugs(29, 2, "missing qop!");
- rv = authDigestLogUsername(username, digest_request, aRequestRealm);
- safe_free(username);
- return rv;
- }
+ /* RFC7616 section 3.3, qop:
+ * "MUST be used by all implementations"
+ *
+ * RFC7616 section 3.4, qop:
+ * "value MUST be one of the alternatives the server
+ * indicated it supports in the WWW-Authenticate header field"
+ *
+ * Squid sends qop=auth, reject buggy or outdated clients.
+ */
+ debugs(29, 2, "missing qop!");
+ rv = authDigestLogUsername(username, digest_request, aRequestRealm);
+ safe_free(username);
+ return rv;
}
/** below nonce state dependent **/