Cleanup for lq_plugin system, preparation for default fpm
[olsrd.git] / src / lq_plugin.c
index 37b8557..5bf8fb6 100644 (file)
 #include "lq_plugin_default.h"
 #include "lq_plugin.h"
 
-/* Default lq plugin settings */
-struct lq_handler default_lq_handler = {
-  &default_calc_cost,
-  &default_calc_cost,
-
-  &default_olsr_is_relevant_costchange,
-
-  &default_packet_loss_worker,
-  &default_olsr_memorize_foreign_hello_lq,
-  &default_olsr_copy_link_lq_into_tc,
-  &default_olsr_clear_lq,
-  &default_olsr_clear_lq,
-
-  &default_olsr_serialize_hello_lq_pair,
-  &default_olsr_serialize_tc_lq_pair,
-  &default_olsr_deserialize_hello_lq_pair,
-  &default_olsr_deserialize_tc_lq_pair,
-
-  &default_olsr_print_lq,
-  &default_olsr_print_lq,
-  &default_olsr_print_cost,
-
-  sizeof(struct default_lq),
-  sizeof(struct default_lq)
-};
-
-struct lq_handler *active_lq_handler = &default_lq_handler;
+struct lq_handler *active_lq_handler = NULL;
 
 /*
  * set_lq_handler
@@ -84,21 +58,18 @@ struct lq_handler *active_lq_handler = &default_lq_handler;
  * this function is used by routing metric plugins to activate their link
  * quality handler
  * 
+ * The name parameter is marked as "unused" to squelch a compiler warning if debug
+ * output is not active
+ * 
  * @param pointer to lq_handler structure
  * @param name of the link quality handler for debug output
  */
 void
-set_lq_handler(struct lq_handler *handler, const char *name)
+set_lq_handler(struct lq_handler *handler, const __attribute__ ((unused)) char *name)
 {
-  if (handler) {
-    OLSR_PRINTF(1, "Activated lq_handler: %s\n", name);
-    active_lq_handler = handler;
-  } else {
-    OLSR_PRINTF(1, "Activated lq_handler: default\n");
-    active_lq_handler = &default_lq_handler;
-  }
-
-  name = NULL;                 /* squelch compiler warning */
+  OLSR_PRINTF(1, "Activated lq_handler: %s\n", name);
+  active_lq_handler = handler;
+  handler->initialize();
 }
 
 /*