aboutsummaryrefslogtreecommitdiff
path: root/src/arm/gnunet-arm.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-12-11 17:47:58 +0100
committerChristian Grothoff <christian@grothoff.org>2018-12-11 17:47:58 +0100
commitcefc7647dc8db23452da80cfb4384cca641bb99d (patch)
tree80a7cecd85bacc33eb2baeb7da2c0a88e6b8d105 /src/arm/gnunet-arm.c
parente68c4624f12fe7172ea6de5b4a5d89d9e49eae91 (diff)
downloadgnunet-cefc7647dc8db23452da80cfb4384cca641bb99d.tar.gz
gnunet-cefc7647dc8db23452da80cfb4384cca641bb99d.zip
make sure peer launches if default config not found and -c not given
Diffstat (limited to 'src/arm/gnunet-arm.c')
-rw-r--r--src/arm/gnunet-arm.c120
1 files changed, 49 insertions, 71 deletions
diff --git a/src/arm/gnunet-arm.c b/src/arm/gnunet-arm.c
index e8180e920..69e230f87 100644
--- a/src/arm/gnunet-arm.c
+++ b/src/arm/gnunet-arm.c
@@ -146,8 +146,8 @@ delete_files ()
146{ 146{
147 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 147 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
148 "Will attempt to remove configuration file %s and service directory %s\n", 148 "Will attempt to remove configuration file %s and service directory %s\n",
149 config_file, dir); 149 config_file,
150 150 dir);
151 if (0 != UNLINK (config_file)) 151 if (0 != UNLINK (config_file))
152 { 152 {
153 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 153 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -159,7 +159,6 @@ delete_files ()
159 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 159 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
160 _("Failed to remove servicehome directory %s\n"), 160 _("Failed to remove servicehome directory %s\n"),
161 dir); 161 dir);
162
163 } 162 }
164} 163}
165 164
@@ -697,13 +696,11 @@ timeout_task_cb (void *cls)
697static void 696static void
698run (void *cls, 697run (void *cls,
699 char *const *args, 698 char *const *args,
700 const char *cfgfile,
701 const struct GNUNET_CONFIGURATION_Handle *c) 699 const struct GNUNET_CONFIGURATION_Handle *c)
702{ 700{
703 char *armconfig; 701 char *armconfig;
704 702
705 cfg = GNUNET_CONFIGURATION_dup (c); 703 cfg = GNUNET_CONFIGURATION_dup (c);
706 config_file = cfgfile;
707 if (GNUNET_OK != 704 if (GNUNET_OK !=
708 GNUNET_CONFIGURATION_get_value_string (cfg, 705 GNUNET_CONFIGURATION_get_value_string (cfg,
709 "PATHS", 706 "PATHS",
@@ -715,30 +712,18 @@ run (void *cls,
715 "GNUNET_HOME"); 712 "GNUNET_HOME");
716 return; 713 return;
717 } 714 }
718 if (NULL != cfgfile) 715 (void) GNUNET_CONFIGURATION_get_value_filename (cfg,
719 { 716 "arm",
720 if (GNUNET_OK != 717 "CONFIG",
721 GNUNET_CONFIGURATION_get_value_filename (cfg, 718 &config_file);
722 "arm",
723 "CONFIG",
724 &armconfig))
725 {
726 GNUNET_CONFIGURATION_set_value_string (cfg,
727 "arm",
728 "CONFIG",
729 cfgfile);
730 }
731 else
732 GNUNET_free (armconfig);
733 }
734 if (NULL == (h = GNUNET_ARM_connect (cfg, 719 if (NULL == (h = GNUNET_ARM_connect (cfg,
735 &conn_status, 720 &conn_status,
736 NULL))) 721 NULL)))
737 return; 722 return;
738 if (monitor) 723 if (monitor)
739 m = GNUNET_ARM_monitor_start (cfg, 724 m = GNUNET_ARM_monitor_start (cfg,
740 &srv_status, 725 &srv_status,
741 NULL); 726 NULL);
742 al_task = GNUNET_SCHEDULER_add_now (&action_loop, 727 al_task = GNUNET_SCHEDULER_add_now (&action_loop,
743 NULL); 728 NULL);
744 GNUNET_SCHEDULER_add_shutdown (&shutdown_task, 729 GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
@@ -758,84 +743,77 @@ run (void *cls,
758 * @return 0 ok, 1 on error, 2 on timeout 743 * @return 0 ok, 1 on error, 2 on timeout
759 */ 744 */
760int 745int
761main (int argc, char *const *argv) 746main (int argc,
747 char *const *argv)
762{ 748{
763 struct GNUNET_GETOPT_CommandLineOption options[] = { 749 struct GNUNET_GETOPT_CommandLineOption options[] = {
764
765 GNUNET_GETOPT_option_flag ('e', 750 GNUNET_GETOPT_option_flag ('e',
766 "end", 751 "end",
767 gettext_noop ("stop all GNUnet services"), 752 gettext_noop ("stop all GNUnet services"),
768 &end), 753 &end),
769
770 GNUNET_GETOPT_option_string ('i', 754 GNUNET_GETOPT_option_string ('i',
771 "init", 755 "init",
772 "SERVICE", 756 "SERVICE",
773 gettext_noop ("start a particular service"), 757 gettext_noop ("start a particular service"),
774 &init), 758 &init),
775
776 GNUNET_GETOPT_option_string ('k', 759 GNUNET_GETOPT_option_string ('k',
777 "kill", 760 "kill",
778 "SERVICE", 761 "SERVICE",
779 gettext_noop ("stop a particular service"), 762 gettext_noop ("stop a particular service"),
780 &term), 763 &term),
781
782 GNUNET_GETOPT_option_flag ('s', 764 GNUNET_GETOPT_option_flag ('s',
783 "start", 765 "start",
784 gettext_noop ("start all GNUnet default services"), 766 gettext_noop ("start all GNUnet default services"),
785 &start), 767 &start),
786
787 GNUNET_GETOPT_option_flag ('r', 768 GNUNET_GETOPT_option_flag ('r',
788 "restart", 769 "restart",
789 gettext_noop ("stop and start all GNUnet default services"), 770 gettext_noop ("stop and start all GNUnet default services"),
790 &restart), 771 &restart),
791 GNUNET_GETOPT_option_flag ('d', 772 GNUNET_GETOPT_option_flag ('d',
792 "delete", 773 "delete",
793 gettext_noop ("delete config file and directory on exit"), 774 gettext_noop ("delete config file and directory on exit"),
794 &delete), 775 &delete),
795
796 GNUNET_GETOPT_option_flag ('m', 776 GNUNET_GETOPT_option_flag ('m',
797 "monitor", 777 "monitor",
798 gettext_noop ("monitor ARM activities"), 778 gettext_noop ("monitor ARM activities"),
799 &monitor), 779 &monitor),
800
801 GNUNET_GETOPT_option_flag ('q', 780 GNUNET_GETOPT_option_flag ('q',
802 "quiet", 781 "quiet",
803 gettext_noop ("don't print status messages"), 782 gettext_noop ("don't print status messages"),
804 &quiet), 783 &quiet),
805
806 GNUNET_GETOPT_option_relative_time ('T', 784 GNUNET_GETOPT_option_relative_time ('T',
807 "timeout", 785 "timeout",
808 "DELAY", 786 "DELAY",
809 gettext_noop ("exit with error status if operation does not finish after DELAY"), 787 gettext_noop ("exit with error status if operation does not finish after DELAY"),
810 &timeout), 788 &timeout),
811
812 GNUNET_GETOPT_option_flag ('I', 789 GNUNET_GETOPT_option_flag ('I',
813 "info", 790 "info",
814 gettext_noop ("list currently running services"), 791 gettext_noop ("list currently running services"),
815 &list), 792 &list),
816
817 GNUNET_GETOPT_option_flag ('O', 793 GNUNET_GETOPT_option_flag ('O',
818 "no-stdout", 794 "no-stdout",
819 gettext_noop ("don't let gnunet-service-arm inherit standard output"), 795 gettext_noop ("don't let gnunet-service-arm inherit standard output"),
820 &no_stdout), 796 &no_stdout),
821
822 GNUNET_GETOPT_option_flag ('E', 797 GNUNET_GETOPT_option_flag ('E',
823 "no-stderr", 798 "no-stderr",
824 gettext_noop ("don't let gnunet-service-arm inherit standard error"), 799 gettext_noop ("don't let gnunet-service-arm inherit standard error"),
825 &no_stderr), 800 &no_stderr),
826
827 GNUNET_GETOPT_OPTION_END 801 GNUNET_GETOPT_OPTION_END
828 }; 802 };
829 803
830 if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, 804 if (GNUNET_OK !=
831 &argc, &argv)) 805 GNUNET_STRINGS_get_utf8_args (argc, argv,
806 &argc, &argv))
832 return 2; 807 return 2;
833 808
834 if (GNUNET_OK == 809 if (GNUNET_OK ==
835 GNUNET_PROGRAM_run (argc, argv, "gnunet-arm", 810 GNUNET_PROGRAM_run (argc,
811 argv,
812 "gnunet-arm",
836 gettext_noop 813 gettext_noop
837 ("Control services and the Automated Restart Manager (ARM)"), 814 ("Control services and the Automated Restart Manager (ARM)"),
838 options, &run, NULL)) 815 options,
816 &run, NULL))
839 { 817 {
840 GNUNET_free ((void *) argv); 818 GNUNET_free ((void *) argv);
841 return ret; 819 return ret;