Commit Graph
232 Commits
Author SHA1 Message Date
Hornwitser bcb22d2af7 Securely generate rcon password
Replace Math.random() based password generation for the rcon interface
with a more secure method based crypto.randomBytes.
2019-09-14 01:18:51 +02:00
Hornwitser eb1b863cec Remove unimplemented mods update command
Remove the mods update command from the client command line interface as
this calls the non-existant modManager.updateAllMods function.
2019-09-14 01:15:36 +02:00
Hornwitser 2428cba2bd Default to ports in the dynamic range
Use random ports in the dynamic range as define by RFC 6335 for
instaces.
2019-09-14 01:15:01 +02:00
Hornwitser 18a904d9de Use as-table for listInstances
Rewrite listInstances to use as-table instead of manually coded table
generation.
2019-09-14 00:54:32 +02:00
Hornwitser 85daf6df19 Rename listPlugins to listInstances
Rename incorrectly named function listPlugins to listInstances.
2019-09-14 00:53:50 +02:00
Hornwitser 8aa66e9e68 Port authentication of socket.io server
Authenticate connections made to the socket.io server via a token query
parameter that's validated in a similar manner to the x-access-token for
HTTP requests.

This is a port of 0c45e57.
2019-09-11 16:59:11 +02:00
Hornwitser 1bbf1542d2 Refactor client.js command handling into functions
Move the various actions performed by client.js into separate async
functions and do the command action logic if client.js is invoked as a
module directly.
2019-09-09 12:44:09 +02:00
Hornwitser 98900e72dc Merge masterIP and masterPort into masterURL
Merge the masterIP and masterPort configuration entries into a single
masterURL entry.  Fixes the problem with connecting to an HTTPS version
of the master server and also makes it easier to host the master server
behind a reverse proxy.

This breaks all known code interfacing Clusterio.
2019-09-09 12:44:09 +02:00
Hornwitser a31778c7ff Remove unused config parameter to pluginManager
Remove the unused library initialization parameter config to
pluginManager and reorganize pluginManager to no longer be defined by a
function.
2019-09-04 20:43:13 +02:00
Arvids Godjuks 8c1c8d07a9 Merge pull request #224 from Hornwitser/duck-tape-researchsync
Duck tape researchsync tests
2019-09-04 17:34:28 +02:00
Hornwitser f4ca5d92a1 Pass instance name to plugins
Add instanceName entry to the config passed to plugins that contains the
name of the current instance.
2019-09-04 14:59:01 +02:00
Hornwitser 703423ae54 Add development branch warning at startup
Add a big banner based warning telling this is the development branch
for clusterio to the startup of client.js and master.js.
2019-09-01 23:34:52 +02:00
Hornwitser 38462d3069 Set User-Agent according to GitHub's request
GitHub requests that the user agent be set to either the name of the
user or the application[1].  Set user agent to the name of this
application as they request.

[1] https://developer.github.com/v3/#user-agent-required
2019-08-24 11:02:50 +02:00
Hornwitser 66c0238a3d Remove undescore
A 50 kb library is not needed to make a function run once, especially
not when it doesn't work.  _.once does not modify the function passed to
it to only run once it returns a new function that only runs once.
Since the result of once was discarded, it had no effect.

