Support non-default TRP and TID ports
[trust_router.git] / include / trp_route.h
index f4451c4..fb7c060 100644 (file)
 
 #ifndef TRUST_ROUTER_TRP_ROUTE_H
 #define TRUST_ROUTER_TRP_ROUTE_H
+
 typedef struct trp_route {
   TR_NAME *comm;
   TR_NAME *realm;
   TR_NAME *peer;
   unsigned int metric;
   TR_NAME *trust_router; /* hostname */
-  unsigned int trp_port;
-  unsigned int tid_port;
+  int trust_router_port;
   TR_NAME *next_hop;
+  int next_hop_port;
   int selected;
   unsigned int interval; /* interval from route update */
   struct timespec *expiry;
@@ -51,6 +52,7 @@ typedef struct trp_route {
   int triggered;
 } TRP_ROUTE;
 
+/* trp_route.c */
 TRP_ROUTE *trp_route_new(TALLOC_CTX *mem_ctx);
 void trp_route_free(TRP_ROUTE *entry);
 void trp_route_set_comm(TRP_ROUTE *entry, TR_NAME *comm);
@@ -62,6 +64,8 @@ TR_NAME *trp_route_dup_realm(TRP_ROUTE *entry);
 void trp_route_set_trust_router(TRP_ROUTE *entry, TR_NAME *tr);
 TR_NAME *trp_route_get_trust_router(TRP_ROUTE *entry);
 TR_NAME *trp_route_dup_trust_router(TRP_ROUTE *entry);
+void trp_route_set_trust_router_port(TRP_ROUTE *entry, int port);
+int trp_route_get_trust_router_port(TRP_ROUTE *entry);
 void trp_route_set_peer(TRP_ROUTE *entry, TR_NAME *peer);
 TR_NAME *trp_route_get_peer(TRP_ROUTE *entry);
 TR_NAME *trp_route_dup_peer(TRP_ROUTE *entry);
@@ -70,16 +74,22 @@ unsigned int trp_route_get_metric(TRP_ROUTE *entry);
 void trp_route_set_next_hop(TRP_ROUTE *entry, TR_NAME *next_hop);
 TR_NAME *trp_route_get_next_hop(TRP_ROUTE *entry);
 TR_NAME *trp_route_dup_next_hop(TRP_ROUTE *entry);
+void trp_route_set_next_hop_port(TRP_ROUTE *entry, int port);
+int trp_route_get_next_hop_port(TRP_ROUTE *entry);
 void trp_route_set_selected(TRP_ROUTE *entry, int sel);
 int trp_route_is_selected(TRP_ROUTE *entry);
 void trp_route_set_interval(TRP_ROUTE *entry, int interval);
 int trp_route_get_interval(TRP_ROUTE *entry);
 void trp_route_set_expiry(TRP_ROUTE *entry, struct timespec *exp);
 struct timespec *trp_route_get_expiry(TRP_ROUTE *entry);
+struct timespec *trp_route_get_expiry_realtime(TRP_ROUTE *comm, struct timespec *result);
 void trp_route_set_local(TRP_ROUTE *entry, int local);
 int trp_route_is_local(TRP_ROUTE *entry);
 void trp_route_set_triggered(TRP_ROUTE *entry, int trig);
 int trp_route_is_triggered(TRP_ROUTE *entry);
+
+/* trp_route_encoders.c */
 char *trp_route_to_str(TALLOC_CTX *mem_ctx, TRP_ROUTE *entry, const char *sep);
+json_t *trp_route_to_json(TRP_ROUTE *route);
 
 #endif //TRUST_ROUTER_TRP_ROUTE_H