[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33154 - gnunet/src/sensor
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33154 - gnunet/src/sensor |
Date: |
Fri, 2 May 2014 17:28:44 +0200 |
Author: otarabai
Date: 2014-05-02 17:28:43 +0200 (Fri, 02 May 2014)
New Revision: 33154
Modified:
gnunet/src/sensor/gnunet-sensor.c
gnunet/src/sensor/gnunet-service-sensor.c
Log:
getting single sensor information
Modified: gnunet/src/sensor/gnunet-sensor.c
===================================================================
--- gnunet/src/sensor/gnunet-sensor.c 2014-05-02 14:42:03 UTC (rev 33153)
+++ gnunet/src/sensor/gnunet-sensor.c 2014-05-02 15:28:43 UTC (rev 33154)
@@ -29,11 +29,16 @@
static int ret;
-/*
+/**
* option '-a'
*/
static int get_all;
+/**
+ * option '-g'
+ */
+static char *get_sensor;
+
/*
* Handle to sensor service
*/
@@ -106,10 +111,10 @@
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
&shutdown_task,
NULL);
+ sensor_handle = GNUNET_SENSOR_connect(cfg);
+ GNUNET_assert(NULL != sensor_handle);
if(GNUNET_YES == get_all)
{
- sensor_handle = GNUNET_SENSOR_connect(cfg);
- GNUNET_assert(NULL != sensor_handle);
GNUNET_SENSOR_iterate_sensors(sensor_handle,
GNUNET_TIME_UNIT_FOREVER_REL,
NULL,
@@ -117,6 +122,15 @@
&print_sensor_info,
NULL);
}
+ else if(NULL != get_sensor)
+ {
+ GNUNET_SENSOR_iterate_sensors(sensor_handle,
+ GNUNET_TIME_UNIT_FOREVER_REL,
+ get_sensor,
+ strlen(get_sensor),
+ &print_sensor_info,
+ NULL);
+ }
ret = 0;
}
@@ -133,8 +147,11 @@
{
static const struct GNUNET_GETOPT_CommandLineOption options[] = {
{'a', "all", NULL,
- gettext_noop("Retrieve names of all defined sensors"),
+ gettext_noop("Retrieve information about all defined sensors"),
0, &GNUNET_GETOPT_set_one, &get_all},
+ {'g', "get-sensor", NULL,
+ gettext_noop("Retrieve information about a single sensor"),
+ 1, &GNUNET_GETOPT_set_string, &get_sensor},
GNUNET_GETOPT_OPTION_END
};
return (GNUNET_OK ==
Modified: gnunet/src/sensor/gnunet-service-sensor.c
===================================================================
--- gnunet/src/sensor/gnunet-service-sensor.c 2014-05-02 14:42:03 UTC (rev
33153)
+++ gnunet/src/sensor/gnunet-service-sensor.c 2014-05-02 15:28:43 UTC (rev
33154)
@@ -320,7 +320,7 @@
struct GNUNET_HashCode key;
struct SensorInfo *existing;
- GNUNET_CRYPTO_hash(sensor->name, sizeof(sensor->name), &key);
+ GNUNET_CRYPTO_hash(sensor->name, strlen(sensor->name), &key);
existing = GNUNET_CONTAINER_multihashmap_get(map, &key);
if(NULL != existing) //sensor with same name already exists
{
@@ -472,17 +472,24 @@
struct SensorInfoMessage *msg;
sensorname = (char *)&message[1];
- sensorname_len = message->size - sizeof(struct GNUNET_MessageHeader);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "`%s' message received for sensor
`%.*s\n",
- "GET SENSOR", sensorname_len, sensorname);
+ sensorname_len = ntohs(message->size) - sizeof(struct GNUNET_MessageHeader);
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO, "`%s' message received for sensor (%d)
`%.*s'\n",
+ "GET SENSOR", sensorname_len, sensorname_len, sensorname);
tc = GNUNET_SERVER_transmit_context_create (client);
GNUNET_CRYPTO_hash(sensorname, sensorname_len, &key);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created key hash for requested
sensor\n");
sensorinfo = (struct SensorInfo *)GNUNET_CONTAINER_multihashmap_get(sensors,
&key);
- msg = create_sensor_info_msg(sensorinfo);
- GNUNET_SERVER_transmit_context_append_message(tc, (struct
GNUNET_MessageHeader *)msg);
+ if(NULL != sensorinfo)
+ {
+ msg = create_sensor_info_msg(sensorinfo);
+ GNUNET_SERVER_transmit_context_append_message(tc, (struct
GNUNET_MessageHeader *)msg);
+ GNUNET_free(msg);
+ }
+ else
+ GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Requested sensor `%.*s' was not
found\n",
+ sensorname_len, sensorname);
+ GNUNET_SERVER_transmit_context_append_data(tc, NULL, 0,
GNUNET_MESSAGE_TYPE_SENSOR_END);
GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL);
-
- GNUNET_free(msg);
}
/**
@@ -542,9 +549,9 @@
{
static const struct GNUNET_SERVER_MessageHandler handlers[] = {
{&handle_get_sensor, NULL, GNUNET_MESSAGE_TYPE_SENSOR_GET,
+ 0},
+ {&handle_get_all_sensors, NULL, GNUNET_MESSAGE_TYPE_SENSOR_GETALL,
sizeof (struct GNUNET_MessageHeader)},
- {&handle_get_all_sensors, NULL, GNUNET_MESSAGE_TYPE_SENSOR_GETALL,
- 0},
{NULL, NULL, 0, 0}
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33154 - gnunet/src/sensor,
gnunet <=