* Decrease default average packet delay to 15 ms
* Add upgrade for config value
* Fix ip packet router too
* Fix clippy
* Remove message_sending_average_delay from template too
* add stats_reporting_config in config and env var
* fix serializazion issue
* remove duplicate stats reporting config
* cargo toml cleanup
* more cleanup
* draft of wasm sdk for stats reporting
* fix wasm sdk?
* again
* make stats sending possible from outside the sdk
* make sure stats_id from client and gateway reported ared different
* changed NymConfigTemplate trait to call 'template' by reference
* network requester lib
* introduced generic parameter to 'MixTrafficController' to allow non-remote gateways
* allowing for custom gateway sender
* types cleanup
* minor gateway cmds refactor + initial NR work
* wip
* running a NR inside gateway
note: this NR isnt tied to the gateway yet
* rebase fixes
* propagating same shutdown handle
* wip
* starting NR with appropriate local transceiver
* fixed premature shutdown
* wiring up PacketRouter
* both ends wired together
* actually working
so much cleanup to do now
* started removing dead code
* wip
* temp: hardcode gateway
* further cleanup
* fixed build of other binaries
* setup-network-requester subcmd
* overriding NR config in gateway init/run
* wip making it wasm-compatible [again]
* refactored 'GatewaySetup'
* clippy and friends
* removed debug code
* rust 1.72 lints
* ensuring local gateway is available + some comments
* correctly putting network requester data in the same underlying details struct
* improved gateway errors
* changed 'network_requester_config' deserialization
* missing clap annotation for 'enabled' flag in 'setup-network-requester' command
* saving config file after 'setup-network-requester'
* removed dead code
* review comments
* make embedded NR wait for gateway to come online (for at most 70min)
* fixed shutdown on successful gateway wait
* updated NR config override
* wip client core
* hashing shared key in persisted details
* native client using on-disk gateway details
* ibid for socks5
* ibid for NR
* nym sdk
* non-wasm fixes
* wasm
* missed cargo fmt
* fixed nym-connect build
* changed serialization of the key hash to be more human readable
* allowing some dead code
* fixed gateway details deserializtion
* removed needless borrow in wasm client
* removed deadcode
* exhaustive match on GatewaySetup after having loaded the keys
* Adding a client-core crate.
* Moved config into client_core
* Socks5 client now depends on client-core/config
* Native client now mostly using client-core internals
* Socks client now uses client-core internals.
* Adding the beginnings of a socks5 crate
* Removing unused import
* Adding built.rs
* Figured out test failure, stuck a note in detailing under what conditions it fails.
* Added lib
* wip on the way to compile
* First compile with much of the client in place
* Comment reflow to 80 lines
* Changed Socks5 client help message
* Latest changes to from develop applied to socks5 client
* Minor cleanup on unused code
* Adding snafu dependency
* Adding socks library
* Getting socks into the module structure
* Tokio conversion for socks code nearly completed.
* Starting traffic controllers again
* Bitcoin SP starting to breathe with Socks5 proxy. Responses not yet being sent.
* Adding in some hugely verbose print action so we can see things happening
* WIP refactor of socks code.
* Renamed structs to be more rubyish
* Refactored the run command a bit.
* handle_client doesn't need to be public
* Starting to split the handle method up into smaller, refactorable chunks
* Renamed a test
* Finished initial refactor
* Minor cleanup
* Made a few notes for my future self
* Being a bit more explicit in authtentication test
* Ensuring that user/password authentication attempts fail if that auth mode is off
* Documentation
* Refactord types into a types module
* Sending the request ID across and reading the response when it comes back.
* Added the request_id to the response header
* Adding exception handling to websocket send
* Semi-working...
* Removing non-functional examples.
* Minor output clarification
* Adding a Socks5 service provider
* Websocket connection is now being made.
* Added some simple and ungraceful websocket connection error handling
* Renamed socks5_proxy back to proxy
* ibid
* Nicer websocket start method
* Receiving messages via websocket
* Socks requests work in the simple case, SSL requests don't (yet).
* Minor cleanup, renaming variables and moving private functions around
* Comments on try_read_request
* Moved some code around
* Removed commented code and printlns
* Comments sp request
* Commented response data read
* Changing Request to Connection
* ibid
* Added a controller and split connection / request parsing
* Built out error handling on requests a bit
* Initial router action
* Request deserialization tests back in action
* Request constructors
* Constructor for controller
* Renamed message_router to controller
* Starting to build out the responses
* Returning proxied connection data
* Moving towards new Socks5 request crate
* Sending Socks5 multi-part requests through mixnet
* Removed the detritus of exploratory coding.
* Breaking the socks client read loop when empty bytes are read
* Documenting the message format for serialized socks requests
* Returning a response from the socks proxy
* Removing unused import
* Removing more detritus
* Restarting loop if no response is received
* The off-by-one change that fixed it all
* Removing unused response.rs module
* Removed unused import
* Comment cleanup
* More detritus
* Cleaning...
* Docs for socks5-requests
* Using the simple-socks5-requests crate Response in the socks5 client
* Removing unused error types
* Split request/response into their own files and wrote more tests
* Removing temporary README notes
* Renamed all instances of request_id to connection_id
* Docs on Connection struct
* Caving in to connecting inside the constructor for the moment
* Fixing up comments on socks5 service provider start
* Simplified errors in the Socks5 requests crate
* Flattened service provider module hierarchy a bit.
* Removed println
* Comment to explain return on timeout
* Logging controller connect errors
* Renamed websocket reads and writes to make them a bit more understandable
* Renamed TodoError to ConnectionError
* Logging errors instead of panicking on connection read/write failures
* Fixed error handling in controller
* Removing dead comments
* Cargo fmt applied
* Removing print statements
* Removed more comments, prints, etc
Co-authored-by: jstuczyn <jedrzej.stuczynski@gmail.com>