3 #include <trust_router/tr_name.h>
6 static int tr_apc_destructor(void *obj)
8 TR_APC *apc=talloc_get_type_abort(obj, TR_APC);
10 tr_free_name(apc->id);
14 TR_APC *tr_apc_new(TALLOC_CTX *mem_ctx)
16 TR_APC *apc=talloc(mem_ctx, TR_APC);
20 talloc_set_destructor((void *)apc, tr_apc_destructor);
25 void tr_apc_free(TR_APC *apc)
30 static TR_APC *tr_apc_tail(TR_APC *apc)
35 while (apc->next!=NULL)
40 TR_APC *tr_apc_add(TR_APC *head, TR_APC *new)
45 tr_apc_tail(head)->next=new;
47 talloc_steal(head, new);
54 /* does not copy next pointer */
55 TR_APC *tr_apc_dup(TALLOC_CTX *mem_ctx, TR_APC *apc)
57 TR_APC *new=tr_apc_new(mem_ctx);
58 tr_apc_set_id(new, tr_apc_dup_id(apc));
62 void tr_apc_set_id(TR_APC *apc, TR_NAME *id)
65 tr_free_name(apc->id);
69 TR_NAME *tr_apc_get_id(TR_APC *apc)
74 TR_NAME *tr_apc_dup_id(TR_APC *apc)
76 return tr_dup_name(apc->id);;
80 char *tr_apc_to_str(TALLOC_CTX *mem_ctx, TR_APC *apc)
82 return talloc_strndup(mem_ctx, apc->id->buf, apc->id->len);