WiP
[oweals/gnunet.git] / src / dht / plugin_dhtlog_mysql_dump_load.c
index 973b20908fd9aefa90e341f25edab23a2c21c25f..956af6bdd371e9850100c6f0ec0c7d5ec4e8006e 100644 (file)
@@ -131,6 +131,32 @@ int add_round (unsigned int round_type, unsigned int round_count)
 
 }
 
+/*
+ * Inserts the specified round results into the
+ * dhttests.processed_round_details table
+ *
+ * @param round_type the type of round that is being started
+ * @param round_count counter for the round (if applicable)
+ * @param num_messages the total number of messages initiated
+ * @param num_messages_succeeded the number of messages that succeeded
+ *
+ * @return GNUNET_OK on success, GNUNET_SYSERR on failure
+ */
+int add_round_details (unsigned int round_type, unsigned int round_count,
+                       unsigned int num_messages, unsigned int num_messages_succeeded)
+{
+  int ret;
+  if (outfile == NULL)
+    return GNUNET_SYSERR;
+
+  ret = fprintf(outfile, "insert into processed_trial_rounds (trialuid, round_type, round_count, starttime, endtime, num_messages, num_messages_succeeded) values (@temp_trial, \"%u\", \"%u\", \"%s\", \"%s\", \"%u\", \"%u\");\n",
+                                                              round_type, round_count, get_sql_time(), get_sql_time(), num_messages, num_messages_succeeded);
+
+  if (ret >= 0)
+    return GNUNET_OK;
+  return GNUNET_SYSERR;
+}
+
 /*
  * Records a connection between two peers in the current topology
  *
@@ -326,7 +352,7 @@ add_node (unsigned long long *nodeuid, struct GNUNET_PeerIdentity * node)
     return GNUNET_SYSERR;
 
   ret = fprintf(node_outfile, "TRIALUID\t%s\n", GNUNET_h2s_full(&node->hashPubKey));
-
+  fflush(node_outfile);
   if (ret >= 0)
     return GNUNET_OK;
   return GNUNET_SYSERR;
@@ -348,7 +374,7 @@ update_trials (unsigned int gets_succeeded)
     return GNUNET_SYSERR;
 
   ret = fprintf(outfile, "update trials set endtime=\"%s\", gets_succeeded=%u where trialuid = @temp_trial;\n", get_sql_time(), gets_succeeded);
-
+  fflush(node_outfile);
   if (ret >= 0)
     return GNUNET_OK;
   else
@@ -373,7 +399,7 @@ set_malicious (struct GNUNET_PeerIdentity *peer)
     return GNUNET_SYSERR;
 
   ret = fprintf(outfile, "update nodes set malicious_dropper = 1 where trialuid = @temp_trial and nodeid = \"%s\";\n", GNUNET_h2s_full(&peer->hashPubKey));
-
+  fflush(node_outfile);
   if (ret >= 0)
     return GNUNET_OK;
   else
@@ -397,7 +423,7 @@ add_connections (unsigned int totalConnections)
     return GNUNET_SYSERR;
 
   ret = fprintf(outfile, "update trials set totalConnections = %u where trialuid = @temp_trial;\n", totalConnections);
-
+  fflush(node_outfile);
   if (ret >= 0)
     return GNUNET_OK;
   else
@@ -581,12 +607,13 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_nodes",
                    getpid());
-
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -613,12 +640,14 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_routes",
                    getpid());
 
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -645,12 +674,14 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_queries",
                    getpid());
 
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -677,12 +708,14 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_stats",
                    getpid());
 
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -709,12 +742,13 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_generic_stats",
                    getpid());
-
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -741,12 +775,13 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_dhtkey",
                    getpid());
-
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -773,12 +808,13 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
       return NULL;
     }
 
+  GNUNET_free(outfile_name);
   GNUNET_asprintf (&outfile_name,
                    "%s%s-%d",
                    outfile_path,
                    "mysqldump_extended_topology",
                    getpid());
-
+  GNUNET_free(fn);
   fn = GNUNET_STRINGS_filename_expand (outfile_name);
 
   if (fn == NULL)
@@ -814,6 +850,7 @@ libgnunet_plugin_dhtlog_mysql_dump_load_init (void * cls)
   plugin->dhtlog_api->insert_trial = &add_trial;
   plugin->dhtlog_api->insert_stat = &add_stat;
   plugin->dhtlog_api->insert_round = &add_round;
+  plugin->dhtlog_api->insert_round_details = &add_round_details;
   plugin->dhtlog_api->insert_query = &add_query;
   plugin->dhtlog_api->update_trial = &update_trials;
   plugin->dhtlog_api->insert_route = &add_route;