Commit graph

81 commits

Author SHA1 Message Date
Zachary Boyd 6040db22dc
merge 2019-11-23 22:41:28 -05:00
Zachary Boyd c1b7a124c4
Merge branch 'master' into upstream_master 2019-11-23 22:39:55 -05:00
Zachary Boyd 5617f2bfdb
Switches the granax package to the new package location 2019-11-21 23:13:31 -05:00
Zachary Boyd fbdbf525df
Added a entrypoint file so the node.js process is not the root process, so it responds to SIGINT calls (Ctrl+C). 2019-11-21 22:25:01 -05:00
Roman Brunner f89e4b20c5 Pool getPort race condition
It appears that when requesting multiple ports asynchronously,
that a port is given out multiple times, which crashes single
Tor processes. Such a crash brings down the whole system as of
now, which might or might not be desired.
This is caused by a race condition on the port numbers. This
commit fixes the issue if a number of Tor instances for the pool
is requested. If the pool is populated with an array of definitions,
the user has to make sure to include the ports in the definition,
otherwise the race condition still persists. If this should still be
allowed is up for discussion or if a check should be included in the
TorPool create function.
2019-11-21 16:27:48 +01:00
Zachary Boyd 7b90edabd0 Prevents errors that occur when connecting to the destination in the SOCKS Proxy and HTTP Proxy from crashing the applications 2018-10-15 17:36:32 -04:00
Zachary Boyd 419e78b727 Replaces 'jrpc2' with 'multi-rpc'. No application or API changes. 2018-09-25 12:40:15 -04:00
Zachary Boyd a9e8baa27f references 'granax' to comply with licensing requirements 2018-09-15 13:54:28 -04:00
Zachary Boyd 3a869f46bf fixes a small bug in tests 2018-09-15 02:27:19 -04:00
Zachary Boyd 0b82ad9cb5 finishes documentation. minor bug fixes and some code clean-up 2018-09-14 20:09:36 -04:00
Zachary Boyd 5b598f612a Adds jsdoc for TorPool. 2018-09-13 22:35:40 -04:00
Zachary Boyd 4aec5c3d0f Move most of the README to the wiki. Add grunt and jsdoc and documentation for TorProcess 2018-09-13 15:00:51 -04:00
Zachary Boyd d2b64ad796 "proxyByName" is now disabled by default because most browsers do not support SOCKS authentication 2018-09-11 19:44:41 -04:00
Zachary Boyd 2f57082394 "proxyByName" is now disabled by default because most browsers do not support SOCKS authentication 2018-09-11 19:37:13 -04:00
Zachary Boyd e2e43215ad Update README and CHANGELOG. Small bug fixes 2018-09-11 19:21:36 -04:00
Zachary Boyd c8bc7b81ac Adds setConfig, getConfig, saveConfig and loadConfig methods to the RPC interface. 2018-09-11 17:44:32 -04:00
Zachary Boyd f97272b5c0 Finishes proxy by name for groups. 2018-09-11 15:53:52 -04:00
Zachary Boyd be52091af1 Adds a rotate function to groups 2018-09-11 13:52:42 -04:00
Zachary Boyd 998185d31e Adds methods to the RPC Interface to interact with groups. Adds tests for those methods 2018-09-11 02:48:56 -04:00
Zachary Boyd 99c59541e0 Adds tests for the group feature. Isolates individual tests 2018-09-11 01:08:06 -04:00
Zachary Boyd f7537bbf8e Adds tests for the group feature. 2018-09-10 22:36:21 -04:00
Zachary Boyd 22908b7bba Adds group functionality to TorPool 2018-09-10 20:53:33 -04:00
Zachary Boyd 94a6511fd5 Fixes a bug where exceptions caused by the inbound socket on HTTPServer are not caught 2018-09-10 13:25:39 -04:00
Zachary Boyd c43e6cf14f Finishes proxying through a specific instance 2018-09-10 13:03:02 -04:00
Zachary Boyd ece4d4ea02 Can now connect directly to an instance via http 2018-09-09 23:44:24 -04:00
Zachary Boyd 4553bcc82b Replaced socksv5 with a version that supports user context. Locks down the versions of some packages 2018-09-09 22:26:55 -04:00
Zachary Boyd c379350de7 The control server can now accept websocket connections. All servers can be bound to a specific hostname 2018-09-09 22:13:39 -04:00
Zachary Boyd b65fa27ba8 Breaks the mocha test into individual files so tests can be run independently. Uses Promises in the mocha test. Adds a listen method to all servers 2018-09-09 15:42:50 -04:00
Zachary Boyd 1c29679024 Splits the mocha tests into individual files 2018-09-09 03:00:29 -04:00
Zachary Boyd a74409ddb7 Replaces callbacks with Promises throughout the rest of the application. 2018-09-09 01:45:12 -04:00
Zachary Boyd d1265253d2 Uses bluebird for Promises. All functions in TorProcess return Promises instead of callbacks 2018-09-09 00:44:39 -04:00
Zachary Boyd 723a227f26 replaces eventemitter2 with eventemitter3 2018-09-09 00:28:43 -04:00
Zachary Boyd c1515969b4 Adds a sepreate file for a silent winston logger to be used whenever a logger is not specified. Replaces all callbacks with Promises in TorPool. 2018-09-09 00:25:46 -04:00
Zachary Boyd 72aa9193d2 Moves 'tor-router' executable code to 'src/launch.js' 2018-09-08 23:56:34 -04:00
Zachary Boyd 56b34f2133 Launches tor with the '--quiet' flag when attempting to get the hashed password for the control port. Uses 'os.EOL' instead of '\n' when creating the config file for compatibility with windows 2018-08-10 15:43:28 -04:00
Zachary Boyd 7d996ffa81 Adds "queryInstanceByName" and "queryInstanceAt" 2018-08-10 13:06:40 -04:00
Zachary Boyd ba24667009 add nconf env loader 2018-08-10 00:57:47 -04:00
Zachary Boyd f77d6bf3b5 fixes typo 2018-08-10 00:53:43 -04:00
Zachary Boyd a8b68ef5ec Removes domains 2018-08-10 00:46:34 -04:00
Zachary Boyd 04f185f85b Cleans up existing test suites and adds suites for new methods 2018-08-10 00:44:07 -04:00
Zachary Boyd 4c148e2832 completes mocha test for TorProcess 2018-08-09 16:13:48 -04:00
Zachary Boyd b3a03b4a3e Removes refrences to 'nconf' within classes to make testing easier 2018-08-09 15:03:51 -04:00
Zachary Boyd f08aa6d23f removes all dependency on domains since they're being deprecated 2018-08-09 13:42:11 -04:00
Zachary Boyd 1273316e7d Allows signals to be sent to Tor instances using the control protocol from the rpc interface 2018-05-10 22:41:15 -07:00
Zachary Boyd 48373e3c71 Allows Tor configuration to be modified at runtime via the rpc interface 2018-05-10 22:25:26 -07:00
Zachary Boyd 38bf4d7c6a Adds remove_by_name and new_identity_by_name methods to TorPool 2018-05-10 22:08:38 -07:00
Zachary Boyd 5f8fde9039 Uses the Control Protocol to request a new identity. Replaces 'new_ip' with 'new_identity' and deprecates 'new_ip' 2018-05-10 21:44:30 -07:00
Zachary Boyd 4bc4c15dd7 Connects to the Tor instance via the control port when the instance starts 2018-05-10 21:17:00 -07:00
Zachary Boyd b3700e0202 Bundles the Tor executable 2018-05-09 22:42:30 -07:00
Zachary Boyd c0026c4411 Removes the default values on socksPort and instances 2018-05-09 22:09:31 -07:00