diff options
author | Omar Tarabai <tarabai@devegypt.com> | 2014-05-05 15:46:28 +0000 |
---|---|---|
committer | Omar Tarabai <tarabai@devegypt.com> | 2014-05-05 15:46:28 +0000 |
commit | 4864f0e9dd779f5a36c798293336e5aab4ad685a (patch) | |
tree | c305d3bbe971eccb0eec80b0416da528979dc435 /src/sensor | |
parent | 8bcdff5d767e60d678a2eff637ae84d71665883e (diff) | |
download | gnunet-4864f0e9dd779f5a36c798293336e5aab4ad685a.tar.gz gnunet-4864f0e9dd779f5a36c798293336e5aab4ad685a.zip |
executing sensor processes OK
Diffstat (limited to 'src/sensor')
-rw-r--r-- | src/sensor/Makefile.am | 4 | ||||
-rw-r--r-- | src/sensor/gnunet-service-sensor.c | 75 | ||||
-rw-r--r-- | src/sensor/sensors/averagepingrtt | 4 | ||||
-rw-r--r-- | src/sensor/sensors/gnunetversion | 4 |
4 files changed, 75 insertions, 12 deletions
diff --git a/src/sensor/Makefile.am b/src/sensor/Makefile.am index fe461d1bc..e3d9bbe69 100644 --- a/src/sensor/Makefile.am +++ b/src/sensor/Makefile.am | |||
@@ -64,7 +64,5 @@ install-data-local: | |||
64 | $(mkinstalldirs) $(datadir)/$(PACKAGE)/$(pkgsensordir) | 64 | $(mkinstalldirs) $(datadir)/$(PACKAGE)/$(pkgsensordir) |
65 | @$(NORMAL_INSTALL) | 65 | @$(NORMAL_INSTALL) |
66 | for sensor in $(pkgsensordir)/*; do \ | 66 | for sensor in $(pkgsensordir)/*; do \ |
67 | if test -f $$sensor; then \ | 67 | cp -a $$sensor $(datadir)/$(PACKAGE)/$(pkgsensordir)/ ; \ |
68 | $(INSTALL_DATA) $$sensor $(datadir)/$(PACKAGE)/$(pkgsensordir)/ ; \ | ||
69 | fi \ | ||
70 | done | 68 | done |
diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c index 7718fafee..b831b2be7 100644 --- a/src/sensor/gnunet-service-sensor.c +++ b/src/sensor/gnunet-service-sensor.c | |||
@@ -777,6 +777,24 @@ void end_sensor_run_stat (void *cls, int success) | |||
777 | } | 777 | } |
778 | 778 | ||
779 | /** | 779 | /** |
780 | * Callback for output of executed sensor process | ||
781 | * | ||
782 | * @param cls 'struct SensorInfo *' | ||
783 | * @param line line of output from a command, NULL for the end | ||
784 | */ | ||
785 | void sensor_process_callback (void *cls, const char *line) | ||
786 | { | ||
787 | struct SensorInfo *sensorinfo = cls; | ||
788 | |||
789 | if(NULL == line) | ||
790 | { | ||
791 | sensorinfo->running = GNUNET_NO; | ||
792 | return; | ||
793 | } | ||
794 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a value for sensor `%s': %s\n", sensorinfo->name, line); | ||
795 | } | ||
796 | |||
797 | /** | ||
780 | * Actual execution of a sensor | 798 | * Actual execution of a sensor |
781 | * | 799 | * |
782 | * @param cls 'struct SensorInfo' | 800 | * @param cls 'struct SensorInfo' |
@@ -788,6 +806,8 @@ sensor_run (void *cls, | |||
788 | { | 806 | { |
789 | struct SensorInfo *sensorinfo = cls; | 807 | struct SensorInfo *sensorinfo = cls; |
790 | int check_result; | 808 | int check_result; |
809 | char *sensors_dir; | ||
810 | char *process_path; | ||
791 | 811 | ||
792 | sensorinfo->execution_task = GNUNET_SCHEDULER_add_delayed(sensorinfo->interval, &sensor_run, sensorinfo); | 812 | sensorinfo->execution_task = GNUNET_SCHEDULER_add_delayed(sensorinfo->interval, &sensor_run, sensorinfo); |
793 | if(GNUNET_YES == sensorinfo->running) //FIXME: should we try to kill? | 813 | if(GNUNET_YES == sensorinfo->running) //FIXME: should we try to kill? |
@@ -815,13 +835,45 @@ sensor_run (void *cls, | |||
815 | } | 835 | } |
816 | else if(sources[1] == sensorinfo->source) | 836 | else if(sources[1] == sensorinfo->source) |
817 | { | 837 | { |
838 | /*GNUNET_OS_start_process_s(GNUNET_NO, | ||
839 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, | ||
840 | NULL, | ||
841 | "touch", | ||
842 | "touch /home/omar/hiii");*/ | ||
843 | /*GNUNET_OS_start_process(GNUNET_NO, | ||
844 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, | ||
845 | NULL, | ||
846 | NULL, | ||
847 | NULL, | ||
848 | "/home/omar/workspace/gnunet/src/sensor/sensors/averagepingrtt-files/avgping.sh", | ||
849 | "avgping.sh", | ||
850 | NULL); | ||
851 | GNUNET_OS_start_process(GNUNET_NO, | ||
852 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, | ||
853 | NULL, | ||
854 | NULL, | ||
855 | NULL, | ||
856 | "whoami", | ||
857 | "whoami", | ||
858 | NULL);*/ | ||
859 | //FIXME: break execution if process is a path | ||
818 | //check if the process exists in $PATH | 860 | //check if the process exists in $PATH |
861 | process_path = GNUNET_strdup(sensorinfo->ext_process); | ||
819 | check_result = | 862 | check_result = |
820 | GNUNET_OS_check_helper_binary(sensorinfo->ext_process, GNUNET_NO, NULL); //search in $PATH | 863 | GNUNET_OS_check_helper_binary(sensorinfo->ext_process, GNUNET_NO, NULL); //search in $PATH |
821 | if(GNUNET_SYSERR == check_result) | 864 | if(GNUNET_SYSERR == check_result) |
822 | { | 865 | { |
823 | //search in sensor directory | 866 | //search in sensor directory |
824 | 867 | sensors_dir = get_sensor_dir(); | |
868 | GNUNET_free(process_path); | ||
869 | GNUNET_asprintf(&process_path, "%s%s-files%s%s", | ||
870 | sensors_dir, | ||
871 | sensorinfo->name, | ||
872 | DIR_SEPARATOR_STR, | ||
873 | sensorinfo->ext_process); | ||
874 | GNUNET_free(sensors_dir); | ||
875 | check_result = | ||
876 | GNUNET_OS_check_helper_binary(process_path, GNUNET_NO, NULL); | ||
825 | } | 877 | } |
826 | if(GNUNET_SYSERR == check_result) | 878 | if(GNUNET_SYSERR == check_result) |
827 | { | 879 | { |
@@ -830,12 +882,25 @@ sensor_run (void *cls, | |||
830 | sensorinfo->ext_process); | 882 | sensorinfo->ext_process); |
831 | //FIXME: disable sensor here? | 883 | //FIXME: disable sensor here? |
832 | sensorinfo->running = GNUNET_NO; | 884 | sensorinfo->running = GNUNET_NO; |
885 | GNUNET_free(process_path); | ||
833 | return; | 886 | return; |
834 | } | 887 | } |
835 | else if(GNUNET_NO == check_result) | 888 | /*GNUNET_OS_start_process(GNUNET_NO, |
836 | { | 889 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, |
837 | 890 | NULL, | |
838 | } | 891 | NULL, |
892 | NULL, | ||
893 | process_path, | ||
894 | sensorinfo->ext_process, | ||
895 | sensorinfo->ext_args, | ||
896 | NULL)*/ | ||
897 | GNUNET_OS_command_run(&sensor_process_callback, | ||
898 | sensorinfo, | ||
899 | GNUNET_TIME_UNIT_FOREVER_REL, | ||
900 | process_path, | ||
901 | sensorinfo->ext_process, | ||
902 | sensorinfo->ext_args, | ||
903 | NULL); | ||
839 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Process started for sensor `%s'\n", sensorinfo->name); | 904 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Process started for sensor `%s'\n", sensorinfo->name); |
840 | } | 905 | } |
841 | else | 906 | else |
diff --git a/src/sensor/sensors/averagepingrtt b/src/sensor/sensors/averagepingrtt index 2012f555e..b8880c696 100644 --- a/src/sensor/sensors/averagepingrtt +++ b/src/sensor/sensors/averagepingrtt | |||
@@ -3,13 +3,13 @@ | |||
3 | VERSION = 1.0 | 3 | VERSION = 1.0 |
4 | DESCRIPTION = Calculate average ping latency to gnunet.org | 4 | DESCRIPTION = Calculate average ping latency to gnunet.org |
5 | CATEGORY = Internet-Connectivity | 5 | CATEGORY = Internet-Connectivity |
6 | ENABLED = NO | 6 | ENABLED = YES |
7 | 7 | ||
8 | # Start and end time format: %Y-%m-%d %H:%M:%S | 8 | # Start and end time format: %Y-%m-%d %H:%M:%S |
9 | #START_TIME = | 9 | #START_TIME = |
10 | #END_TIME = | 10 | #END_TIME = |
11 | #Interval in seconds | 11 | #Interval in seconds |
12 | INTERVAL = 3600 | 12 | INTERVAL = 30 |
13 | #LIFETIME = | 13 | #LIFETIME = |
14 | 14 | ||
15 | #CAPABILITIES = | 15 | #CAPABILITIES = |
diff --git a/src/sensor/sensors/gnunetversion b/src/sensor/sensors/gnunetversion index deb0e5f2d..dd213b605 100644 --- a/src/sensor/sensors/gnunetversion +++ b/src/sensor/sensors/gnunetversion | |||
@@ -9,8 +9,8 @@ ENABLED = YES | |||
9 | #START_TIME = | 9 | #START_TIME = |
10 | #END_TIME = | 10 | #END_TIME = |
11 | #Interval in seconds | 11 | #Interval in seconds |
12 | INTERVAL = 86400 | 12 | INTERVAL = 30 |
13 | LIFETIME = 86400 | 13 | LIFETIME = 30 |
14 | 14 | ||
15 | #CAPABILITIES = | 15 | #CAPABILITIES = |
16 | 16 | ||