Handle success and failure
03The proxy checks the supplied username and password and returns a two-octet result. Authentication success allows the next protocol stage, not automatic destination access.
Separate outcome: proxy sends VER 01, STATUS 01. Any nonzero STATUS means failure, and the server MUST close before a relay request.
Source for this drawing: RFC 1929 · Read RFC section 2 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
STATUS 00 succeeds; every nonzero STATUS fails and the server MUST close.
- The client sends the RFC 1929 request after method selection. The server verifies the supplied UNAME and PASSWD, then returns VER(1 octet) and STATUS(1 octet), using the method’s version 01 (§2). How credentials are checked or stored is not specified here.
- STATUS 00 indicates success (§2). The client can then send SOCKS request details under RFC 1928 §§4 and 6. Those later requests use SOCKS version 05 and have their own reply and policy decision.
- If STATUS is anything other than 00, the server MUST close the connection (§2). The example 01 is one nonzero failure value; RFC 1929 does not assign it a special wrong-password reason or define a detailed failure-code registry.
- The failure branch stops before a relay request. It does not keep the same connection open for another password attempt. This publication does not define a retry budget, password reset, rate limit or account-lockout policy.
- A successful authentication response is not a CONNECT reply and not proof the destination is reachable or authorized. Preserve the separate authentication and relay decisions instead of treating STATUS 00 as a completed tunnel.
The first three states show the successful branch. The fourth is a separate failed outcome for the same kind of request; it does not follow a success response.
Read the RFC section ↗