diff options
author | Max Kellermann <max@duempel.org> | 2008-04-12 04:07:24 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-04-12 04:07:24 +0000 |
commit | 86d6ba077b8d183914eec1f970ddaf077b574f4b (patch) | |
tree | b5a50e018f06200a5357e12d86df8cdec92a7e47 /src | |
parent | d4f319deafc41d000c7e249e1acfe9626dec52a8 (diff) | |
download | mpd-86d6ba077b8d183914eec1f970ddaf077b574f4b.tar.gz mpd-86d6ba077b8d183914eec1f970ddaf077b574f4b.tar.xz mpd-86d6ba077b8d183914eec1f970ddaf077b574f4b.zip |
provide switches for TCP and unix sockets
autoconf flags for enabling and disabling TCP and unix domain socket
support. Embedded machines without a TCP stack may be better off
without TCP support.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7236 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src')
-rw-r--r-- | src/interface.c | 4 | ||||
-rw-r--r-- | src/listen.c | 16 | ||||
-rw-r--r-- | src/os_compat.h | 5 |
3 files changed, 24 insertions, 1 deletions
diff --git a/src/interface.c b/src/interface.c index 43c8b3654..df9eb63f7 100644 --- a/src/interface.c +++ b/src/interface.c @@ -245,6 +245,7 @@ void openAInterface(int fd, struct sockaddr *addr) } else { const char *hostname; switch (addr->sa_family) { +#ifdef HAVE_TCP case AF_INET: hostname = (const char *)inet_ntoa(((struct sockaddr_in *) addr)->sin_addr); @@ -267,9 +268,12 @@ void openAInterface(int fd, struct sockaddr *addr) } break; #endif +#endif /* HAVE_TCP */ +#ifdef HAVE_UN case AF_UNIX: hostname = "local connection"; break; +#endif /* HAVE_UN */ default: hostname = "unknown"; } diff --git a/src/listen.c b/src/listen.c index 423b54e9a..6b2ed994e 100644 --- a/src/listen.c +++ b/src/listen.c @@ -74,6 +74,7 @@ static int establishListen(const struct sockaddr *addrp, socklen_t addrlen) int allowReuse = ALLOW_REUSE; switch (addrp->sa_family) { +#ifdef HAVE_TCP case AF_INET: pf = PF_INET; break; @@ -82,9 +83,12 @@ static int establishListen(const struct sockaddr *addrp, socklen_t addrlen) pf = PF_INET6; break; #endif +#endif /* HAVE_TCP */ +#ifdef HAVE_UN case AF_UNIX: pf = PF_UNIX; break; +#endif /* HAVE_UN */ default: FATAL("unknown address family: %i\n", addrp->sa_family); } @@ -123,6 +127,7 @@ static void parseListenConfigParam(unsigned int port, ConfigParam * param) { const struct sockaddr *addrp; socklen_t addrlen; +#ifdef HAVE_TCP struct sockaddr_in sin4; #ifdef HAVE_IPV6 struct sockaddr_in6 sin6; @@ -135,8 +140,10 @@ static void parseListenConfigParam(unsigned int port, ConfigParam * param) memset(&sin4, 0, sizeof(struct sockaddr_in)); sin4.sin_port = htons(port); sin4.sin_family = AF_INET; +#endif /* HAVE_TCP */ if (!param || 0 == strcmp(param->value, "any")) { +#ifdef HAVE_TCP DEBUG("binding to any address\n"); #ifdef HAVE_IPV6 if (useIpv6) { @@ -157,6 +164,10 @@ static void parseListenConfigParam(unsigned int port, ConfigParam * param) #endif BINDERROR(); } +#else /* HAVE_TCP */ + FATAL("TCP support is disabled\n"); +#endif /* HAVE_TCP */ +#ifdef HAVE_UN } else if (param->value[0] == '/') { size_t path_length; struct sockaddr_un sun; @@ -173,7 +184,9 @@ static void parseListenConfigParam(unsigned int port, ConfigParam * param) if (establishListen(addrp, addrlen) < 0) BINDERROR(); +#endif /* HAVE_UN */ } else { +#ifdef HAVE_TCP struct hostent *he; DEBUG("binding to address for %s\n", param->value); if (!(he = gethostbyname(param->value))) { @@ -207,6 +220,9 @@ static void parseListenConfigParam(unsigned int port, ConfigParam * param) if (establishListen(addrp, addrlen) < 0) BINDERROR(); +#else /* HAVE_TCP */ + FATAL("TCP support is disabled\n"); +#endif /* HAVE_TCP */ } } diff --git a/src/os_compat.h b/src/os_compat.h index 6409053c7..97ab02a2a 100644 --- a/src/os_compat.h +++ b/src/os_compat.h @@ -64,7 +64,6 @@ #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> -#include <sys/un.h> #include <pwd.h> #include <grp.h> #include <limits.h> @@ -75,4 +74,8 @@ #include <sys/ipc.h> #include <sys/shm.h> +#ifdef HAVE_UN +#include <sys/un.h> +#endif + #endif /* OS_COMPAT_H */ |