gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r25140 - gnunet/src/sysmon
Date: Mon, 26 Nov 2012 14:56:27 +0100

Author: wachs
Date: 2012-11-26 14:56:27 +0100 (Mon, 26 Nov 2012)
New Revision: 25140

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

Modified: gnunet/src/sysmon/gnunet-daemon-sysmon.c
===================================================================
--- gnunet/src/sysmon/gnunet-daemon-sysmon.c    2012-11-26 13:33:24 UTC (rev 
25139)
+++ gnunet/src/sysmon/gnunet-daemon-sysmon.c    2012-11-26 13:56:27 UTC (rev 
25140)
@@ -27,6 +27,13 @@
 #include "gnunet_util_lib.h"
 #include "gnunet_statistics_service.h"
 
+enum operation
+{
+  o_internal,
+  o_command
+};
+
+
 enum type
 {
   t_static,
@@ -39,26 +46,76 @@
   v_string
 };
 
+/**
+ * A system property to monitor
+ */
 struct SysmonProperty
 {
+  /**
+   * Next element in in the DLL
+   */
   struct SysmonProperty *next;
+
+  /**
+   * Previous element in in the DLL
+   */
   struct SysmonProperty *prev;
 
- char * desc;
- int type;
- int value_type;
- struct GNUNET_TIME_Relative interval;
+  /**
+   * Description used for statistics valuesd
+   */
+  char * desc;
 
- char * cmd;
- char * cmd_args;
- void * cmd_exec_handle;
+  /**
+   * Type
+   */
+  int type;
 
- uint64_t num_val;
- char * str_val;
+  /**
+   * Value type
+   */
+  int value_type;
 
- GNUNET_SCHEDULER_TaskIdentifier task_id;
- GNUNET_SCHEDULER_Task task;
+  /**
+   * Execution interval
+   */
+  struct GNUNET_TIME_Relative interval;
 
+  /**
+   * Command
+   */
+  char * cmd;
+
+  /**
+   * Command arguments
+   */
+  char * cmd_args;
+
+  /**
+   * Command execution handle
+   */
+  void * cmd_exec_handle;
+
+  /**
+   * Numerical value
+   */
+  uint64_t num_val;
+
+  /**
+   * String value
+   */
+  char * str_val;
+
+  /**
+   * Task id
+   */
+  GNUNET_SCHEDULER_TaskIdentifier task_id;
+
+  /**
+   * Task handle
+   */
+  GNUNET_SCHEDULER_Task task;
+
 };
 
 /**
@@ -80,7 +137,6 @@
 /**
  * Shutdown task
  */
-
 GNUNET_SCHEDULER_TaskIdentifier end_task;
 
 struct SysmonProperty *sp_head;
@@ -175,9 +231,25 @@
       return;
   }
 
+  switch (sp->value_type) {
+    case v_numeric:
+      if (1 != sscanf (line, "%lu", &sp->num_val))
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Command output was not a 
numerical value: `%s'\n", line);
+        return;
+      }
+      break;
+    case v_string:
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "NOT IMPLEMENTED\n");
+      break;
+    default:
+      break;
+  }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Property output: `%s'\n", line);
+  put_property (sp);
 
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Property output: `%s'\n", line);
+
 }
 
 static void
@@ -192,16 +264,12 @@
     sp->cmd_exec_handle = NULL;
     GNUNET_break (0);
   }
-
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Trying to exec : `%s'\n", sp->cmd);
   if (NULL == (sp->cmd_exec_handle = GNUNET_OS_command_run (&exec_cmd_proc, sp,
       GNUNET_TIME_UNIT_SECONDS,
       sp->cmd, sp->cmd,
       sp->cmd_args,
       NULL)))
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Property `%s': command `%s' 
failed\n", sp->desc, sp->cmd);
-  else
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Property `%s': command `%s' DONE\n", 
sp->desc, sp->cmd);
 }
 
 static void




reply via email to

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