aboutsummaryrefslogtreecommitdiff
path: root/src/arm/gnunet-service-arm.c
diff options
context:
space:
mode:
authorpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>2018-06-23 13:30:01 +0000
committerpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>2018-06-23 13:30:01 +0000
commit92609e8b088bf1dde6b927dc0e3be2e9092f0f87 (patch)
treedff6aa674d6ca56fa2e2d3435e58fb639387a9a0 /src/arm/gnunet-service-arm.c
parent00d1e9393a4814d64c6892fdb79a267e9137ee7e (diff)
downloadgnunet-92609e8b088bf1dde6b927dc0e3be2e9092f0f87.tar.gz
gnunet-92609e8b088bf1dde6b927dc0e3be2e9092f0f87.zip
require gnunet.conf to specify which services to run
Diffstat (limited to 'src/arm/gnunet-service-arm.c')
-rw-r--r--src/arm/gnunet-service-arm.c36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c
index b56c9c0a8..4f443d0a1 100644
--- a/src/arm/gnunet-service-arm.c
+++ b/src/arm/gnunet-service-arm.c
@@ -235,6 +235,11 @@ static struct GNUNET_DISK_PipeHandle *sigpipe;
235static int in_shutdown; 235static int in_shutdown;
236 236
237/** 237/**
238 * Return value from main
239 */
240static int global_ret;
241
242/**
238 * Are we starting user services? 243 * Are we starting user services?
239 */ 244 */
240static int start_user = GNUNET_YES; 245static int start_user = GNUNET_YES;
@@ -2219,21 +2224,20 @@ run (void *cls,
2219 else 2224 else
2220 final_option = GNUNET_CONFIGURATION_expand_dollar (cfg, 2225 final_option = GNUNET_CONFIGURATION_expand_dollar (cfg,
2221 final_option); 2226 final_option);
2222 if (GNUNET_YES == 2227 start_user = GNUNET_CONFIGURATION_get_value_yesno (cfg,
2223 GNUNET_CONFIGURATION_get_value_yesno (cfg,
2224 "ARM", 2228 "ARM",
2225 "USER_ONLY")) 2229 "USER_ONLY");
2226 { 2230 start_system = GNUNET_CONFIGURATION_get_value_yesno (cfg,
2227 GNUNET_break (GNUNET_YES == start_user);
2228 start_system = GNUNET_NO;
2229 }
2230 if (GNUNET_YES ==
2231 GNUNET_CONFIGURATION_get_value_yesno (cfg,
2232 "ARM", 2231 "ARM",
2233 "SYSTEM_ONLY")) 2232 "SYSTEM_ONLY");
2233 if ( (GNUNET_NO == start_user) &&
2234 (GNUNET_NO == start_system) )
2234 { 2235 {
2235 GNUNET_break (GNUNET_YES == start_system); 2236 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
2236 start_user = GNUNET_NO; 2237 "Please configure either USER_ONLY or SYSTEM_ONLY or both.\n");
2238 GNUNET_SCHEDULER_shutdown ();
2239 global_ret = 1;
2240 return;
2237 } 2241 }
2238 GNUNET_CONFIGURATION_iterate_sections (cfg, 2242 GNUNET_CONFIGURATION_iterate_sections (cfg,
2239 &setup_service, 2243 &setup_service,
@@ -2260,7 +2264,6 @@ int
2260main (int argc, 2264main (int argc,
2261 char *const *argv) 2265 char *const *argv)
2262{ 2266{
2263 int ret;
2264 struct GNUNET_SIGNAL_Context *shc_chld; 2267 struct GNUNET_SIGNAL_Context *shc_chld;
2265 struct GNUNET_MQ_MessageHandler handlers[] = { 2268 struct GNUNET_MQ_MessageHandler handlers[] = {
2266 GNUNET_MQ_hd_var_size (start, 2269 GNUNET_MQ_hd_var_size (start,
@@ -2294,7 +2297,7 @@ main (int argc,
2294 shc_chld = 2297 shc_chld =
2295 GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, 2298 GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD,
2296 &sighandler_child_death); 2299 &sighandler_child_death);
2297 ret = GNUNET_SERVICE_run_ (argc, 2300 if ( GNUNET_OK != GNUNET_SERVICE_run_ (argc,
2298 argv, 2301 argv,
2299 "arm", 2302 "arm",
2300 GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN, 2303 GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN,
@@ -2302,7 +2305,8 @@ main (int argc,
2302 &client_connect_cb, 2305 &client_connect_cb,
2303 &client_disconnect_cb, 2306 &client_disconnect_cb,
2304 NULL, 2307 NULL,
2305 handlers); 2308 handlers))
2309 global_ret = 2;
2306#if HAVE_WAIT4 2310#if HAVE_WAIT4
2307 if (NULL != wait_file) 2311 if (NULL != wait_file)
2308 { 2312 {
@@ -2319,7 +2323,7 @@ main (int argc,
2319 shc_chld = NULL; 2323 shc_chld = NULL;
2320 GNUNET_DISK_pipe_close (sigpipe); 2324 GNUNET_DISK_pipe_close (sigpipe);
2321 sigpipe = NULL; 2325 sigpipe = NULL;
2322 return ret; 2326 return global_ret;
2323} 2327}
2324 2328
2325 2329