Skip to content

Conversation

@kVxQeXZbQAufBnQqA
Copy link

I am not sure if this project is still being maintained but this is still worth a try. Quick disclaimer: I have never implemented a SOCKS5 client before nor have I done extensive work in crystal.

A summary of the changes are as follows:

  • Update README to have working links and general cleaning
  • Rename module in shard.yml
  • Add the compiled sox binary to .gitignore (along with vim swap files)
  • Some refactoring since I was confused when first reading the documentation as "proxy_host" is the host the Sox::TCP:Socket connects to directly but is the actual SOCKS5 proxy server used by Sox::Client... This may still need some work to be absolutely clear what is meant where
  • Updated the overriden socket method in Sox::Client to match the current version implemented in HTTP::Client

There are still many things I have not tested (extensively) and other things I am not sure are implemented in a very "crystal way". Anyway, for the time being, this pull request should allow at least the Sox::TCP::Socket and Sox::Client classes to work.

Moving forward, crystal version should probably be updated to 0.36.1 and test done to ensure te client's IP is not leaked, particularly when TLS is turned on while using the Sox::Client (another disclaimer: I am not a cybersecurity expert by any stretch of the imagination)

Until this pull request is merged into this project I will try my best to maintain my fork as an alternative.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant