Add support for "show realms" monitoring request
[trust_router.git] / tr / tr_trp_mons.c
index f57154d..354d1c8 100644 (file)
@@ -40,6 +40,7 @@
 #include <trp_rtable.h>
 #include <trp_ptable.h>
 #include <tr_comm.h>
+#include <tr_idp.h>
 #include <mon_internal.h>
 #include <mons_handlers.h>
 
@@ -67,6 +68,14 @@ static MON_RC handle_show_communities(void *cookie, json_t **response_ptr)
   return (*response_ptr == NULL) ? MON_NOMEM : MON_SUCCESS;
 }
 
+static MON_RC handle_show_realms(void *cookie, json_t **response_ptr)
+{
+  TRPS_INSTANCE *trps = talloc_get_type_abort(cookie, TRPS_INSTANCE);
+
+  *response_ptr = tr_idp_realms_to_json(trps->ctable->idp_realms);
+  return (*response_ptr == NULL) ? MON_NOMEM : MON_SUCCESS;
+}
+
 void tr_trp_register_mons_handlers(TRPS_INSTANCE *trps, MONS_INSTANCE *mons)
 {
   mons_register_handler(mons,
@@ -78,4 +87,7 @@ void tr_trp_register_mons_handlers(TRPS_INSTANCE *trps, MONS_INSTANCE *mons)
   mons_register_handler(mons,
                         MON_CMD_SHOW, OPT_TYPE_SHOW_COMMUNITIES,
                         handle_show_communities, trps);
+  mons_register_handler(mons,
+                        MON_CMD_SHOW, OPT_TYPE_SHOW_REALMS,
+                        handle_show_realms, trps);
 }