mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-18 20:57:56 +00:00
Pass command-line args to server() function
So that the daemon can open the keyring file with --keyring-pin and --entry-pin options. Also remove some unused code.
This commit is contained in:
parent
842915f70c
commit
7d30b3cce7
@ -744,7 +744,7 @@ int app_server_start(const struct cli_parsed *parsed, struct cli_context *contex
|
||||
RETURN(-1);
|
||||
overlayMode = 1;
|
||||
if (foregroundP)
|
||||
RETURN(server(NULL));
|
||||
RETURN(server(parsed));
|
||||
const char *dir = getenv("SERVALD_SERVER_CHDIR");
|
||||
if (!dir)
|
||||
dir = config.server.chdir;
|
||||
@ -792,7 +792,7 @@ int app_server_start(const struct cli_parsed *parsed, struct cli_context *contex
|
||||
WHYF_perror("execl(%s,\"start\",\"foreground\")", alloca_str_toprint(execpath));
|
||||
_exit(-1);
|
||||
}
|
||||
_exit(server(NULL));
|
||||
_exit(server(parsed));
|
||||
// NOT REACHED
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ int overlayMode=0;
|
||||
|
||||
keyring_file *keyring=NULL;
|
||||
|
||||
int overlayServerMode()
|
||||
int overlayServerMode(const struct cli_parsed *parsed)
|
||||
{
|
||||
IN();
|
||||
|
||||
@ -88,7 +88,7 @@ int overlayServerMode()
|
||||
/* Get keyring available for use.
|
||||
Required for MDP, and very soon as a complete replacement for the
|
||||
HLR for DNA lookups, even in non-overlay mode. */
|
||||
keyring = keyring_open_instance();
|
||||
keyring = keyring_open_instance_cli(parsed);
|
||||
if (!keyring)
|
||||
RETURN(WHY("Could not open serval keyring file."));
|
||||
keyring_enter_pin(keyring, "");
|
||||
|
7
serval.h
7
serval.h
@ -170,6 +170,8 @@ void serval_setinstancepath(const char *instancepath);
|
||||
|
||||
#define SERVER_CONFIG_RELOAD_INTERVAL_MS 1000
|
||||
|
||||
struct cli_parsed;
|
||||
|
||||
extern int servalShutdown;
|
||||
|
||||
extern char *gatewayspec;
|
||||
@ -518,7 +520,7 @@ int strn_is_did(const char *did, size_t *lenp);
|
||||
int stowSid(unsigned char *packet, int ofs, const char *sid);
|
||||
int server_pid();
|
||||
void server_save_argv(int argc, const char *const *argv);
|
||||
int server(char *backing_file);
|
||||
int server(const struct cli_parsed *parsed);
|
||||
int server_create_stopfile();
|
||||
int server_remove_stopfile();
|
||||
int server_check_stopfile();
|
||||
@ -562,7 +564,7 @@ int rfs_length(int l);
|
||||
int rfs_encode(int l,unsigned char *b);
|
||||
int rfs_decode(unsigned char *b,int *offset);
|
||||
|
||||
int overlayServerMode();
|
||||
int overlayServerMode(const struct cli_parsed *parsed);
|
||||
int overlay_payload_enqueue(struct overlay_frame *p);
|
||||
int overlay_queue_remaining(int queue);
|
||||
int overlay_queue_schedule_next(time_ms_t next_allowed_packet);
|
||||
@ -686,7 +688,6 @@ int overlay_broadcast_ensemble(struct network_destination *destination,
|
||||
int directory_registration();
|
||||
int directory_service_init();
|
||||
|
||||
struct cli_parsed;
|
||||
int app_nonce_test(const struct cli_parsed *parsed, struct cli_context *context);
|
||||
int app_rhizome_direct_sync(const struct cli_parsed *parsed, struct cli_context *context);
|
||||
int app_monitor_cli(const struct cli_parsed *parsed, struct cli_context *context);
|
||||
|
24
server.c
24
server.c
@ -42,7 +42,6 @@ static int server_getpid = 0;
|
||||
|
||||
void signal_handler(int signal);
|
||||
void crash_handler(int signal);
|
||||
int getKeyring(char *s);
|
||||
|
||||
/** Return the PID of the currently running server process, return 0 if there is none.
|
||||
*/
|
||||
@ -83,7 +82,7 @@ void server_save_argv(int argc, const char *const *argv)
|
||||
exec_args[exec_argc] = NULL;
|
||||
}
|
||||
|
||||
int server(char *backing_file)
|
||||
int server(const struct cli_parsed *parsed)
|
||||
{
|
||||
IN();
|
||||
/* For testing, it can be very helpful to delay the start of the server process, for example to
|
||||
@ -130,7 +129,7 @@ int server(char *backing_file)
|
||||
fprintf(f,"%d\n", server_getpid);
|
||||
fclose(f);
|
||||
|
||||
overlayServerMode();
|
||||
overlayServerMode(parsed);
|
||||
|
||||
RETURN(0);
|
||||
OUT();
|
||||
@ -418,22 +417,3 @@ void crash_handler(int signal)
|
||||
INFOF("exit(%d)", -signal);
|
||||
exit(-signal);
|
||||
}
|
||||
|
||||
int getKeyring(char *backing_file)
|
||||
{
|
||||
if (!backing_file)
|
||||
{
|
||||
exit(WHY("Keyring requires a backing file"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keyring)
|
||||
exit(WHY("Keyring being opened twice"));
|
||||
keyring=keyring_open(backing_file);
|
||||
/* unlock all entries with blank pins */
|
||||
keyring_enter_pin(keyring, "");
|
||||
}
|
||||
keyring_seed(keyring);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user