Visual RFC.
ALL RFCs / RFC 1929
Read the RFC ↗
RFC 1929 / SOCKS username/password

Handle success and failure

03

The proxy checks the supplied username and password and returns a two-octet result. Authentication success allows the next protocol stage, not automatic destination access.

RFC 1929 · § 2EXAMPLE
4 / 4
Handle success and failureSeparate failure response 01 01 returns a nonzero status. The server closes at a blocked gate; no retry or relay request is delivered. Every nonzero status has this closure requirement.A login result is not a relay resultClientSOCKS proxyseparate failure: 01 01server closesAny STATUS ≠ 00 failsNo relay request continuesFailure: server MUST close · no special 01 reason code
04
Close on any nonzero result

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 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
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.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

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.
DETAILS

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 ↗

All chapters in RFC 1929

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