4 #include <trust_router/tr_name.h>
5 #include <trp_rtable.h>
7 char *apc[]={"apc1", "apc2", "apc3"};
8 size_t n_apc=sizeof(apc)/sizeof(apc[0]);
9 char *realm[]={"realm1", "realm2", "realm3"};
10 size_t n_realm=sizeof(realm)/sizeof(realm[0]);
11 char *peer[]={"peer1", "peer2", "peer3"};
12 size_t n_peer=sizeof(peer)/sizeof(peer[0]);
14 static void populate_rtable(TRP_RTABLE *table)
16 TRP_RENTRY *entry=NULL;
17 size_t ii=0, jj=0, kk=0;
19 for (ii=0; ii<n_apc; ii++) {
20 for (jj=0; jj<n_realm; jj++) {
21 for (kk=0; kk<n_peer; kk++) {
22 entry=trp_rentry_new(NULL);
23 trp_rentry_set_apc(entry, tr_new_name(apc[ii]));
24 trp_rentry_set_realm(entry, tr_new_name(realm[jj]));
25 trp_rentry_set_trust_router(entry, tr_new_name(realm[jj]));
26 trp_rentry_set_peer(entry, tr_new_name(peer[kk]));
27 trp_rentry_set_metric(entry, ii+jj+kk);
28 trp_rentry_set_next_hop(entry, tr_new_name(peer[kk]));
29 trp_rtable_add(table, entry);
30 entry=NULL; /* entry belongs to the table now */
36 static void print_rentry(TRP_RENTRY *entry)
38 printf("apc: %s\n", trp_rentry_get_apc(entry)->buf);
39 printf("realm: %s\n", trp_rentry_get_realm(entry)->buf);
40 printf("trust_router: %s\n", trp_rentry_get_trust_router(entry)->buf);
41 printf("peer: %s\n", trp_rentry_get_peer(entry)->buf);
42 printf("next_hop: %s\n", trp_rentry_get_next_hop(entry)->buf);
43 printf("metric: %d\n", trp_rentry_get_metric(entry));
47 static void print_rtable(TRP_RTABLE *table)
50 TRP_RENTRY *apc_entry=NULL;
54 for (ii=0; ii<n_apc; ii++) {
55 len=trp_rtable_get_apc(table, n=tr_new_name(apc[ii]), &apc_entry);
56 tr_free_name(n); n=NULL;
57 for (jj=0; jj<len; jj++)
58 print_rentry(apc_entry+jj);
59 talloc_free(apc_entry);
65 TRP_RTABLE *table=NULL;
66 table=trp_rtable_new();
67 populate_rtable(table);
69 trp_rtable_free(table);