gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r25135 - gnunet/src/sysmon


From: gnunet
Subject: [GNUnet-SVN] r25135 - gnunet/src/sysmon
Date: Mon, 26 Nov 2012 11:48:21 +0100

Author: wachs
Date: 2012-11-26 11:48:21 +0100 (Mon, 26 Nov 2012)
New Revision: 25135

Modified:
   gnunet/src/sysmon/gnunet-daemon-sysmon.c
Log:
changes


Modified: gnunet/src/sysmon/gnunet-daemon-sysmon.c
===================================================================
--- gnunet/src/sysmon/gnunet-daemon-sysmon.c    2012-11-26 10:26:54 UTC (rev 
25134)
+++ gnunet/src/sysmon/gnunet-daemon-sysmon.c    2012-11-26 10:48:21 UTC (rev 
25135)
@@ -101,6 +101,7 @@
   next = sp_head;
   while (NULL != (sp = next))
   {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping `%s' \n", sp->desc);
       GNUNET_CONTAINER_DLL_remove (sp_head, sp_tail, sp);
       next = sp->next;
       if (GNUNET_SCHEDULER_NO_TASK != sp->task_id)
@@ -108,7 +109,7 @@
         GNUNET_SCHEDULER_cancel (sp->task_id);
         sp->task_id = GNUNET_SCHEDULER_NO_TASK;
       }
-      GNUNET_free_non_null (sp->desc);
+      GNUNET_free (sp->desc);
       GNUNET_free (sp);
   }
 
@@ -162,25 +163,31 @@
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Loading section `%s'\n", section);
 
-  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value(properties, section, 
"TYPE"))
+  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value (properties, section, 
"TYPE"))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Missing value %s in section `%s'\n",
         "TYPE", section);
     return;
   }
-  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value(properties, 
section,"VALUE"))
+  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value (properties, 
section,"VALUE"))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Missing value %s in section `%s'\n",
         "VALUE", section);
     return;
   }
+  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value (properties, 
section,"DESCRIPTION"))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Missing value %s in section `%s'\n",
+        "DESCRIPTION", section);
+    return;
+  }
   sp = GNUNET_malloc (sizeof (struct SysmonProperty));
 
   /* description */
-  GNUNET_CONFIGURATION_get_value_string(properties, section, "DESCRIPTION", 
&sp->desc);
+  GNUNET_CONFIGURATION_get_value_string (properties, section, "DESCRIPTION", 
&sp->desc);
 
   /* type */
-  GNUNET_CONFIGURATION_get_value_string(properties, section, "TYPE", &tmp);
+  GNUNET_CONFIGURATION_get_value_string (properties, section, "TYPE", &tmp);
   to_lower_str (tmp);
   if (0 == strcasecmp(tmp, "static"))
     sp->type = t_static;
@@ -197,7 +204,7 @@
   GNUNET_free (tmp);
 
   /* value */
-  GNUNET_CONFIGURATION_get_value_string(properties, section, "VALUE", &tmp);
+  GNUNET_CONFIGURATION_get_value_string (properties, section, "VALUE", &tmp);
   to_lower_str (tmp);
   if (0 == strcasecmp(tmp, "numeric"))
     sp->value_type = v_numeric;
@@ -214,10 +221,21 @@
   GNUNET_free (tmp);
 
   /* interval */
+  if (GNUNET_NO == GNUNET_CONFIGURATION_have_value (properties, 
section,"INTERVAL"))
+    sp->interval = GNUNET_TIME_UNIT_MINUTES;
+  else
+  {
+    if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_time (properties, 
section, "INTERVAL", &sp->interval))
+    {
+        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+            _("Could not parse execution interval for `%s', set to default 60 
sec.\n"), section);
+        sp->interval = GNUNET_TIME_UNIT_MINUTES;
+    }
+  }
 
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Loaded property `%s': type %u, value 
%u,\n",
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Loaded property `%s': type %u, value 
%u, interval %llu\n",
       (NULL != sp->desc) ? sp->desc: "<undefined>",
-      sp->type, sp->value_type);
+      sp->type, sp->value_type, sp->interval.rel_value);
 
   GNUNET_CONTAINER_DLL_insert (sp_head, sp_tail, sp);
 
@@ -227,10 +245,8 @@
 update_uptime (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct SysmonProperty *sp = cls;
-  sp->task_id = GNUNET_SCHEDULER_NO_TASK;
   sp->num_val ++;
   put_property (sp);
-  sp->task_id = GNUNET_SCHEDULER_add_delayed (sp->interval, sp->task, sp);
 }
 
 static int
@@ -311,6 +327,17 @@
   return GNUNET_OK;
 }
 
+
+static void
+run_property (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct SysmonProperty *sp = cls;
+  sp->task_id = GNUNET_SCHEDULER_NO_TASK;
+  sp->task (cls, tc);
+  sp->task_id = GNUNET_SCHEDULER_add_delayed (sp->interval, &run_property, sp);
+}
+
+
 static int
 run_properties (void)
 {
@@ -331,7 +358,7 @@
             GNUNET_break (0);
           }
           GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Running continous property 
`%s' \n", sp->desc);
-          sp->task_id = GNUNET_SCHEDULER_add_now (&update_uptime, sp);
+          sp->task_id = GNUNET_SCHEDULER_add_now (&run_property, sp);
       }
   }
   return GNUNET_OK;




reply via email to

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