+ return avahi_string_list_reverse(r);
+}
+
+AvahiStringList *avahi_string_list_new_from_array(const gchar *array[], gint length) {
+ AvahiStringList *r = NULL;
+ gint i;
+
+ g_assert(array);
+
+ for (i = 0; length >= 0 ? i < length : !!array[i]; i++)
+ r = avahi_string_list_add(r, array[i]);
+
+ return r;
+}
+
+guint avahi_string_list_length(const AvahiStringList *l) {
+ guint n = 0;
+
+ for (; l; l = l->next)
+ n++;
+
+ return n;