mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-01-18 02:39:44 +00:00
added improved control of rhizome http and mdp servers via
separate config options with their own predicate functions.
This commit is contained in:
parent
7a4e3d20f8
commit
b91e832ad7
16
overlay.c
16
overlay.c
@ -124,16 +124,16 @@ schedule(&_sched_##X); }
|
|||||||
|
|
||||||
/* Get rhizome server started BEFORE populating fd list so that
|
/* Get rhizome server started BEFORE populating fd list so that
|
||||||
the server's listen socket is in the list for poll() */
|
the server's listen socket is in the list for poll() */
|
||||||
if (rhizome_enabled()) {
|
if (is_rhizome_enabled()) rhizome_opendb();
|
||||||
if (!rhizome_opendb()){
|
|
||||||
/* Rhizome http server needs to know which callback to attach
|
/* Rhizome http server needs to know which callback to attach
|
||||||
to client sockets, so provide it here, along with the name to
|
to client sockets, so provide it here, along with the name to
|
||||||
appear in time accounting statistics. */
|
appear in time accounting statistics. */
|
||||||
rhizome_http_server_start(rhizome_server_parse_http_request,
|
if (is_rhizome_http_enabled())
|
||||||
"rhizome_server_parse_http_request",
|
rhizome_http_server_start(rhizome_server_parse_http_request,
|
||||||
RHIZOME_HTTP_PORT,RHIZOME_HTTP_PORT_MAX);
|
"rhizome_server_parse_http_request",
|
||||||
}
|
RHIZOME_HTTP_PORT,RHIZOME_HTTP_PORT_MAX);
|
||||||
}
|
|
||||||
// start the dna helper if configured
|
// start the dna helper if configured
|
||||||
dna_helper_start();
|
dna_helper_start();
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||||||
#include "overlay_address.h"
|
#include "overlay_address.h"
|
||||||
#include "overlay_packet.h"
|
#include "overlay_packet.h"
|
||||||
#include "mdp_client.h"
|
#include "mdp_client.h"
|
||||||
|
#include "rhizome.h"
|
||||||
#include "crypto.h"
|
#include "crypto.h"
|
||||||
|
|
||||||
int overlay_mdp_service_rhizomerequest(overlay_mdp_frame *mdp)
|
int overlay_mdp_service_rhizomerequest(overlay_mdp_frame *mdp)
|
||||||
@ -150,12 +151,18 @@ int overlay_mdp_try_interal_services(overlay_mdp_frame *mdp)
|
|||||||
case MDP_PORT_KEYMAPREQUEST: RETURN(keyring_mapping_request(keyring,mdp));
|
case MDP_PORT_KEYMAPREQUEST: RETURN(keyring_mapping_request(keyring,mdp));
|
||||||
case MDP_PORT_DNALOOKUP: RETURN(overlay_mdp_service_dnalookup(mdp));
|
case MDP_PORT_DNALOOKUP: RETURN(overlay_mdp_service_dnalookup(mdp));
|
||||||
case MDP_PORT_ECHO: RETURN(overlay_mdp_service_echo(mdp));
|
case MDP_PORT_ECHO: RETURN(overlay_mdp_service_echo(mdp));
|
||||||
case MDP_PORT_RHIZOME_REQUEST: RETURN(overlay_mdp_service_rhizomerequest(mdp));
|
case MDP_PORT_RHIZOME_REQUEST:
|
||||||
case MDP_PORT_RHIZOME_RESPONSE: RETURN(overlay_mdp_service_rhizomeresponse(mdp));
|
if (is_rhizome_mdp_server_running()) {
|
||||||
default:
|
RETURN(overlay_mdp_service_rhizomerequest(mdp));
|
||||||
/* Unbound socket. We won't be sending ICMP style connection refused
|
} else break;
|
||||||
messages, partly because they are a waste of bandwidth. */
|
case MDP_PORT_RHIZOME_RESPONSE:
|
||||||
RETURN(WHYF("Received packet for which no listening process exists (MDP ports: src=%d, dst=%d",
|
if (is_rhizome_mdp_server_running()) {
|
||||||
mdp->out.src.port,mdp->out.dst.port));
|
RETURN(overlay_mdp_service_rhizomeresponse(mdp));
|
||||||
|
} else break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Unbound socket. We won't be sending ICMP style connection refused
|
||||||
|
messages, partly because they are a waste of bandwidth. */
|
||||||
|
RETURN(WHYF("Received packet for which no listening process exists (MDP ports: src=%d, dst=%d",
|
||||||
|
mdp->out.src.port,mdp->out.dst.port));
|
||||||
}
|
}
|
||||||
|
32
rhizome.c
32
rhizome.c
@ -22,9 +22,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||||||
#include "rhizome.h"
|
#include "rhizome.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int rhizome_enabled()
|
int is_rhizome_enabled()
|
||||||
{
|
{
|
||||||
return confValueGetBoolean("rhizome.enable", 1);;
|
return confValueGetBoolean("rhizome.enable", 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_rhizome_http_enabled()
|
||||||
|
{
|
||||||
|
return confValueGetBoolean("rhizome.enable", 1)
|
||||||
|
&& confValueGetBoolean("rhizome.http.enable", 1)
|
||||||
|
&& rhizome_db;
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_rhizome_mdp_enabled()
|
||||||
|
{
|
||||||
|
return confValueGetBoolean("rhizome.enable", 1)
|
||||||
|
&& confValueGetBoolean("rhizome.mdp.enable", 1)
|
||||||
|
&& rhizome_db;
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_rhizome_mdp_server_running()
|
||||||
|
{
|
||||||
|
return is_rhizome_mdp_enabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_rhizome_advertise_enabled()
|
||||||
|
{
|
||||||
|
return confValueGetBoolean("rhizome.enable", 1)
|
||||||
|
&& confValueGetBoolean("rhizome.advertise.enable", 1)
|
||||||
|
&& rhizome_db
|
||||||
|
&& ( is_rhizome_http_server_running()
|
||||||
|
||is_rhizome_mdp_server_running());
|
||||||
}
|
}
|
||||||
|
|
||||||
int rhizome_fetch_delay_ms()
|
int rhizome_fetch_delay_ms()
|
||||||
|
@ -439,6 +439,13 @@ int rhizome_http_server_start(int (*http_parse_func)(rhizome_http_request *),
|
|||||||
const char *http_parse_func_description,
|
const char *http_parse_func_description,
|
||||||
int port_low,int port_high);
|
int port_low,int port_high);
|
||||||
|
|
||||||
|
int is_rhizome_enabled();
|
||||||
|
int is_rhizome_mdp_enabled();
|
||||||
|
int is_rhizome_http_enabled();
|
||||||
|
int is_rhizome_advertise_enabled();
|
||||||
|
int is_rhizome_mdp_server_running();
|
||||||
|
int is_rhizome_http_server_running();
|
||||||
|
|
||||||
typedef struct rhizome_direct_bundle_cursor {
|
typedef struct rhizome_direct_bundle_cursor {
|
||||||
/* Where the current fill started */
|
/* Where the current fill started */
|
||||||
long long start_size_high;
|
long long start_size_high;
|
||||||
|
@ -72,7 +72,7 @@ unsigned char favicon_bytes[]={
|
|||||||
,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
||||||
int favicon_len=318;
|
int favicon_len=318;
|
||||||
|
|
||||||
int rhizome_http_server_running()
|
int is_rhizome_http_server_running()
|
||||||
{
|
{
|
||||||
return rhizome_server_socket != -1;
|
return rhizome_server_socket != -1;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ int overlay_rhizome_add_advertisements(int interface_number, struct overlay_buff
|
|||||||
XXX We will move all processing of Rhizome into a separate process
|
XXX We will move all processing of Rhizome into a separate process
|
||||||
so that the CPU delays caused by Rhizome verifying signatures isn't a problem.
|
so that the CPU delays caused by Rhizome verifying signatures isn't a problem.
|
||||||
*/
|
*/
|
||||||
if (!rhizome_http_server_running() || !rhizome_db)
|
if (!is_rhizome_advertise_enabled())
|
||||||
RETURN(0);
|
RETURN(0);
|
||||||
|
|
||||||
int pass;
|
int pass;
|
||||||
|
Loading…
Reference in New Issue
Block a user