]> git.meshlink.io Git - catta/commitdiff
* Compile tests only when --enable-tests was specified on the configure command line
authorLennart Poettering <lennart@poettering.net>
Wed, 19 Oct 2005 00:10:02 +0000 (00:10 +0000)
committerLennart Poettering <lennart@poettering.net>
Wed, 19 Oct 2005 00:10:02 +0000 (00:10 +0000)
* Build compat layers only when --enable-compat-{howl,libdns_sd} was passed to configure
* drop avahi_strlcpy() to reduce our code/API size
* replace getifname() with if_indextoname in avahi-dnsconfd
* declare environ if needed in avahi-dnsconfd
* drop some useless definitions like  AVAHI_PUBLISH_NULL = 0

git-svn-id: file:///home/lennart/svn/public/avahi/trunk@819 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe

18 files changed:
Makefile.am
avahi-client/Makefile.am
avahi-common/Makefile.am
avahi-common/defs.h
avahi-common/domain.c
avahi-compat-howl/Makefile.am
avahi-compat-howl/samples/Makefile.am
avahi-compat-howl/text.c
avahi-compat-libdns_sd/Makefile.am
avahi-core/Makefile.am
avahi-core/entry.c
avahi-daemon/Makefile.am
avahi-dnsconfd/main.c
avahi-glib/Makefile.am
configure.ac
docs/TODO
examples/Makefile.am
tests/Makefile.am

index d08fd8790269b908493cb2837041e9d74fcd77aa..d557c62dd3631671cea03450101d61ab47ce7cd6 100644 (file)
@@ -63,7 +63,7 @@ SUBDIRS = \
        tests \
        service-type-database \
        avahi-compat-libdns_sd \
-       avahi-compat-howl
+       avahi-compat-howl 
 
 
 DX_INPUT = \
index 57b8cb0fefd1ef86c30465170adf69405e68f8e1..fdbeb90af279395da896d1507e799819718e7c22 100644 (file)
@@ -29,10 +29,14 @@ avahi_clientinclude_HEADERS = client.h
 
 noinst_HEADERS = internal.h
 
+if ENABLE_TESTS
+
 noinst_PROGRAMS = \
        client-test \
        srv-test
 
+endif
+
 lib_LTLIBRARIES = libavahi-client.la 
 
 libavahi_client_la_SOURCES = \
index 972e9ad8ad44ea19915a00c0921f8a5a2a476f9e..670c8552fc93a7d79dfeb123eec644652ddbf51d 100644 (file)
@@ -40,12 +40,14 @@ avahi_commoninclude_HEADERS = \
        llist.h \
        rlist.h
 
+if ENABLE_TESTS
 noinst_PROGRAMS = \
        strlst-test \
        domain-test \
        alternative-test \
        timeval-test \
        watch-test
+endif
 
 lib_LTLIBRARIES = \
        libavahi-common.la 
