gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r34122 - in gnunet/src: include sensor sensordashboard


From: gnunet
Subject: [GNUnet-SVN] r34122 - in gnunet/src: include sensor sensordashboard
Date: Thu, 7 Aug 2014 14:03:36 +0200

Author: otarabai
Date: 2014-08-07 14:03:36 +0200 (Thu, 07 Aug 2014)
New Revision: 34122

Modified:
   gnunet/src/include/gnunet_sensor_util_lib.h
   gnunet/src/sensor/gnunet-service-sensor.c
   gnunet/src/sensor/gnunet-service-sensor_update.c
   gnunet/src/sensor/sensor.conf.in
   gnunet/src/sensor/sensor_util_lib.c
   gnunet/src/sensordashboard/gnunet-service-sensordashboard.c
Log:
minor fix


Modified: gnunet/src/include/gnunet_sensor_util_lib.h
===================================================================
--- gnunet/src/include/gnunet_sensor_util_lib.h 2014-08-07 11:59:05 UTC (rev 
34121)
+++ gnunet/src/include/gnunet_sensor_util_lib.h 2014-08-07 12:03:36 UTC (rev 
34122)
@@ -351,21 +351,23 @@
 
 
 /**
- * Reads sensor definitions from local data files
+ * Reads sensor definitions from given sensor directory.
  *
+ * @param sensordir Path to sensor directory.
  * @return a multihashmap of loaded sensors
  */
 struct GNUNET_CONTAINER_MultiHashMap *
-GNUNET_SENSOR_load_all_sensors ();
+GNUNET_SENSOR_load_all_sensors (char *sensor_dir);
 
 
-/*
- * Get path to the directory containing the sensor definition files
+/**
+ * Get path to the default directory containing the sensor definition files 
with
+ * a trailing directory separator.
  *
- * @return sensor files directory string
+ * @return Default sensor files directory full path
  */
 char *
-GNUNET_SENSOR_get_sensor_dir ();
+GNUNET_SENSOR_get_default_sensor_dir ();
 
 
 /**

Modified: gnunet/src/sensor/gnunet-service-sensor.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor.c   2014-08-07 11:59:05 UTC (rev 
34121)
+++ gnunet/src/sensor/gnunet-service-sensor.c   2014-08-07 12:03:36 UTC (rev 
34122)
@@ -36,6 +36,11 @@
 static const struct GNUNET_CONFIGURATION_Handle *cfg;
 
 /**
+ * Path to sensor definitions directory
+ */
+static char *sensor_dir;
+
+/**
  * Hashmap of loaded sensor definitions
  */
 static struct GNUNET_CONTAINER_MultiHashMap *sensors;
@@ -123,6 +128,11 @@
     GNUNET_PEERSTORE_disconnect (peerstore, GNUNET_YES);
     peerstore = NULL;
   }
+  if (NULL != sensor_dir)
+  {
+    GNUNET_free (sensor_dir);
+    sensor_dir = NULL;
+  }
   GNUNET_SCHEDULER_shutdown ();
 }
 
