n2n/include/edge_utils_win32.h

44 lines
1.4 KiB
C
Raw Normal View History

2020-06-17 06:54:02 +02:00
/**
2022-03-12 10:22:42 +01:00
* (C) 2007-22 - ntop.org and contributors
2020-06-17 06:54:02 +02:00
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2020-06-17 06:54:02 +02:00
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not see see <http://www.gnu.org/licenses/>
*
*/
#ifndef _EDGE_UTILS_WIN32_H_
#define _EDGE_UTILS_WIN32_H_
#include <n2n.h>
2020-06-21 22:26:27 +02:00
2020-06-21 22:26:27 +02:00
/* Multicast peers discovery disabled due to https://github.com/ntop/n2n/issues/65 */
/* Currently, multicast is performed by specifying the default routing network adapter.
* If the solution is determined to be stable and effective,
* all macro definitions "SKIP_MULTICAST_PEERS_DISCOVERY" will be completely deleted in the future.
*/
//#define SKIP_MULTICAST_PEERS_DISCOVERY
2020-06-21 22:26:27 +02:00
JSON Reply Management API - feature parity with old management interfaces (#861) * 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
2021-10-23 07:20:05 +02:00
// TODO: this struct is pretty empty now, collapse it to just n2n_edge_t ?
2020-06-21 22:26:27 +02:00
struct tunread_arg {
n2n_edge_t *eee;
2020-06-21 22:26:27 +02:00
};
2020-12-19 12:28:06 +01:00
extern HANDLE startTunReadThread (struct tunread_arg *arg);
2023-06-21 19:23:34 +02:00
int get_best_interface_ip (n2n_edge_t * eee, dec_ip_str_t *ip_addr);
2020-06-16 09:42:38 +02:00
#endif /* _EDGE_UTILS_WIN32_H_ */