Send back more SOCKS5 errors where appropriate.
As a follow up to #12971 (moved), our SOCKS5 code can now send back specific errors in response to requests fairly easily. A quick glance through the code suggests that the following cases (at a minimum) should be changed to do the right thing:
- Invalid/malformed address (
SOCKS5_ADDRESS_TYPE_NOT_SUPPORTED
,SOCKS5_GENERAL_ERROR
,SOCKS5_NOT_ALLOWED
depending on the case) - CONNECT command while SafeSocks is set to an IP address (
SOCKS5_NOT_ALLOWED
)
One could argue that #11138 (moved) would magically fix these things as well, but since returning errors is a one line addition (and the unit tests) per case, there's no reason not to make the changes now.