@@ -479,7 +489,6 @@
 {
   struct GNUNET_SENSOR_SensorInfo *sensorinfo = cls;
   int check_result;
-  char *sensors_dir;
   char *process_path;
 
   sensorinfo->execution_task =
@@ -522,12 +531,11 @@
     if (GNUNET_SYSERR == check_result)
     {
       //search in sensor directory
-      sensors_dir = GNUNET_SENSOR_get_sensor_dir ();
       GNUNET_free (process_path);
-      GNUNET_asprintf (&process_path, "%s%s-files%s%s", sensors_dir,
+      GNUNET_asprintf (&process_path, "%s%s-files%s%s", sensor_dir,
                        sensorinfo->name, DIR_SEPARATOR_STR,
                        sensorinfo->ext_process);
-      GNUNET_free (sensors_dir);
+      GNUNET_free (sensor_dir);
       check_result =
           GNUNET_OS_check_helper_binary (process_path, GNUNET_NO, NULL);
     }
@@ -611,7 +619,7 @@
 static void
 start ()
 {
-  sensors = GNUNET_SENSOR_load_all_sensors ();
+  sensors = GNUNET_SENSOR_load_all_sensors (sensor_dir);
   schedule_all_sensors ();
   SENSOR_reporting_value_start (cfg, sensors);
   SENSOR_reporting_anomaly_start (cfg, sensors);
@@ -640,6 +648,10 @@
   };
 
   cfg = c;
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_filename (cfg, "SENSOR", "SENSOR_DIR",
+                                               &sensor_dir))
+    sensor_dir = GNUNET_SENSOR_get_default_sensor_dir ();
   statistics = GNUNET_STATISTICS_create ("sensor", cfg);
   GNUNET_CRYPTO_get_peer_identity (cfg, &peerid);
   peerstore = GNUNET_PEERSTORE_connect (cfg);

Modified: gnunet/src/sensor/gnunet-service-sensor_update.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor_update.c    2014-08-07 11:59:05 UTC 
(rev 34121)
+++ gnunet/src/sensor/gnunet-service-sensor_update.c    2014-08-07 12:03:36 UTC 
(rev 34122)
@@ -131,6 +131,11 @@
 static const struct GNUNET_CONFIGURATION_Handle *cfg;
 
 /**
+ * Path to sensor definition directory
+ */
+static char *sensor_dir;
+
+/**
  * Hashmap of known sensors
  */
 static struct GNUNET_CONTAINER_MultiHashMap *sensors;
@@ -249,6 +254,11 @@
     GNUNET_CADET_disconnect (cadet);
     cadet = NULL;
   }
+  if (NULL != sensor_dir)
+  {
+    GNUNET_free (sensor_dir);
+    sensor_dir = NULL;
+  }
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Sensor update module stopped.\n");
 }
 
@@ -427,7 +437,7 @@
  * Function that reads and validates (correctness not connectivity) of 
available
  * sensor update points.
  *
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure
+ * @return number of update points loaded successfully
  */
 static int
 load_update_points ()
@@ -439,14 +449,13 @@
   int len;
   struct GNUNET_CRYPTO_EddsaPublicKey public_key;
   struct UpdatePoint *up;
+  int count = 0;
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg, "sensor", "UPDATE_POINTS",
                                              &points_list))
   {
-    GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "sensor",
-                               "UPDATE_POINTS");
-    return GNUNET_SYSERR;
+    return 0;
   }
   points_list_len = strlen (points_list) + 1;
   for (i = 0; i < points_list_len; i++)
@@ -478,11 +487,12 @@
     up->expected_sensor_updates = 0;
     up->failed = GNUNET_NO;
     GNUNET_CONTAINER_DLL_insert (up_head, up_tail, up);
+    count++;
     LOG (GNUNET_ERROR_TYPE_DEBUG, "Loaded update point `%s'.\n",
          GNUNET_i2s_full (&up->peer_id));
   }
   GNUNET_free (points_list);
-  return (NULL == up_head) ? GNUNET_SYSERR : GNUNET_OK;
+  return count;
 }
 
 
@@ -598,7 +608,6 @@
 update_sensor (char *sensorname, void *sensorfile, uint16_t sensorfile_size,
                char *scriptname, void *scriptfile, uint16_t scriptfile_size)
 {
-  char *sensors_dir;
   char *sensor_path;
   char *script_path;
 
@@ -607,8 +616,7 @@
        "Sensor file size: %d\n" "Script name: %s\n" "Script file size: %d.\n",
        sensorname, sensorfile_size, (NULL == scriptname) ? "None" : scriptname,
        scriptfile_size);
-  sensors_dir = GNUNET_SENSOR_get_sensor_dir ();
-  GNUNET_asprintf (&sensor_path, "%s%s", sensors_dir, sensorname);
+  GNUNET_asprintf (&sensor_path, "%s%s", sensor_dir, sensorname);
   GNUNET_DISK_fn_write (sensor_path, sensorfile, sensorfile_size,
                         GNUNET_DISK_PERM_USER_READ | 
GNUNET_DISK_PERM_GROUP_READ
                         | GNUNET_DISK_PERM_OTHER_READ |
@@ -627,7 +635,6 @@
                           GNUNET_DISK_PERM_GROUP_EXEC);
     GNUNET_free (script_path);
   }