Remove underscore and implement instanceManagement running once properly
with 3 lines of code.
2019-08-07 10:18:14 +02:00
Hornwitser 13a069a798 Reimplement hashFile locally
Replace the 10 MB of dependencies that is hash-files with a homebrew
Promise based implementation of hashFile that uses crypto and fs.  This
somehow also ends up being the same amount of code as the one using
hash-files.
2019-08-07 10:18:14 +02:00
Godmave 0df1b8e1fd Add tailing of files and move socketio connect after plugin load (#191)
#add tailing of files to prevent lost data between factorio and clusterio
#move socketio connect to the bottom after the plugins are loaded 
  to prevent plugins not getting the connection event
#add some more transfer compression in different places
2019-08-05 07:47:57 +02:00
Hornwitser f76c84c3f1 Move node_modules/_app/ into lib/ as a package (#190)
Move the contents of node_modules/_app into lib/ as there shouldn't be
any content in node_modules.  This directory is automatically managed
and pruned by npm.

Add lib/ as a local package in package.json, this allows scripts
everywhere to require it's content as "lib/path" instead of relying on
local paths.  This shadows the StdLib Node.js Bindings package, but I
could care less.

Change all requires with lib as a local path and _app to use just lib.
2019-08-04 15:52:36 +02:00
Hornwitser a13d4c6805 Use published version of rcon-client-fork (#188)
Switch to a version of rcon-client-fork that's published on npm.  Avoids
having to put build files in the git repo.
2019-07-30 16:28:43 +03:00
Master-Guy 6ac8c0711f JSON fix
Small fix for JSON
2019-07-17 19:23:53 +02:00
Master-Guy c9cbc48d95 2/2 Add "info" field between client and master
Adds a "info" field to config.json and allows the client to send the contents of this info field to the master, so it also shows up (i.e. with /api/slaves)
2019-07-17 18:40:01 +02:00
Master-Guy 50370bf858 1/2 Add "info" field between client and master
Adds a "info" field to config.json and allows the client to send the contents of this info field to the master, so it also shows up (i.e. with /api/slaves)
2019-07-17 18:35:02 +02:00
Daniel Vestøl 6c32271c56 Fixed rcon timeout in the right place, set to 200s for 1250kB commands 2019-07-06 12:44:31 +02:00
Daniel Vestøl a122f2b09e Increased rcon timeout to 20s, increased maxPending to 5 2019-07-06 00:46:22 +02:00
Daniel Vestøl f35be2f355 Set max pending rcon requests to 1 2019-07-05 23:42:51 +02:00
Daniel Vestøl 9b6f8cf652 Fixed error related to getting playerCount 2018-11-17 16:09:46 +01:00
Daniel Vestøl 58b609cbd0 Fixed portable instances 2018-11-10 17:29:32 +01:00
Daniel Vestøl 8a84f4087a Bugfix and usability improvements 2018-09-23 09:17:07 +02:00
Daniel Vestøl 07b9d0a0f5 Fixed getMac spam in VMs, added log rotation 2018-08-23 10:04:19 +02:00
Daniel Vestøl 765146b559 Plugin loading now respects disabled plugins 2018-08-16 14:52:09 +02:00
Daniel Vestøl ffa2d0b0fb Fixed windows crash on ctrl+c preventing factorio from saving 2018-08-16 12:19:18 +02:00
Daniel Vestøl a76e07c07b Enable and disable plugins from the commandline (non functional as of yet) 2018-08-15 23:15:01 +02:00
Daniel Vestøl 9461978a6e Reduced log spam 2018-07-30 13:30:03 +02:00
Daniel Vestøl 4fed43bad6 [big change] Moved core clusterio Lua mod functionality into its own plugin 2018-07-28 13:45:05 +02:00
Gerkiz 49124021a8 Added docker support
Docker doesn't really do anything with the  '/quit'.
However, changing from 'quit' to 'serverprocess.kill("SIGINT");' solved this issue.
The node exits with:
'[dumb-init] Child exited with status 0. Goodbye.'
2018-07-25 21:47:03 +02:00
Daniel Vestøl 8abeb26dce Commandline tools to install/uninstall plugins from github 2018-07-25 01:14:43 +02:00
Daniel Vestøl 958cdfa15a Fixed node client.js manage * mods * 2018-07-24 23:14:02 +02:00
Daniel Vestøl d913d59d72 Handle instance creation failing gracefully upon lacking internet 2018-07-24 23:00:42 +02:00
Daniel Vestøl 42037fc451 client.js now adds Hotpatch to new maps 2018-07-18 10:30:35 +02:00
Daniel Vestøl e73a6052fe Instance creation with external instance paths are now working 2018-07-15 17:43:26 +02:00
Daniel Vestøl 724248b09b Merge branch 'master' into #85 2018-07-15 16:10:28 +02:00
Daniel Vestøl 98131ee66e Very big changes to help custom config paths 2018-07-13 22:56:10 +02:00
hintss af42b1fcd3 fix typo in log message 2018-07-13 01:36:12 -07:00
chrisgbk 9501861285 Fix race condition in node client download
Fix race condition in node client download
2018-07-10 04:23:40 -06:00
Daniel Vestøl bf19001055 Fixed --config, is probably unstable on client.js 2018-06-24 16:48:08 +02:00
Daniel Vestøl 443e5dc286 Arguments: --port --masterPort --sslPort --config --rcon-port --rcon-password 2018-06-24 16:46:31 +02:00
Daniel Vestøl 8267dae10e #85 update config.ini with absolute paths 2018-06-24 15:00:48 +02:00
Daniel Vestøl d177fb7304 client.js exits after creating and instance, better comments 2018-06-24 14:24:36 +02:00
Daniel Vestøl 7d99162072 Merge branch '#85' 2018-06-24 13:57:24 +02:00
Daniel Vestøl 447766c752 Fixed mod manager not exiting after downloading mods 2018-06-16 15:41:06 +02:00
Daniel Vestøl e4c276054b Don't spam internal errors when server is paused/shutting down 2018-06-13 20:59:39 +02:00