mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
1bf93289c9
This seemed like a worthwhile cleanup to do while I was working on this code anyway. Now all the magic numbers are defined in a header file by macro names indicating their meaning, and used by both the SOCKS client code in the proxy subdirectory and the SOCKS server code in portfwd.c.
73 lines
2.1 KiB
C
73 lines
2.1 KiB
C
/*
|
|
* Constants used in the SOCKS protocols.
|
|
*/
|
|
|
|
/* Command codes common to both versions */
|
|
#define SOCKS_CMD_CONNECT 1
|
|
#define SOCKS_CMD_BIND 2
|
|
|
|
/* SOCKS 4 definitions */
|
|
|
|
#define SOCKS4_REQUEST_VERSION 4
|
|
#define SOCKS4_REPLY_VERSION 0
|
|
|
|
#define SOCKS4_RESP_SUCCESS 90
|
|
#define SOCKS4_RESP_FAILURE 91
|
|
#define SOCKS4_RESP_WANT_IDENTD 92
|
|
#define SOCKS4_RESP_IDENTD_MISMATCH 93
|
|
|
|
/*
|
|
* Special nonsense IP address range, used as a signal to indicate
|
|
* that an ASCIZ hostname follows the user id field.
|
|
*
|
|
* Strictly speaking, the use of this extension indicates that we're
|
|
* speaking SOCKS 4A rather than vanilla SOCKS 4, although we don't
|
|
* bother to draw the distinction.
|
|
*/
|
|
#define SOCKS4A_NAME_FOLLOWS_BASE 0x00000001 /* inclusive */
|
|
#define SOCKS4A_NAME_FOLLOWS_LIMIT 0x00000100 /* exclusive */
|
|
|
|
/* SOCKS 5 definitions */
|
|
|
|
#define SOCKS5_REQUEST_VERSION 5
|
|
#define SOCKS5_REPLY_VERSION 5
|
|
|
|
/* Extra command codes extending the SOCKS_CMD_* list above */
|
|
#define SOCKS5_CMD_UDP_ASSOCIATE 3
|
|
|
|
#define SOCKS5_AUTH_NONE 0
|
|
#define SOCKS5_AUTH_GSSAPI 1
|
|
#define SOCKS5_AUTH_PASSWORD 2
|
|
#define SOCKS5_AUTH_CHAP 3
|
|
#define SOCKS5_AUTH_REJECTED 0xFF /* used in reply to indicate 'no
|
|
* acceptable method offered' */
|
|
|
|
#define SOCKS5_AUTH_PASSWORD_VERSION 1
|
|
|
|
#define SOCKS5_AUTH_CHAP_VERSION 1
|
|
|
|
#define SOCKS5_AUTH_CHAP_ATTR_STATUS 0x00
|
|
#define SOCKS5_AUTH_CHAP_ATTR_INFO 0x01
|
|
#define SOCKS5_AUTH_CHAP_ATTR_USERNAME 0x02
|
|
#define SOCKS5_AUTH_CHAP_ATTR_CHALLENGE 0x03
|
|
#define SOCKS5_AUTH_CHAP_ATTR_RESPONSE 0x04
|
|
#define SOCKS5_AUTH_CHAP_ATTR_CHARSET 0x05
|
|
#define SOCKS5_AUTH_CHAP_ATTR_IDENTIFIER 0x10
|
|
#define SOCKS5_AUTH_CHAP_ATTR_ALGLIST 0x11
|
|
|
|
#define SOCKS5_AUTH_CHAP_ALG_HMACMD5 0x85
|
|
|
|
#define SOCKS5_ADDR_IPV4 1
|
|
#define SOCKS5_ADDR_IPV6 4
|
|
#define SOCKS5_ADDR_HOSTNAME 3
|
|
|
|
#define SOCKS5_RESP_SUCCESS 0
|
|
#define SOCKS5_RESP_FAILURE 1
|
|
#define SOCKS5_RESP_CONNECTION_NOT_ALLOWED_BY_RULESET 2
|
|
#define SOCKS5_RESP_NETWORK_UNREACHABLE 3
|
|
#define SOCKS5_RESP_HOST_UNREACHABLE 4
|
|
#define SOCKS5_RESP_CONNECTION_REFUSED 5
|
|
#define SOCKS5_RESP_TTL_EXPIRED 6
|
|
#define SOCKS5_RESP_COMMAND_NOT_SUPPORTED 7
|
|
#define SOCKS5_RESP_ADDRTYPE_NOT_SUPPORTED 8
|