diff options
Diffstat (limited to 'src/exit')
-rw-r--r-- | src/exit/gnunet-daemon-exit.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/exit/gnunet-daemon-exit.c b/src/exit/gnunet-daemon-exit.c index fc29849b5..f1478d574 100644 --- a/src/exit/gnunet-daemon-exit.c +++ b/src/exit/gnunet-daemon-exit.c | |||
@@ -3778,6 +3778,7 @@ run (void *cls, | |||
3778 | }; | 3778 | }; |
3779 | struct GNUNET_HashCode port; | 3779 | struct GNUNET_HashCode port; |
3780 | char *policy; | 3780 | char *policy; |
3781 | char *helper_path; | ||
3781 | char *binary; | 3782 | char *binary; |
3782 | char *regex; | 3783 | char *regex; |
3783 | char *prefixed_regex; | 3784 | char *prefixed_regex; |
@@ -3797,7 +3798,14 @@ run (void *cls, | |||
3797 | GNUNET_SCHEDULER_shutdown (); | 3798 | GNUNET_SCHEDULER_shutdown (); |
3798 | return; | 3799 | return; |
3799 | } | 3800 | } |
3800 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-helper-exit"); | 3801 | helper_path = NULL; |
3802 | GNUNET_CONFIGURATION_get_value_string (cfg, | ||
3803 | "exit", | ||
3804 | "HELPER_PATH", | ||
3805 | &helper_path); | ||
3806 | binary = GNUNET_OS_get_binary_path ("gnunet-helper-exit", | ||
3807 | helper_path); | ||
3808 | GNUNET_free_non_null (helper_path); | ||
3801 | if (GNUNET_YES != | 3809 | if (GNUNET_YES != |
3802 | GNUNET_OS_check_helper_binary (binary, | 3810 | GNUNET_OS_check_helper_binary (binary, |
3803 | GNUNET_YES, | 3811 | GNUNET_YES, |
@@ -3812,7 +3820,6 @@ run (void *cls, | |||
3812 | global_ret = 1; | 3820 | global_ret = 1; |
3813 | return; | 3821 | return; |
3814 | } | 3822 | } |
3815 | GNUNET_free (binary); | ||
3816 | GNUNET_SCHEDULER_add_shutdown (&cleanup, | 3823 | GNUNET_SCHEDULER_add_shutdown (&cleanup, |
3817 | NULL); | 3824 | NULL); |
3818 | stats = GNUNET_STATISTICS_create ("exit", | 3825 | stats = GNUNET_STATISTICS_create ("exit", |
@@ -3820,6 +3827,7 @@ run (void *cls, | |||
3820 | cadet_handle = GNUNET_CADET_connect (cfg); | 3827 | cadet_handle = GNUNET_CADET_connect (cfg); |
3821 | if (NULL == cadet_handle) | 3828 | if (NULL == cadet_handle) |
3822 | { | 3829 | { |
3830 | GNUNET_free (binary); | ||
3823 | GNUNET_SCHEDULER_shutdown (); | 3831 | GNUNET_SCHEDULER_shutdown (); |
3824 | return; | 3832 | return; |
3825 | } | 3833 | } |
@@ -3827,6 +3835,7 @@ run (void *cls, | |||
3827 | if (GNUNET_OK != | 3835 | if (GNUNET_OK != |
3828 | setup_exit_helper_args ()) | 3836 | setup_exit_helper_args ()) |
3829 | { | 3837 | { |
3838 | GNUNET_free (binary); | ||
3830 | GNUNET_SCHEDULER_shutdown (); | 3839 | GNUNET_SCHEDULER_shutdown (); |
3831 | return; | 3840 | return; |
3832 | } | 3841 | } |
@@ -3923,11 +3932,12 @@ run (void *cls, | |||
3923 | } | 3932 | } |
3924 | } | 3933 | } |
3925 | helper_handle = GNUNET_HELPER_start (GNUNET_NO, | 3934 | helper_handle = GNUNET_HELPER_start (GNUNET_NO, |
3926 | "gnunet-helper-exit", | 3935 | binary, |
3927 | exit_argv, | 3936 | exit_argv, |
3928 | &message_token, | 3937 | &message_token, |
3929 | NULL, | 3938 | NULL, |
3930 | NULL); | 3939 | NULL); |
3940 | GNUNET_free (binary); | ||
3931 | } | 3941 | } |
3932 | 3942 | ||
3933 | 3943 | ||