Loading src/trunnel/socks5.c +6 −6 Original line number Diff line number Diff line Loading @@ -345,7 +345,7 @@ socks4_client_request_get_command(const socks4_client_request_t *inp) int socks4_client_request_set_command(socks4_client_request_t *inp, uint8_t val) { if (! ((val == CMD_BIND || val == CMD_CONNECT || val == CMD_RESOLVE_PTR))) { if (! ((val == CMD_BIND || val == CMD_CONNECT || val == CMD_RESOLVE || val == CMD_RESOLVE_PTR))) { TRUNNEL_SET_ERROR_CODE(inp); return -1; } Loading Loading @@ -413,7 +413,7 @@ socks4_client_request_check(const socks4_client_request_t *obj) return "A set function failed on this object"; if (! (obj->version == 4)) return "Integer out of bounds"; if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE_PTR)) if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE || obj->command == CMD_RESOLVE_PTR)) return "Integer out of bounds"; if (NULL == obj->username) return "Missing username"; Loading Loading @@ -696,7 +696,7 @@ socks4_client_request_encoded_len(const socks4_client_request_t *obj) /* Length of u8 version IN [4] */ result += 1; /* Length of u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Length of u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ result += 1; /* Length of u16 port */ Loading Loading @@ -1006,7 +1006,7 @@ socks4_client_request_encode(uint8_t *output, const size_t avail, const socks4_c trunnel_set_uint8(ptr, (obj->version)); written += 1; ptr += 1; /* Encode u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Encode u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ trunnel_assert(written <= avail); if (avail - written < 1) goto truncated; Loading Loading @@ -1354,11 +1354,11 @@ socks4_client_request_parse_into(socks4_client_request_t *obj, const uint8_t *in if (! (obj->version == 4)) goto fail; /* Parse u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Parse u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ CHECK_REMAINING(1, truncated); obj->command = (trunnel_get_uint8(ptr)); remaining -= 1; ptr += 1; if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE_PTR)) if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE || obj->command == CMD_RESOLVE_PTR)) goto fail; /* Parse u16 port */ Loading src/trunnel/socks5.h +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ #define CMD_CONNECT 1 #define CMD_BIND 2 #define CMD_UDP_ASSOCIATE 3 #define CMD_RESOLVE 240 #define CMD_RESOLVE_PTR 241 #define ATYPE_IPV4 1 #define ATYPE_IPV6 4 Loading src/trunnel/socks5.trunnel +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ const CMD_CONNECT = 1; const CMD_BIND = 2; const CMD_UDP_ASSOCIATE = 3; // This is a tor extension const CMD_RESOLVE = 0xF0; const CMD_RESOLVE_PTR = 0xF1; const ATYPE_IPV4 = 1; Loading Loading @@ -72,7 +73,7 @@ struct socks5_server_userpath_auth { struct socks4_client_request { u8 version IN [4]; u8 command IN [CMD_CONNECT,CMD_BIND,CMD_RESOLVE_PTR]; u8 command IN [CMD_CONNECT,CMD_BIND,CMD_RESOLVE,CMD_RESOLVE_PTR]; u16 port; u32 addr; nulterm username; Loading Loading
src/trunnel/socks5.c +6 −6 Original line number Diff line number Diff line Loading @@ -345,7 +345,7 @@ socks4_client_request_get_command(const socks4_client_request_t *inp) int socks4_client_request_set_command(socks4_client_request_t *inp, uint8_t val) { if (! ((val == CMD_BIND || val == CMD_CONNECT || val == CMD_RESOLVE_PTR))) { if (! ((val == CMD_BIND || val == CMD_CONNECT || val == CMD_RESOLVE || val == CMD_RESOLVE_PTR))) { TRUNNEL_SET_ERROR_CODE(inp); return -1; } Loading Loading @@ -413,7 +413,7 @@ socks4_client_request_check(const socks4_client_request_t *obj) return "A set function failed on this object"; if (! (obj->version == 4)) return "Integer out of bounds"; if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE_PTR)) if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE || obj->command == CMD_RESOLVE_PTR)) return "Integer out of bounds"; if (NULL == obj->username) return "Missing username"; Loading Loading @@ -696,7 +696,7 @@ socks4_client_request_encoded_len(const socks4_client_request_t *obj) /* Length of u8 version IN [4] */ result += 1; /* Length of u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Length of u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ result += 1; /* Length of u16 port */ Loading Loading @@ -1006,7 +1006,7 @@ socks4_client_request_encode(uint8_t *output, const size_t avail, const socks4_c trunnel_set_uint8(ptr, (obj->version)); written += 1; ptr += 1; /* Encode u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Encode u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ trunnel_assert(written <= avail); if (avail - written < 1) goto truncated; Loading Loading @@ -1354,11 +1354,11 @@ socks4_client_request_parse_into(socks4_client_request_t *obj, const uint8_t *in if (! (obj->version == 4)) goto fail; /* Parse u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE_PTR] */ /* Parse u8 command IN [CMD_BIND, CMD_CONNECT, CMD_RESOLVE, CMD_RESOLVE_PTR] */ CHECK_REMAINING(1, truncated); obj->command = (trunnel_get_uint8(ptr)); remaining -= 1; ptr += 1; if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE_PTR)) if (! (obj->command == CMD_BIND || obj->command == CMD_CONNECT || obj->command == CMD_RESOLVE || obj->command == CMD_RESOLVE_PTR)) goto fail; /* Parse u16 port */ Loading
src/trunnel/socks5.h +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ #define CMD_CONNECT 1 #define CMD_BIND 2 #define CMD_UDP_ASSOCIATE 3 #define CMD_RESOLVE 240 #define CMD_RESOLVE_PTR 241 #define ATYPE_IPV4 1 #define ATYPE_IPV6 4 Loading
src/trunnel/socks5.trunnel +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ const CMD_CONNECT = 1; const CMD_BIND = 2; const CMD_UDP_ASSOCIATE = 3; // This is a tor extension const CMD_RESOLVE = 0xF0; const CMD_RESOLVE_PTR = 0xF1; const ATYPE_IPV4 = 1; Loading Loading @@ -72,7 +73,7 @@ struct socks5_server_userpath_auth { struct socks4_client_request { u8 version IN [4]; u8 command IN [CMD_CONNECT,CMD_BIND,CMD_RESOLVE_PTR]; u8 command IN [CMD_CONNECT,CMD_BIND,CMD_RESOLVE,CMD_RESOLVE_PTR]; u16 port; u32 addr; nulterm username; Loading