/* TBD -- should really do a length-based comparison */
return strcmp(one->buf, two->buf);
}
+
+void tr_name_strlcat(char *dest, const TR_NAME *src, size_t len)
+{
+ size_t used_len;
+ if (src->len >= len)
+ used_len = len-1;
+ else used_len = src->len;
+ if (used_len > 0)
+ strncat(dest, src->buf, used_len);
+ else dest[0] = '\0';
+}
+
+
+char * tr_name_strdup(TR_NAME *src)
+{
+ char *s = calloc(src->len+1, 1);
+ if (s) {
+ memcpy(s, src->buf, src->len);
+ s[src->len] = '\0';
+ }
+ return s;
+}
+
+
#ifndef TR_NAME_H
#define TR_NAME_H
+#include <string.h>
#include <trust_router/tr_versioning.h>
typedef struct tr__name {
TR_EXPORT TR_NAME *tr_dup_name (TR_NAME *from);
TR_EXPORT void tr_free_name (TR_NAME *name);
TR_EXPORT int tr_name_cmp (TR_NAME *one, TR_NAME *two);
+TR_EXPORT void tr_name_strlcat(char *dest, const TR_NAME *src, size_t len);
+TR_EXPORT char *tr_name_strdup(TR_NAME *);
+
#endif