Addes writerel command.
[crypto.git] / apps / silcmap / silcmap_command.c
index 9ba1df67a4fb24e510acc8e4a20cccd874f13dd1..2fcecaee35aece0b53efe60674bba4dc2ed6e8d3 100644 (file)
@@ -28,6 +28,7 @@ SILC_CONFIG_CALLBACK(silc_map_cmd_loadmap);
 SILC_CONFIG_CALLBACK(silc_map_cmd_writemap);
 SILC_CONFIG_CALLBACK(silc_map_cmd_writemaphtml);
 SILC_CONFIG_CALLBACK(silc_map_cmd_writehtml);
+SILC_CONFIG_CALLBACK(silc_map_cmd_writerel);
 SILC_CONFIG_CALLBACK(silc_map_cmd_cut);
 SILC_CONFIG_CALLBACK(silc_map_cmd_rectangle);
 SILC_CONFIG_CALLBACK(silc_map_cmd_circle);
@@ -37,11 +38,13 @@ SILC_CONFIG_CALLBACK(silc_map_cmd_text);
 static const SilcConfigTable silc_map_table_loadmap[] =
 {
   { "filename", SILC_CONFIG_ARG_STR, silc_map_cmd_loadmap, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_writemap[] =
 {
   { "filename", SILC_CONFIG_ARG_STR, silc_map_cmd_writemap, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_writemaphtml[] =
@@ -50,12 +53,21 @@ static const SilcConfigTable silc_map_table_writemaphtml[] =
   { "image", SILC_CONFIG_ARG_STR, silc_map_cmd_writemaphtml, NULL },
   { "cut_lat", SILC_CONFIG_ARG_STRE, silc_map_cmd_writemaphtml, NULL },
   { "cut_lon", SILC_CONFIG_ARG_STRE, silc_map_cmd_writemaphtml, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_writehtml[] =
 {
   { "filename", SILC_CONFIG_ARG_STR, silc_map_cmd_writehtml, NULL },
   { "class", SILC_CONFIG_ARG_STRE, silc_map_cmd_writehtml, NULL },
+  { NULL },
+};
+
+static const SilcConfigTable silc_map_table_writerel[] =
+{
+  { "filename", SILC_CONFIG_ARG_STR, silc_map_cmd_writerel, NULL },
+  { "class", SILC_CONFIG_ARG_STRE, silc_map_cmd_writerel, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_cut[] =
@@ -65,6 +77,7 @@ static const SilcConfigTable silc_map_table_cut[] =
   { "width", SILC_CONFIG_ARG_INT, silc_map_cmd_cut, NULL },
   { "height", SILC_CONFIG_ARG_INT, silc_map_cmd_cut, NULL },
   { "filename", SILC_CONFIG_ARG_STR, silc_map_cmd_cut, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_rectangle[] =
@@ -76,6 +89,7 @@ static const SilcConfigTable silc_map_table_rectangle[] =
   { "lposx", SILC_CONFIG_ARG_INT, silc_map_cmd_rectangle, NULL },
   { "lposy", SILC_CONFIG_ARG_INT, silc_map_cmd_rectangle, NULL },
   { "lcolor", SILC_CONFIG_ARG_STR, silc_map_cmd_rectangle, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_circle[] =
@@ -87,6 +101,7 @@ static const SilcConfigTable silc_map_table_circle[] =
   { "lposx", SILC_CONFIG_ARG_INT, silc_map_cmd_circle, NULL },
   { "lposy", SILC_CONFIG_ARG_INT, silc_map_cmd_circle, NULL },
   { "lcolor", SILC_CONFIG_ARG_STR, silc_map_cmd_circle, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_line[] =
@@ -97,6 +112,7 @@ static const SilcConfigTable silc_map_table_line[] =
   { "b_lon", SILC_CONFIG_ARG_STR, silc_map_cmd_line, NULL },
   { "width", SILC_CONFIG_ARG_STR, silc_map_cmd_line, NULL },
   { "color", SILC_CONFIG_ARG_STR, silc_map_cmd_line, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_text[] =
@@ -105,6 +121,7 @@ static const SilcConfigTable silc_map_table_text[] =
   { "lon", SILC_CONFIG_ARG_STR, silc_map_cmd_text, NULL },
   { "color", SILC_CONFIG_ARG_STR, silc_map_cmd_text, NULL },
   { "text", SILC_CONFIG_ARG_STR, silc_map_cmd_text, NULL },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_server[] =
@@ -159,6 +176,7 @@ static const SilcConfigTable silc_map_table_server[] =
     silc_map_cmd_line, silc_map_table_line },
   { "text", SILC_CONFIG_ARG_BLOCK,
     silc_map_cmd_text, silc_map_table_text },
+  { NULL },
 };
 
 static const SilcConfigTable silc_map_table_main[] =
@@ -173,6 +191,8 @@ static const SilcConfigTable silc_map_table_main[] =
     silc_map_cmd_writemaphtml, silc_map_table_writemaphtml },
   { "writehtml", SILC_CONFIG_ARG_BLOCK,
     silc_map_cmd_writehtml, silc_map_table_writehtml },
+  { "writerel", SILC_CONFIG_ARG_BLOCK,
+    silc_map_cmd_writerel, silc_map_table_writerel },
   { "cut", SILC_CONFIG_ARG_BLOCK,
     silc_map_cmd_cut, silc_map_table_cut },
   { "rectangle", SILC_CONFIG_ARG_BLOCK,
@@ -488,6 +508,37 @@ SILC_CONFIG_CALLBACK(silc_map_cmd_writehtml)
   return retval;
 }
 
+/* Command: writerel, writes the uptime reliability graph. */
+
+SILC_CONFIG_CALLBACK(silc_map_cmd_writerel)
+{
+  SilcMap map = context;
+  int retval = SILC_CONFIG_OK;
+
+  if (type == SILC_CONFIG_ARG_BLOCK) {
+    if (!filename)
+      return SILC_CONFIG_EMISSFIELDS;
+
+    SILC_LOG_DEBUG(("writerel: file: %s", filename));
+
+    /* Will generate uptime reliability graph */
+    map->writerel.filename = filename;
+    map->writerel.text = text;         /* class */
+    map->writerel.writerel = TRUE;
+    filename = text = NULL;
+
+    return retval;
+  }
+  if (!strcmp(name, "filename"))
+    filename = strdup((char *)val);
+  else if (!strcmp(name, "class"))
+    text = strdup((char *)val);
+  else
+    retval = SILC_CONFIG_ESILENT;
+
+  return retval;
+}
+
 /* Command: cut, cut's a specified area from the map. */
 
 SILC_CONFIG_CALLBACK(silc_map_cmd_cut)