diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-12-11 17:47:58 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-12-11 17:47:58 +0100 |
commit | cefc7647dc8db23452da80cfb4384cca641bb99d (patch) | |
tree | 80a7cecd85bacc33eb2baeb7da2c0a88e6b8d105 /src/arm/gnunet-arm.c | |
parent | e68c4624f12fe7172ea6de5b4a5d89d9e49eae91 (diff) | |
download | gnunet-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.c | 120 |
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) | |||
697 | static void | 696 | static void |
698 | run (void *cls, | 697 | run (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 | */ |
760 | int | 745 | int |
761 | main (int argc, char *const *argv) | 746 | main (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; |