| /* |
| * Copyright (c) 2018 Antmicro Ltd |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_SUBSYS_NET_LIB_SOCKS_SOCKS_INTERNAL_H_ |
| #define ZEPHYR_SUBSYS_NET_LIB_SOCKS_SOCKS_INTERNAL_H_ |
| |
| #define SOCKS5_PKT_MAGIC 0x05 |
| #define SOCKS5_PKT_RSV 0x00 |
| |
| #define SOCKS5_AUTH_METHOD_NOAUTH 0x00 |
| #define SOCKS5_AUTH_METHOD_GSSAPI 0x01 |
| #define SOCKS5_AUTH_METHOD_USERPASS 0x02 |
| #define SOCKS5_AUTH_METHOD_NONEG 0xFF |
| |
| #define SOCKS5_CMD_CONNECT 0x01 |
| #define SOCKS5_CMD_BIND 0x02 |
| #define SOCKS5_CMD_UDP_ASSOCIATE 0x03 |
| |
| #define SOCKS5_ATYP_IPV4 0x01 |
| #define SOCKS5_ATYP_DOMAINNAME 0x03 |
| #define SOCKS5_ATYP_IPV6 0x04 |
| |
| #define SOCKS5_CMD_RESP_SUCCESS 0x00 |
| #define SOCKS5_CMD_RESP_FAILURE 0x01 |
| #define SOCKS5_CMD_RESP_NOT_ALLOWED 0x02 |
| #define SOCKS5_CMD_RESP_NET_UNREACHABLE 0x03 |
| #define SOCKS5_CMD_RESP_HOST_UNREACHABLE 0x04 |
| #define SOCKS5_CMD_RESP_REFUSED 0x05 |
| #define SOCKS5_CMD_RESP_TTL_EXPIRED 0x06 |
| #define SOCKS5_CMD_RESP_CMD_NOT_SUPPORTED 0x07 |
| #define SOCKS5_CMD_RESP_ATYP_NOT_SUPPORTED 0x08 |
| |
| struct socks5_method_request_common { |
| uint8_t ver; |
| uint8_t nmethods; |
| } __packed; |
| |
| struct socks5_method_request { |
| struct socks5_method_request_common r; |
| uint8_t methods[255]; |
| } __packed; |
| |
| struct socks5_method_response { |
| uint8_t ver; |
| uint8_t method; |
| } __packed; |
| |
| struct socks5_ipv4_addr { |
| uint8_t addr[4]; |
| uint16_t port; |
| } __packed; |
| |
| struct socks5_ipv6_addr { |
| uint8_t addr[16]; |
| uint16_t port; |
| } __packed; |
| |
| struct socks5_command_request_common { |
| uint8_t ver; |
| uint8_t cmd; |
| uint8_t rsv; |
| uint8_t atyp; |
| } __packed; |
| |
| struct socks5_command_request { |
| struct socks5_command_request_common r; |
| union { |
| struct socks5_ipv4_addr ipv4_addr; |
| struct socks5_ipv6_addr ipv6_addr; |
| }; |
| } __packed; |
| |
| struct socks5_command_response_common { |
| uint8_t ver; |
| uint8_t rep; |
| uint8_t rsv; |
| uint8_t atyp; |
| } __packed; |
| |
| struct socks5_command_response { |
| struct socks5_command_response_common r; |
| union { |
| struct socks5_ipv4_addr ipv4_addr; |
| struct socks5_ipv6_addr ipv6_addr; |
| }; |
| } __packed; |
| |
| #endif /* ZEPHYR_SUBSYS_NET_LIB_SOCKS_SOCKS_INTERNAL_H_ */ |