SendV4Response() sets LResponse[0] (the reply version number) to 4, but the SOCKS4 spec says it should be set to 0 instead.
HandleConnectV4() calls SendV4Response(AContext, 90) if successful, but that is premature as that same response is sent later on by CommandConnect() if TIdTCPClient.Connect() is successful. HandleConnectV4() is meant to only parse the request fields, it does not make the actual connection to the next server.
SendV4Response()
setsLResponse[0]
(the reply version number) to 4, but the SOCKS4 spec says it should be set to 0 instead.HandleConnectV4()
callsSendV4Response(AContext, 90)
if successful, but that is premature as that same response is sent later on byCommandConnect()
ifTIdTCPClient.Connect()
is successful.HandleConnectV4()
is meant to only parse the request fields, it does not make the actual connection to the next server.