fix socks5 upstream user/pass subnegotiation check
RFC 1929 specifies that the user/pass auth subnegotation repurposes the version field for the version of that specification, which is 1, not 5. however there's quite a good deal of software out there which got it wrong and replies with version 5 to a successful authentication, so let's just accept both forms - other socks5 client programs like curl do the same. closes #172
This commit is contained in:
parent
0aad2f5b92
commit
c651664720
@ -1350,7 +1350,7 @@ connect_to_upstream_proxy(struct conn_s *connptr, struct request_s *request)
|
||||
|
||||
if(2 != safe_read(connptr->server_fd, in, 2))
|
||||
return -1;
|
||||
if(in[0] != 5 || in[1] != 0) {
|
||||
if(in[1] != 0 || !(in[0] == 5 || in[0] == 1)) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user