* Address shellcheck concerns with n2n_gateway.sh script
* Rename n2n_gateway.sh to live with all the other scripts (and update docs)
* Rename hack_fakeautoconf to make it clearly a shell script
* Address shellcheck concerns with hack_fakeautoconf.sh
* Rename python scripts to match other n2n tools
* Fix windows compile - when streamlining the use of hack_fakeautoconf.sh, I forgot to update all uses of this script
* Ensure that recent code additions pass the linter
* Include some of the more obviously correct lint fixes to edge_utils.c
* Refactor edge JSON api into its own source file
* Use shorter names for static management functions
* Implement a JSON RPC way of managing the verbosity
* Tidy up help display in n2nctl script
* Make note of issue with implementing the stop command
* Implement a JSON RPC call to fetch current community
* Make n2nhttpd time value be more self-contained
* Make n2nhttpd order more closely match the existing management stats output
* Wire up status page to the verbosity setting
* Add JSON versions of the remainder of the edge management stats
* Add new file to cmake
* Properly define management handler
* Only update the last updated timestamp after a successful data fetch
* Function and types definition cleanup
* Force correct type for python scripts mgmt port
* Implement initial JSON API for supernode
* Fix whitespace error
* Use helper function for rendering peers ip4 address
* Proxy the auth requirement back out to the http client, allowing normal http auth to be used
* Ensure that we do not leak the federation community
* Use the same rpc method name and output for both edge and supernode for peers/edges
* Allow n2nctl to show raw data returned without resorting to tricks
* Make n2nctl pretty printer understandable with an empty table
* Use the full name for supernodes RPC call
* Use same RPC method name (but some missing fields) for getting communities from both edge and supernode
* Add *_sup_broadcast stats to edge packet stats output
* Refacter the stats into a packetstats method for supernode RPC
* Even if I am not going to prettyprint the timestamps, at least make all the timestamps on the page the same unit
* Simplify the RPC handlers by flagging some as writable and checking that in the multiplexer
* Remove invalid edges data
* Avoid crash on bad data to verbose RPC
* Avoid showing bad or inconsistant protocol data in communities RPC
* Minor clarification on when --write is handled
* Make linter happy
* Fix changed method name in n2nhttpd
* Move mainloop stop flag into the n2n_edge_t structure, allowing access from management commands
* Implement edge RPC stop command
* Move mainloop stop flag into the n2n_sn_t structure, allowing access from management commands
* Implement supernode RPC stop command
* Allow multiple pages to be served from mini httpd
* Extract common script functions into a separate URL
* Handle an edge case in the python rpc class
With a proper tag-based demultiplexer, this case should be a nop,
but we are single-threaded and rely on the packet ordering in this
library.
* Add n2nhttpd support to query supernode using urls prefixed with /supernode/
* Handle missing values in javascript table print
* Add another less filtering javascript key/value renderer
* Add a supernode.html page to the n2nhttpd
* Address lint issue
* Mention the second html page on the Scripts doc
* Remove purgable column from supernode edges list - it looks like it is rarely going to be set
* Add a simple one-line example command at the top of the API documentation
* Acknowledge that this is not the most efficient protocol, but point out that it was not supposed to be
* Make it clear that the n2nctl script works for both edge and supernode
* Fight with inconsistant github runner results
* Turn off the /right/ coverage generator
* Reimplement JSON mgmt with clear separation of read/write actions
* Reduce boilerplate by using a table driven command definition for json mgmt commands
* Port tools to use new json api
* Add a basic authentication for json mgmt commands
* If a auth key is given, it must match
* Add auth key to management scripts
* Add a flag bitfield to clearly turn the tag param into a options list
* Allow simple pass-through of any command from n2nctl
* Convert the n2nctl to use an object oriented interface
* Handle sigpipe in the n2nhttpd - this happens if the remote client disconnects unexpectely
* Remove some repetition from the server
* Use the correct options to allow reuseaddr
* Dont generate a scary message on ctrl-c
* Convert n2nhttpd to use object based RPC
* Use the same longopt for both tools
* Pass any extra args through to the RPC
* Add some documentation for the scripts in the repository
* Spelling fix
* Add documentation for the JSON reply mangement API
* Add management commands to show data in JSON format
* Add a script to query the JSON management interface
* Suprisingly, the github runner does not have flake8 installed
* Add n2nctl debugging output to show the raw data received from the JSON
* Ensure well known tag wrap-around semantics
* Try to ensure we check every edge case in the protocol handling - only valid packets are allowed
* Add a very simple http to management port gateway
* Fix the lint issue