-  GNUNET_free (sensors_dir);
   GNUNET_free (sensor_path);
   return GNUNET_OK;
 }
@@ -756,11 +763,16 @@
     {&handle_sensor_full, GNUNET_MESSAGE_TYPE_SENSOR_FULL, 0},
     {NULL, 0, 0}
   };
+  int up_count;
 
   GNUNET_assert (NULL != s);
   cfg = c;
   sensors = s;
   reset_cb = cb;
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_filename (cfg, "SENSOR", "SENSOR_DIR",
+                                               &sensor_dir))
+    sensor_dir = GNUNET_SENSOR_get_default_sensor_dir ();
   cadet =
       GNUNET_CADET_connect (cfg, NULL, NULL, &cadet_channel_destroyed,
                             cadet_handlers, NULL);
@@ -770,9 +782,10 @@
     SENSOR_update_stop ();
     return GNUNET_SYSERR;
   }
-  if (GNUNET_OK != load_update_points ())
+  up_count = load_update_points ();
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Loaded %d update points.\n", up_count);
+  if (0 == up_count)
   {
-    LOG (GNUNET_ERROR_TYPE_ERROR, "Failed to load update points.\n");
     SENSOR_update_stop ();
     return GNUNET_SYSERR;
   }

Modified: gnunet/src/sensor/sensor.conf.in
===================================================================
--- gnunet/src/sensor/sensor.conf.in    2014-08-07 11:59:05 UTC (rev 34121)
+++ gnunet/src/sensor/sensor.conf.in    2014-08-07 12:03:36 UTC (rev 34122)
@@ -5,8 +5,12 @@
 UNIX_MATCH_UID = NO
 UNIX_MATCH_GID = YES
 
+# Path to directory containing sensor definitions.
+# If not set, will load from default location.
+#SENSOR_DIR = 
+
 # Space separated list of trusted peers running update points
-#UPDATE_POINTS = NCEKA096482PC84GFTG61EHAVXY3BQDTPB5FANATQD5CDADJ2HP0
+UPDATE_POINTS = 
 
 [sensor-analysis]
 MODEL = gaussian

Modified: gnunet/src/sensor/sensor_util_lib.c
===================================================================
--- gnunet/src/sensor/sensor_util_lib.c 2014-08-07 11:59:05 UTC (rev 34121)
+++ gnunet/src/sensor/sensor_util_lib.c 2014-08-07 12:03:36 UTC (rev 34122)
@@ -290,7 +290,6 @@
   sensor->execution_task = GNUNET_SCHEDULER_NO_TASK;
   //running
   sensor->running = GNUNET_NO;
-
   return sensor;
 }
 
@@ -434,14 +433,14 @@
 }
 
 
-/*
- * Get path to the directory containing the sensor definition files with a
- * trailing directory separator.
+/**
+ * Get path to the default directory containing the sensor definition files 
with
+ * a trailing directory separator.
  *
- * @return sensor files directory full path
+ * @return Default sensor files directory full path
  */
 char *
-GNUNET_SENSOR_get_sensor_dir ()
+GNUNET_SENSOR_get_default_sensor_dir ()
 {
   char *datadir;
   char *sensordir;
@@ -454,27 +453,26 @@
 
 
 /**
- * Reads sensor definitions from local data files
+ * Reads sensor definitions from given sensor directory.
  *
+ * @param sensordir Path to sensor directory.
  * @return a multihashmap of loaded sensors
  */
 struct GNUNET_CONTAINER_MultiHashMap *
-GNUNET_SENSOR_load_all_sensors ()
+GNUNET_SENSOR_load_all_sensors (char *sensor_dir)
 {
-  char *sensordir;
   struct GNUNET_CONTAINER_MultiHashMap *sensors;
 
+  GNUNET_assert (NULL != sensor_dir);
   sensors = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO);
-  sensordir = GNUNET_SENSOR_get_sensor_dir ();
   LOG (GNUNET_ERROR_TYPE_INFO,
-       "Loading sensor definitions from directory `%s'\n", sensordir);
+       "Loading sensor definitions from directory `%s'\n", sensor_dir);
   GNUNET_assert (GNUNET_YES ==
-                 GNUNET_DISK_directory_test (sensordir, GNUNET_YES));
+                 GNUNET_DISK_directory_test (sensor_dir, GNUNET_YES));
   /* read all files in sensors directory */
