| Commit message (Collapse) | Author | Files | Lines |
|
The generic sockaddr struct is too small for some addresses. For
accept(), we have to allocate a sockaddr_storage struct on the stack,
which is large enough for all addresses.
|
|
Removed the sockaddr_to_tmp_string() hack, use
the new function sockaddr_to_string() instead.
|
|
Work around gcc warnings by casting the parameters to void.
|
|
Don't explicitly check is_ipv6_enabled(), just try calling
listen_add_port_ipv6(), but check its error code.
|
|
Some more code simplification.
|
|
For default bind_to_address settings, don't call
listen_add_config_param(NULL), use listen_add_port() directly.
|
|
Split code from the rather large function listen_add_config_param(),
part 3.
|
|
Split code from the rather large function listen_add_config_param(),
part 2.
|
|
Split code from the rather large function listen_add_config_param().
|
|
Don't return -1 on failure, and abort on fatal error - do proper error
reporting with GError, and return false on failure.
|
|
|
|
Renamed functions.
|
|
port number
|
|
All config_get_block_*() functions should accept constant config_param
pointers.
|
|
Simplify some code by using config_get_positive(), instead of doing
manual parsing and validation each time.
|
|
Renamed functions, types, variables.
|
|
|
|
The function ipv6Supported() is not used at all when IPv6 support was
disabled at compile time.
|
|
Free memory before exiting.
|
|
Make the listen socket an object, allowing us to add more fields
later. Convert listenSockets into a simple linked list.
|
|
|
|
|
|
WIN32 has no getaddrinfo(). Fall back to gethostbyname().
|
|
This is a rather huge patch, which unfortunately cannot be splitted.
Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
|
|
There is no point in making the server socket non-blocking. We call
accept() only after select() has notified us about a new connection.
|
|
On Windows, socket declarations reside in winsock.h and ws2tcpip.h.
The POSIX headers are not available.
|
|
redirect_stdin() is a daemonization function, and disconnecting from
the standard input is always a good idea for MPD.
|
|
Merged freeAllListenSockets() into closeAllListenSockets(), because
this is its only caller.
|
|
|
|
Only include headers which are really needed. os_compat.h aimed to
make MPD easily portable, but was never actually made portable.
|
|
Add a G_GNUC_UNUSED attribute.
|
|
AI_ADDRCONFIG is not available on all operating systems. Check if it
is defined in the current build environment.
|
|
The getaddrinfo() flag AI_PASSIVE should be used when resolving
addresses for the bind() system call.
|
|
The listen.c module breaks the build because the variable name used
("sun") for the Unix domain socket part collides with something else
on an OpenSolaris system, likely Sun specific. Renaming it to _sun
(or something else of choice) fixes the build.
[mk: renamed to "s_un"]
|
|
Depending on MPD's umask, the file permissions of the unix socket were
too restrictive, and many clients were not able to connect. Do a
chmod(0666) on the socket, to allow everybody to connect.
|
|
The macro name is HAVE_STRUCT_UCRED, not HAVE_UCRED.
|
|
The local variable "passcred" was only used by ucred code.
|
|
By default, glibc 2.8 hides struct ucred behind the _GNU_SOURCE
macro. I don't want to enable that globally, because it may encourage
the use of non-portable functions. Test if "struct ucred" is
available, and enable _GNU_SOURCE if required.
For details about that issue, see glib's bug database:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=6545
|
|
Enable authentication over unix sockets. Store the client's uid in
the client struct.
|
|
The caller already knows the protocol family, and we can eliminate the
complicated switch statement in establishListen() if we just pass this
information. This seems more robust.
|
|
getaddrinfo() is more robust and has proper IPv6 support. The new
code tries to bind to all IP addresses returned by getaddrinfo().
|
|
Functions which operate on the whole client list are prefixed with
"client_manager_", and functions which handle just one client just get
"client_".
|
|
I don't believe "interface" is a good name for something like
"connection by a client to MPD", let's call it "client". This is the
first patch in the series which changes the name, beginning with the
file name.
|
|
If a unix domain socket already exists, bind() fails. Unlink the
socket file.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7335 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
Try to only include headers which are really needed. We should
particularly check all "headers including other headers". The
long-term goal is to have a manageable, small API for plugins
(decoders, output) without so many mpd internals cluttering the
namespace.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7319 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
git-svn-id: https://svn.musicpd.org/mpd/trunk@7238 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
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
|
|
This trivial patch addresses bug 1639. When a bind_to_address
argument starts with a slash, assume that it is the address of a Unix
domain socket.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7235 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
It is a good practice to constify pointers when their dereferenced
data is not modified within the functions or its descendants.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7234 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
The parameter "port" is not actually used by establishListen(), and
can be removed. This also allows establishListen() to be used for
socket addresses which have no port.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7233 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|