aboutsummaryrefslogtreecommitdiff
path: root/src/sensor
diff options
context:
space:
mode:
authorOmar Tarabai <tarabai@devegypt.com>2014-05-28 12:12:10 +0000
committerOmar Tarabai <tarabai@devegypt.com>2014-05-28 12:12:10 +0000
commit6ea5ae5699ccc2db2f9d294d88fb4cb5aa60f640 (patch)
tree8675413d8142e3ca0343376d29c361ebdbf350ed /src/sensor
parente7356fa5d53b2047a1b087fa61ccf15198aeb0bc (diff)
downloadgnunet-6ea5ae5699ccc2db2f9d294d88fb4cb5aa60f640.tar.gz
gnunet-6ea5ae5699ccc2db2f9d294d88fb4cb5aa60f640.zip
few fixes
Diffstat (limited to 'src/sensor')
-rw-r--r--src/sensor/gnunet-service-sensor.c30
-rw-r--r--src/sensor/test_sensor_api.c2
2 files changed, 12 insertions, 20 deletions
diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c
index 36f0529dc..07e0ef1f7 100644
--- a/src/sensor/gnunet-service-sensor.c
+++ b/src/sensor/gnunet-service-sensor.c
@@ -29,8 +29,6 @@
29#include "sensor.h" 29#include "sensor.h"
30#include "gnunet_statistics_service.h" 30#include "gnunet_statistics_service.h"
31 31
32//TODO: GNUNET_SERVER_receive_done() ?
33
34/** 32/**
35 * Minimum sensor execution interval (in seconds) 33 * Minimum sensor execution interval (in seconds)
36 */ 34 */
@@ -194,8 +192,6 @@ static const char *datatypes[] = { "uint64", "double", "string", NULL };
194 */ 192 */
195struct GNUNET_STATISTICS_Handle *statistics; 193struct GNUNET_STATISTICS_Handle *statistics;
196 194
197//TODO: logging macro that includes sensor info
198
199/** 195/**
200 * Remove sensor execution from scheduler 196 * Remove sensor execution from scheduler
201 * 197 *
@@ -206,7 +202,7 @@ struct GNUNET_STATISTICS_Handle *statistics;
206 * iterate, 202 * iterate,
207 * #GNUNET_NO if not. 203 * #GNUNET_NO if not.
208 */ 204 */
209int unschedule_sensor(void *cls, 205int destroy_sensor(void *cls,
210 const struct GNUNET_HashCode *key, void *value) 206 const struct GNUNET_HashCode *key, void *value)
211{ 207{
212 struct SensorInfo *sensorinfo = value; 208 struct SensorInfo *sensorinfo = value;
@@ -222,6 +218,7 @@ int unschedule_sensor(void *cls,
222 GNUNET_SCHEDULER_cancel(sensorinfo->execution_task); 218 GNUNET_SCHEDULER_cancel(sensorinfo->execution_task);
223 sensorinfo->execution_task = GNUNET_SCHEDULER_NO_TASK; 219 sensorinfo->execution_task = GNUNET_SCHEDULER_NO_TASK;
224 } 220 }
221 GNUNET_free(sensorinfo);
225 return GNUNET_YES; 222 return GNUNET_YES;
226} 223}
227 224
@@ -235,11 +232,10 @@ static void
235shutdown_task (void *cls, 232shutdown_task (void *cls,
236 const struct GNUNET_SCHEDULER_TaskContext *tc) 233 const struct GNUNET_SCHEDULER_TaskContext *tc)
237{ 234{
238 GNUNET_CONTAINER_multihashmap_iterate(sensors, &unschedule_sensor, NULL); 235 GNUNET_CONTAINER_multihashmap_iterate(sensors, &destroy_sensor, NULL);
239 /* Free sensor information */ 236 GNUNET_CONTAINER_multihashmap_destroy(sensors);
240 if(NULL != statistics) 237 if(NULL != statistics)
241 GNUNET_STATISTICS_destroy(statistics, GNUNET_YES); 238 GNUNET_STATISTICS_destroy(statistics, GNUNET_YES);
242 /* Destroy sensor hashmap */
243 GNUNET_SCHEDULER_shutdown(); 239 GNUNET_SCHEDULER_shutdown();
244} 240}
245 241
@@ -371,12 +367,10 @@ load_sensor_from_cfg(struct GNUNET_CONFIGURATION_Handle *cfg, const char *sectio
371 return NULL; 367 return NULL;
372 } 368 }
373 sensor->interval = GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, time_sec); 369 sensor->interval = GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, time_sec);
374 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Interval loaded: %" PRIu64 "\n", sensor->interval.rel_value_us);
375 //lifetime 370 //lifetime
376 if(GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cfg, sectionname, "LIFETIME", &time_sec)) 371 if(GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cfg, sectionname, "LIFETIME", &time_sec))
377 { 372 {
378 sensor->lifetime = GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, time_sec); 373 sensor->lifetime = GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, time_sec);
379 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Lifetime loaded: %" PRIu64 "\n", sensor->lifetime.rel_value_us);
380 } 374 }
381 else 375 else
382 sensor->lifetime = GNUNET_TIME_UNIT_FOREVER_REL; 376 sensor->lifetime = GNUNET_TIME_UNIT_FOREVER_REL;
@@ -527,15 +521,15 @@ add_sensor_to_hashmap(struct SensorInfo *sensor, struct GNUNET_CONTAINER_MultiHa
527 * 521 *
528 * @param cls closure 522 * @param cls closure
529 * @param filename complete filename (absolute path) 523 * @param filename complete filename (absolute path)
530 * @return #GNUNET_OK to continue to iterate, 524 * @return #GNUNET_OK to continue to iterate
531 * #GNUNET_NO to stop iteration with no error,
532 * #GNUNET_SYSERR to abort iteration with error!
533 */ 525 */
534static int 526static int
535reload_sensors_dir_cb(void *cls, const char *filename) 527reload_sensors_dir_cb(void *cls, const char *filename)
536{ 528{
537 struct SensorInfo *sensor; 529 struct SensorInfo *sensor;
538 530
531 if(GNUNET_YES != GNUNET_DISK_file_test(filename))
532 return GNUNET_OK;
539 sensor = load_sensor_from_file(filename); 533 sensor = load_sensor_from_file(filename);
540 if(NULL == sensor) 534 if(NULL == sensor)
541 { 535 {
@@ -576,16 +570,15 @@ static void
576reload_sensors() 570reload_sensors()
577{ 571{
578 char* sensordir; 572 char* sensordir;
579 int filesfound;
580 573
581 sensordir = get_sensor_dir(); 574 sensordir = get_sensor_dir();
582 GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Reloading sensor definitions from directory `%s'\n"), sensordir); 575 GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Reloading sensor definitions from directory `%s'\n"), sensordir);
583 GNUNET_assert(GNUNET_YES == GNUNET_DISK_directory_test(sensordir, GNUNET_YES)); 576 GNUNET_assert(GNUNET_YES == GNUNET_DISK_directory_test(sensordir, GNUNET_YES));
584 577
585 //read all files in sensors directory 578 //read all files in sensors directory
586 filesfound = GNUNET_DISK_directory_scan(sensordir, &reload_sensors_dir_cb, NULL); 579 GNUNET_DISK_directory_scan(sensordir, &reload_sensors_dir_cb, NULL);
587 GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Loaded %d/%d sensors from directory `%s'\n"), 580 GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Loaded %d sensors from directory `%s'\n"),
588 GNUNET_CONTAINER_multihashmap_size(sensors), filesfound, sensordir); 581 GNUNET_CONTAINER_multihashmap_size(sensors), sensordir);
589} 582}
590 583
591/** 584/**
@@ -607,8 +600,7 @@ create_sensor_info_msg(struct SensorInfo *sensor)
607 if(NULL == sensor->description) 600 if(NULL == sensor->description)
608 desc_len = 0; 601 desc_len = 0;
609 else 602 else
610 /* FIXME strlen + 1 */ 603 desc_len = strlen(sensor->description) + 1;
611 desc_len = strlen(sensor->description);
612 len = 0; 604 len = 0;
613 len += sizeof(struct SensorInfoMessage); 605 len += sizeof(struct SensorInfoMessage);
614 len += name_len; 606 len += name_len;
diff --git a/src/sensor/test_sensor_api.c b/src/sensor/test_sensor_api.c
index b7ebf8ff6..319360bfc 100644
--- a/src/sensor/test_sensor_api.c
+++ b/src/sensor/test_sensor_api.c
@@ -25,7 +25,7 @@
25#include "gnunet_util_lib.h" 25#include "gnunet_util_lib.h"
26#include "gnunet_sensor_service.h" 26#include "gnunet_sensor_service.h"
27 27
28 28//FIXME:
29static int ok = 1; 29static int ok = 1;
30 30
31 31