-  GNUNET_DISK_directory_scan (sensordir, &reload_sensors_dir_cb, sensors);
+  GNUNET_DISK_directory_scan (sensor_dir, &reload_sensors_dir_cb, sensors);
   LOG (GNUNET_ERROR_TYPE_INFO, "Loaded %d sensors from directory `%s'\n",
-       GNUNET_CONTAINER_multihashmap_size (sensors), sensordir);
-  GNUNET_free (sensordir);
+       GNUNET_CONTAINER_multihashmap_size (sensors), sensor_dir);
   return sensors;
 }
 

Modified: gnunet/src/sensordashboard/gnunet-service-sensordashboard.c
===================================================================
--- gnunet/src/sensordashboard/gnunet-service-sensordashboard.c 2014-08-07 
11:59:05 UTC (rev 34121)
+++ gnunet/src/sensordashboard/gnunet-service-sensordashboard.c 2014-08-07 
12:03:36 UTC (rev 34122)
@@ -134,6 +134,11 @@
 
 
 /**
+ * Path to sensor definition directory
+ */
+static char *sensor_dir;
+
+/**
  * Global hashmap of defined sensors
  */
 static struct GNUNET_CONTAINER_MultiHashMap *sensors;
@@ -235,6 +240,11 @@
     peerstore = NULL;
   }
   GNUNET_SENSOR_destroy_sensors (sensors);
+  if (NULL != sensor_dir)
+  {
+    GNUNET_free (sensor_dir);
+    sensor_dir = NULL;
+  }
   GNUNET_SCHEDULER_shutdown ();
 }
 
@@ -584,7 +594,6 @@
   struct GNUNET_HashCode key;
   struct GNUNET_SENSOR_SensorInfo *sensor;
   struct GNUNET_SENSOR_SensorFullMessage *msg;
-  char *sensor_dir;
   char *sensor_path;
   char *sensorscript_path;
   uint64_t sensorname_size;
@@ -598,7 +607,6 @@
   sensor = GNUNET_CONTAINER_multihashmap_get (sensors, &key);
   if (NULL == sensor)
     return NULL;
-  sensor_dir = GNUNET_SENSOR_get_sensor_dir ();
   GNUNET_asprintf (&sensor_path, "%s%s", sensor_dir, sensorname);
   if (GNUNET_OK !=
       GNUNET_DISK_file_size (sensor_path, &sensorfile_size, GNUNET_NO,
@@ -646,7 +654,6 @@
     GNUNET_DISK_fn_read (sensorscript_path, dummy, sensorscript_size);
     GNUNET_free (sensorscript_path);
   }
-  GNUNET_free (sensor_dir);
   GNUNET_free (sensor_path);
   return msg;
 }
@@ -739,7 +746,12 @@
     GNUNET_APPLICATION_TYPE_SENSORUPDATE,
     GNUNET_APPLICATION_TYPE_END
   };
-  sensors = GNUNET_SENSOR_load_all_sensors ();
+
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_filename (cfg, "SENSOR", "SENSOR_DIR",
+                                               &sensor_dir))
+    sensor_dir = GNUNET_SENSOR_get_default_sensor_dir ();
+  sensors = GNUNET_SENSOR_load_all_sensors (sensor_dir);
   GNUNET_assert (NULL != sensors);
   cadet =
       GNUNET_CADET_connect (cfg, NULL, &cadet_channel_created,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]