Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
4.8.0, 5.0.0
-
None
Description
When socks5 proxy is used, we follow the procedure for TCP clients as given in RFC1928.
The authentication is performed according to RFC1929.
The server has a chance to deny the connection at this point, which would work correctly in Qt (re-emits the proxyAuthenticationRequired signal from the socket)
However the dante socks implementation accepts all connections, and decides to accept/reject based on rules.
- I assume this is so it can have different rules for authenticated vs non-authenticated clients.
What we receive in the socks socket engine is an "X'02' connection not allowed by ruleset" response when attempting to set up the TCP connection.
This would also be returned if we gave the correct username/password, but the connection is not whitelisted
And also it is returned if we connect to a hostname, but the proxy could not look up the name.
The socket engine assumes the final case ocurred, which results in HostNotFoundError being returned as the socket error.
QNetworkAccessManager caches the incorrect credentials in this case, and will not prompt again.
When using SOCKS proxy, it should cache credentials after a successful connection was established through the proxy.
Attachments
Issue Links
- relates to
-
QTBUG-51545 tst_QNetworkReply::authenticationCacheAfterCancel fails in RHEL 7.1
-
- Closed
-
Gerrit Reviews
For Gerrit Dashboard: QTBUG-23136 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
68752,1 | QNetworkReply auto test: adapt to new Socks5 server | stable | qt/qtbase | Status: ABANDONED | +2 | 0 |