index 67bdddc485dbfe9fed3522b89a174db501ee1907..3b8c2a527098e581c04c346ae3b12b62eb3388c7 100644 (file)
@@ -154,7 +154,6 @@ typedef enum {
 
 /** Some flags for publishing functions */
 typedef enum {
-    AVAHI_PUBLISH_NULL = 0,          
     AVAHI_PUBLISH_UNIQUE = 1,           /**< For raw records: The RRset is intended to be unique */
     AVAHI_PUBLISH_NO_PROBE = 2,         /**< For raw records: Though the RRset is intended to be unique no probes shall be sent */
     AVAHI_PUBLISH_NO_ANNOUNCE = 4,      /**< For raw records: Do not announce this RR to other hosts */
@@ -166,7 +165,6 @@ typedef enum {
 
 /** Some flags for lookup functions */
 typedef enum {
-    AVAHI_LOOKUP_NULL = 0,
     AVAHI_LOOKUP_USE_WIDE_AREA = 1,    /**< Force lookup via wide area DNS */
     AVAHI_LOOKUP_USE_MULTICAST = 2,    /**< Force lookup via multicast DNS */
     AVAHI_LOOKUP_NO_TXT = 4,           /**< When doing service resolving, don't lookup TXT record */
@@ -175,7 +173,6 @@ typedef enum {
 
 /** Some flags for lookup callback functions */
 typedef enum {
-    AVAHI_LOOKUP_RESULT_NULL = 0,
     AVAHI_LOOKUP_RESULT_CACHED = 1,         /**< This response originates from the cache */
     AVAHI_LOOKUP_RESULT_WIDE_AREA = 2,      /**< This response originates from wide area DNS */
     AVAHI_LOOKUP_RESULT_MULTICAST = 4,      /**< This response originates from multicast DNS */
index f2e4395a7e3649813cd30840cb25394dc757069c..e82411f185946b6edc9bd2dda27484d180549031 100644 (file)
@@ -530,19 +530,22 @@ int avahi_service_name_join(char *p, size_t size, const char *name, const char *
     return AVAHI_OK;
 }
 
+#ifndef HAVE_STRLCPY
 
-char *avahi_strlcpy(char *dest, const char *src, size_t n) {
+static size_t strlcpy(char *dest, const char *src, size_t n) {
     assert(dest);
     assert(src);
-
-    if (n == 0)
-        return dest;
-        
-    strncpy(dest, src, n-1);
-    dest[n-1] = 0;
-    return dest;
+    
+    if (n > 0) {
+        strncpy(dest, src, n-1);
+        dest[n-1] = 0;
+    }
+    
+    return strlen(src);
 }
 
+#endif
+
 int avahi_service_name_split(const char *p, char *name, size_t name_size, char *type, size_t type_size, char *domain, size_t domain_size) {
     enum {
         NAME,
@@ -574,7 +577,7 @@ int avahi_service_name_split(const char *p, char *name, size_t name_size, char *
 
         switch (state) {
             case NAME:
-                avahi_strlcpy(name, buf, name_size);
+                strlcpy(name, buf, name_size);
                 state = TYPE;
                 break;
 
index 5c127828a2563bb5cbb9bc03c960483c4751ab26..e183b7e812f6b4588c54255caa98526796689178 100644 (file)
@@ -25,6 +25,7 @@ AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
 SUBDIRS = . samples
 
 if HAVE_DBUS
+if ENABLE_COMPAT_HOWL
 
 avahi_compat_howldir=$(includedir)/avahi-compat-howl
 avahi_compat_howl_rendezvousdir=$(avahi_compat_howldir)/rendezvous
@@ -70,7 +71,9 @@ HOWLHEADERS = \
 
 lib_LTLIBRARIES = libavahi-compat-howl.la 
 
+if ENABLE_TESTS
 noinst_PROGRAMS = address-test text-test browse-domain-test
+endif
 
 libavahi_compat_howl_la_SOURCES = \
        $(HOWLHEADERS) \
@@ -105,3 +108,4 @@ browse_domain_test_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I $(srcdir)/include
 browse_domain_test_LDADD = $(AM_LDADD) libavahi-compat-howl.la
 
 endif
+endif
index 14bbfb7ffa299130e4156374e4fa6f468899cef9..21d15a8af7dba03f2ae8a7a74c044dd6b54ba6c8 100644 (file)
@@ -23,8 +23,11 @@ AM_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/avahi-compat-howl/include
 AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
 
 if HAVE_DBUS
+if ENABLE_COMPAT_HOWL
 
+if ENABLE_TESTS
 noinst_PROGRAMS = browse resolve publish query
+endif
 
 browse_SOURCES = \
        browse.c
@@ -47,3 +50,4 @@ query_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I $(srcdir)/include
 query_LDADD = $(AM_LDADD) ../libavahi-compat-howl.la
 
 endif
+endif
index 1cd34fe5fc7f446d27ddd47191cd9286e103f443..fb05acf9adc64d9558809c469de7d4039e158643 100644 (file)
@@ -39,6 +39,22 @@ struct _sw_text_record {
     int buffer_valid;
 };
 
+#ifndef HAVE_STRLCPY
+
+static size_t strlcpy(char *dest, const char *src, size_t n) {
+    assert(dest);
+    assert(src);
+    
+    if (n > 0) {
+        strncpy(dest, src, n-1);
+        dest[n-1] = 0;
+    }
+    
+    return strlen(src);
+}
+
+#endif
+
 sw_result sw_text_record_init(sw_text_record *self) {
     assert(self);
 
@@ -223,7 +239,7 @@ sw_result sw_text_record_iterator_next(
     if (avahi_string_list_get_pair(self->index, &mkey, &mvalue, &msize) < 0)
         return SW_E_UNKNOWN;
 
-    avahi_strlcpy(key, mkey, SW_TEXT_RECORD_MAX_LEN);
+    strlcpy(key, mkey, SW_TEXT_RECORD_MAX_LEN);
     memset(val, 0, SW_TEXT_RECORD_MAX_LEN);
     memcpy(val, mvalue, msize);
     *val_len = msize;
index 2b650595e5ecc986d17beca70eda96304d405c59..bd33bb0e6136c83bf6c4c3b87e6511149adc0dd2 100644 (file)
@@ -23,6 +23,7 @@ AM_CFLAGS=-I$(top_srcdir)
 AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
 
 if HAVE_DBUS
+if ENABLE_COMPAT_LIBDNS_SD
 
 avahi_compat_libdns_sddir=$(includedir)/avahi-compat-libdns_sd
 
@@ -30,7 +31,9 @@ avahi_compat_libdns_sd_HEADERS = dns_sd.h
 
 lib_LTLIBRARIES = libavahi-compat-libdns_sd.la 
 
+if ENABLE_TESTS
 noinst_PROGRAMS = txt-test
+endif
 
 libavahi_compat_libdns_sd_la_SOURCES = \
        dns_sd.h \
@@ -61,3 +64,4 @@ libdns_sd-test: libdns_sd-test.c libavahi-compat-libdns_sd.la
 CLEANFILES = libdns_sd-test.o libdns_sd-test
 
 endif
+endif
index 3ecce1135b33d69e90c7446283980389c49af9dc..95166157ede800f0755df3448ea6fb3577292218 100644 (file)
@@ -34,6 +34,7 @@ avahiinclude_HEADERS = \
 lib_LTLIBRARIES = \
        libavahi-core.la 
 
+if ENABLE_TESTS
 noinst_PROGRAMS = \
        prioq-test \
        avahi-test \
@@ -44,6 +45,7 @@ noinst_PROGRAMS = \
        hashmap-test \
        querier-test \
        update-test
+endif  
 
 libavahi_core_la_SOURCES = \
        timeeventq.c timeeventq.h\
index 23ab5e00adf81aab43b695388435b28c0f20d012..18fe4314013038fa30ee8eacc9729472ce4e7c75 100644 (file)
@@ -890,7 +890,7 @@ int avahi_server_add_dns_server_name(
     r->data.srv.weight = 0;
     r->data.srv.port = port;
     r->data.srv.name = n;
-    ret = avahi_server_add(s, g, interface, protocol, AVAHI_PUBLISH_NULL, r);
+    ret = avahi_server_add(s, g, interface, protocol, 0, r);
     avahi_record_unref(r);
 
     return ret;
index 8c433d5ac8955f486751f19834458cba462b62c4..9e347e365924ef9e8324912deebbdd9fee29741b 100644 (file)
@@ -40,8 +40,10 @@ AM_CFLAGS+= \
 sbin_PROGRAMS = \
        avahi-daemon
 
+if ENABLE_TESTS
 noinst_PROGRAMS = \
        ini-file-parser-test
+endif
 
 avahi_daemon_SOURCES = \
        main.c main.h \
index cca0b68118a1195c7487f513580a8feca944933c..84b0f6873cd076696c689ba85d504ecf57794084 100644 (file)
@@ -61,8 +61,6 @@ static enum {
     BROWSING
 } state = ACKWAIT;
 
-static int quit = 0;
-
 static enum {
     DAEMON_RUN,
     DAEMON_KILL,
@@ -72,8 +70,13 @@ static enum {
     DAEMON_CHECK
 } command = DAEMON_RUN;
 
+static int quit = 0;
 static int daemonize = 0;
 
+#if !HAVE_DECL_ENVIRON
+extern char **environ;
+#endif
+
 typedef struct DNSServerInfo DNSServerInfo;
 
 struct DNSServerInfo {
@@ -213,37 +216,6 @@ static char *concat_dns_servers(AvahiIfIndex interface) {
     return r;
 }
 
-static char *getifname(AvahiIfIndex interface, char *name, size_t len) {
-    int fd = -1;
-    char *ret = NULL;
-    struct ifreq ifr;
-
-    assert(interface >= 0);
-    
-    if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
-        daemon_log(LOG_ERR, "socket(): %s", strerror(errno));
-        goto finish;
-    }
-
-    memset(&ifr, 0, sizeof(ifr));
-    ifr.ifr_ifindex = (int) interface;
-    
-    if (ioctl(fd, SIOCGIFNAME, &ifr) < 0) {
-        daemon_log(LOG_ERR, "SIOCGIFNAME: %s\n", strerror(errno));
-        goto finish;
-    }
-
-    strncpy(name, ifr.ifr_name, len-1);
-    name[len-1] = 0;
-    ret = name;
-    
-finish:
-    if (fd >= 0)
-        close(fd);
-    
-    return ret;
-}
-
 static void set_env(const char *name, const char *value) {
     char **e;
     size_t l;
@@ -274,11 +246,11 @@ static void run_script(int new, AvahiIfIndex interface, AvahiProtocol protocol,
     char *p;
     int ret;
     char ia[16], pa[16];
-    char name[IFNAMSIZ+1];
+    char name[IF_NAMESIZE];
 
     assert(interface > 0);
 
-    if (!getifname(interface, name, sizeof(name))) 
+    if (!if_indextoname(interface, name)) 
         return;
     
     p = concat_dns_servers(interface);
index 02c6181966f0ee18d5ef6a65ab4eaf62920d7520..69bd51ea60ac6dbc7ae3f66f155021940e5fd3a2 100644 (file)
@@ -33,9 +33,13 @@ avahiinclude_HEADERS = \
 lib_LTLIBRARIES = \
        libavahi-glib.la 
 
+if ENABLE_TESTS
+
 noinst_PROGRAMS = \
        glib-watch-test
 
+endif
+
 libavahi_glib_la_SOURCES = \
        glib-watch.c glib-watch.h \
        glib-malloc.h glib-malloc.c
index 2ed9a8a1e7df62f528590c25d4afc6403f674963..744a2841cc18ce00ea88fce58dd98e15e3ddc130 100644 (file)
@@ -229,13 +229,15 @@ AC_FUNC_MEMCMP
 AC_FUNC_SELECT_ARGTYPES
 AC_FUNC_MALLOC
 AC_FUNC_REALLOC
-AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid strcasecmp gettimeofday putenv strncasecmp])
+AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid strcasecmp gettimeofday putenv strncasecmp strclpy])
 
 AC_FUNC_CHOWN
 AC_FUNC_STAT
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
 
+AC_CHECK_DECLS(environ)
+
 # Check for pkg-config manually first, as if its not installed the
 # PKG_PROG_PKG_CONFIG macro won't be defined.
 AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no)
@@ -340,8 +342,6 @@ if test "x$HAVE_GTK" = "xyes" ; then
 fi
 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
 
-
-
 #
 # D-BUS
 #
@@ -567,7 +567,6 @@ avahi_socket="${avahi_runtime_dir}/avahi-daemon/socket"
 AC_SUBST(avahi_runtime_dir)
 AC_SUBST(avahi_socket)
 
-
 #
 # Avahi interfaces dir
 #
@@ -576,7 +575,6 @@ if test "x$HAVE_PYTHON_DBUS" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
        AC_SUBST(interfacesdir)
 fi
 
-
 #
 # Doxygen
 #
@@ -616,6 +614,49 @@ fi
 
 AM_CONDITIONAL([USE_XMLTOMAN], [test "x$xmltoman" = xyes])
 
+#
+# Conditionally compile test and example programs
+#
+AC_ARG_ENABLE(tests,
+        AS_HELP_STRING([--enable-tests],[Enable building of tests and examples]),
+        [case "${enableval}" in
+                yes) ENABLE_TESTS=yes ;;
+                no)  ENABLE_TESTS=no ;;
+                *) AC_MSG_ERROR(bad value ${enableval} for --enable-tests) ;;
+        esac],
+        [ENABLE_TESTS=no])
+
+AM_CONDITIONAL([ENABLE_TESTS], [test "x$ENABLE_TESTS" = "xyes"])
+
+#
+# Optionally enable libdns_sd compatibility support
+#
+AC_ARG_ENABLE(compat-libdns_sd,
+        AS_HELP_STRING([--enable-compat-libdns_sd],[Enable compatibility layer for libdns_sd]),
+        [case "${enableval}" in
+                yes) ENABLE_COMPAT_LIBDNS_SD=yes ;;
+                no)  ENABLE_COMPAT_LIBDNS_SD=no ;;
+                *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-libdns_sd) ;;
+        esac],
+        [ENABLE_COMPAT_LIBDNS_SD=no])
+
+AM_CONDITIONAL([ENABLE_COMPAT_LIBDNS_SD], [test "x$ENABLE_COMPAT_LIBDNS_SD" = "xyes"])
+
+#
+# Optionally enable HOWL compatibility support
+#
+AC_ARG_ENABLE(compat-howl,
+        AS_HELP_STRING([--enable-compat-howl],[Enable compatibility layer for HOWL]),
+        [case "${enableval}" in
+                yes) ENABLE_COMPAT_HOWL=yes ;;
+                no)  ENABLE_COMPAT_HOWL=no ;;
+                *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-howl) ;;
+        esac],
+        [ENABLE_COMPAT_HOWL=no])
+
+AM_CONDITIONAL([ENABLE_COMPAT_HOWL], [test "x$ENABLE_COMPAT_HOWL" = "xyes"])
+
+
 # ==========================================================================
 AC_CONFIG_FILES([
 Makefile 
@@ -694,6 +735,14 @@ if test "x$BUILD_DAEMON" = "xyes" -a "x$HAVE_DBUS" = "xyes" ; then
     BUILD_CLIENT=yes
 fi
 
+if test "x$ENABLE_COMPAT_LIBDNS_SD" = "xyes" -a "x$BUILD_CLIENT" != "xyes" ; then
+   AC_MSG_ERROR([building avahi-compat-libdns_sd without building libavahi-client doesn't work])
+fi
+if test "x$ENABLE_COMPAT_HOWL" = "xyes" -a "x$BUILD_CLIENT" != "xyes" ; then
+   AC_MSG_ERROR([building avahi-compat-howl without building libavahi-client doesn't work])
+fi
+
+
 echo "
     Building libavahi-core              yes
     Building avahi-daemon:              ${BUILD_DAEMON}
@@ -705,6 +754,7 @@ echo "
     Building libavahi-qt3:              ${HAVE_QT3}
     Building libavahi-qt4:              ${HAVE_QT4}
     Building avahi-sharp:               ${HAVE_MONO}
-    Building avahi-compat-libdns_sd:    ${BUILD_CLIENT}
-    Building avahi-compat-howl:         ${BUILD_CLIENT}
+    Building avahi-compat-libdns_sd:    ${ENABLE_COMPAT_LIBDNS_SD}
+    Building avahi-compat-howl:         ${ENABLE_COMPAT_HOWL}
+    Building tests:                     ${ENABLE_TESTS}
 "
index 7c660d477fe5bcef375b1a58831d01a9a0cf4535..b5ce6b10bb78b4736d30c9987a8e5427bf98989c 100644 (file)
--- a/docs/TODO
+++ b/docs/TODO
@@ -3,6 +3,7 @@ for 0.6:
 * add API to allow user to tell the server that some service is not reachable
 * generate local CNAME responses
 * drop partially created created entries on failure
+* add error state for server and entry group
 * add support for subtypes in static services
 * Add static host configuration like static services [lathiat]
 * wrap avahi_server_add_record() via DBUS and in avahi-client [lathiat]
index 2a3d48e508e5c05a4d679da9dec642c93bab557d..92cdccd4c6e1adbac98057af53732fe39c1e2023 100644 (file)
 
 AM_CFLAGS=-I$(top_srcdir)
 
+if ENABLE_TESTS
 noinst_PROGRAMS = \
        core-publish-service \
        core-browse-services
+endif
 
 core_publish_service_SOURCES = core-publish-service.c
 core_publish_service_CFLAGS = $(AM_CFLAGS)
@@ -33,10 +35,13 @@ core_browse_services_LDADD = $(AM_LDADD) ../avahi-core/libavahi-core.la ../avahi
 
 
 if HAVE_DBUS
+if ENABLE_TESTS
 
 noinst_PROGRAMS += \
        client-publish-service \
        client-browse-services
+endif
+
 client_publish_service_SOURCES = client-publish-service.c
 client_publish_service_CFLAGS = $(AM_CFLAGS)
 client_publish_service_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la
@@ -47,8 +52,11 @@ client_browse_services_LDADD = $(AM_LDADD) ../avahi-client/libavahi-client.la ..
 
 if HAVE_GLIB
 
+if ENABLE_TESTS
 noinst_PROGRAMS += \
        glib-integration
+endif
+
 glib_integration_SOURCES = glib-integration.c
 glib_integration_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS)
 glib_integration_LDADD = $(AM_LDADD) $(GLIB20_LIBS) ../avahi-client/libavahi-client.la ../avahi-common/libavahi-common.la ../avahi-glib/libavahi-glib.la
index b3fa8cac19ef1dd28e5e6abb5c1ab12915c89a2e..c91cea44fca58009b5434203e49b2d818a779fca 100644 (file)
@@ -24,7 +24,9 @@ if HAVE_GLIB
 if HAVE_DBUS
 if HAVE_NETLINK
 
+if ENABLE_TESTS
 noinst_PROGRAMS = c-plus-plus-test
+endif
 
 c_plus_plus_test_SOURCES = c-plus-plus-test.cc