diff options
Diffstat (limited to 'proxy/socks.h')
-rw-r--r-- | proxy/socks.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/proxy/socks.h b/proxy/socks.h new file mode 100644 index 00000000..3e86ae23 --- /dev/null +++ b/proxy/socks.h @@ -0,0 +1,72 @@ +/* + * 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 |