Wed, 08 Feb 2012 20:07:00 +0200
Update version, adapt patch, correct PID writing, correct build on newer
FreeBSD releases, and most importantly introduce new patch to try to
avoid segfault caused by multiple network interfaces with the same (or
no) address. This is common when configuring bridges and tunnels.
1 Index: src/interface.c
2 diff -Nau src/interface.c.orig src/interface.c
3 --- src/interface.c.orig 2005-09-10 09:25:40.000000000 +0200
4 +++ src/interface.c 2006-10-30 23:18:46.644745000 +0100
5 @@ -28,8 +28,19 @@
6 #include <net/if.h> /* ? */
7 #include <netinet/in.h> /* ? */
8 #include <arpa/inet.h> /* ? */
9 +#if (defined(sun) && defined(__svr4__))
10 +#include <sys/sockio.h>
11 +#endif
12 #include "gmediaserver.h"
14 +#ifndef MAX
15 +#define MAX(a,b) ((a) > (b) ? (a) : (b))
16 +#endif
17 +
18 +#ifndef MIN
19 +#define MIN(a,b) ((a) < (b) ? (a) : (b))
20 +#endif
21 +
22 char *
23 get_ip_by_spec(char *spec)
24 {
25 Index: src/metadata.c
26 diff -Nau src/metadata.c.orig src/metadata.c
27 --- src/metadata.c.orig 2007-02-27 14:10:38.630894000 +0100
28 +++ src/metadata.c 2007-02-27 14:11:50.191849000 +0100
29 @@ -1071,6 +1071,7 @@
30 uint32_t c;
31 uint32_t child_count = 0;
33 + root_entry = make_entry(ROOT_ENTRY_NAME, -1, true);
34 children = xmalloc(sizeof(int32_t) * pathc);
35 for (c = 0; c < pathc; c++) {
36 Entry *entry;
37 @@ -1088,13 +1089,12 @@
38 free(tmp);
39 }
41 - entry = scan_entry(pathv[c], name, -1, indent_size, NULL);
42 + entry = scan_entry(pathv[c], name, root_entry->id, indent_size, NULL);
43 if (entry != NULL)
44 children[child_count++] = entry->id;
45 free(name);
46 }
47 if (child_count != 0) {
48 - root_entry = make_entry(ROOT_ENTRY_NAME, -1, true);
49 detail = get_entry_detail(root_entry, DETAIL_CHILDREN);
50 detail->data.children.count = child_count;
51 detail->data.children.list = children;
52 Index: lib/Makefile.in
53 diff -Nau lib/Makefile.in.orig lib/Makefile.in
54 --- lib/Makefile.in.orig 2006-08-29 22:53:57.000000000 +0200
55 +++ lib/Makefile.in 2006-11-01 10:25:38.000000000 +0100
56 @@ -112,7 +112,16 @@
57 full-write.$(OBJEXT) getnline.$(OBJEXT) progname.$(OBJEXT) \
58 striconv.$(OBJEXT) version-etc.$(OBJEXT) xalloc-die.$(OBJEXT) \
59 xgethostname.$(OBJEXT) xstrndup.$(OBJEXT) xvasprintf.$(OBJEXT) \
60 - xasprintf.$(OBJEXT)
61 + xasprintf.$(OBJEXT) xmalloc.$(OBJEXT) quote.$(OBJEXT) error.$(OBJEXT) \
62 + quotearg.$(OBJEXT) strftime.$(OBJEXT) \
63 + strndup.$(OBJEXT) strnlen.$(OBJEXT) \
64 + getopt.$(OBJEXT) getopt1.$(OBJEXT) \
65 + basename.$(OBJEXT) dirname.$(OBJEXT) \
66 + vasprintf.$(OBJEXT) vasnprintf.$(OBJEXT) \
67 + full-read.$(OBJEXT) safe-read.$(OBJEXT) \
68 + full-write.$(OBJEXT) safe-write.$(OBJEXT) \
69 + printf-args.$(OBJEXT) printf-parse.$(OBJEXT) \
70 + exitfail.$(OBJEXT) getndelim2.$(OBJEXT) sig2str.$(OBJEXT)
71 libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
72 LTLIBRARIES = $(noinst_LTLIBRARIES)
73 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
74 @@ -553,7 +562,7 @@
75 -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
76 libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES)
77 -rm -f libgnu.a
78 - $(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD)
79 + $(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS)
80 $(RANLIB) libgnu.a
82 clean-noinstLTLIBRARIES: