| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
* move set_nonblock{,ing}() into utils.c since we use it
elsewhere, too
* add proper error checking to set_nonblocking()
* use os_compat.h instead of individually #includ-ing system headers
git-svn-id: https://svn.musicpd.org/mpd/trunk@7217 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@7182 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will make refactoring features easier, especially now that
pthreads support and larger refactorings are on the horizon.
Hopefully, this will make porting to other platforms (even
non-UNIX-like ones for masochists) easier, too.
os_compat.h will house all the #includes for system headers
considered to be the "core" of MPD. Headers for optional
features will be left to individual source files.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
| |
This way we'll avoid listening on fd=0 and have a better
chance of having fd=0 as /dev/null
git-svn-id: https://svn.musicpd.org/mpd/trunk@6852 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This attribute was set in log.c, but not exported to other
modules in log.h
This allows us to remove some unneccessary variable
initializations that were added in r6277. I did
audioOutput_shout.c a bit differently, to avoid some
jumps.
before:
$ size src/mpd
text data bss dec hex filename
225546 4040 14600 244186 3b9da src/mpd
after:
$ size src/mpd
text data bss dec hex filename
224698 4040 14600 243338 3b68a src/mpd
git-svn-id: https://svn.musicpd.org/mpd/trunk@6821 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@6445 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
| |
uninitialized variables and non-returning functions that return. Let's
tell it to stfu.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6277 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
| |
call to FATAL().
git-svn-id: https://svn.musicpd.org/mpd/trunk@6276 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@5460 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
| |
Some compilers and linkers aren't smart enough to optimize this,
as global variables are implictly initialized to zero. As a
result, binaries are a bit smaller as more goes in the .bss and
less in the text section.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5254 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@5248 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@5238 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm checking for zero-size allocations and assert()-ing them,
so we can more easily get backtraces and debug problems, but we'll
also allow -DNDEBUG people to live on the edge if they wish.
We do not rely on errno when checking for OOM errors because
some implementations of malloc do not set it, and malloc
is commonly overridden by userspace wrappers.
I've spent some time looking through the source and didn't find any
obvious places where we would explicitly allocate 0 bytes, so we
shouldn't trip any of those assertions.
We also avoid allocating zero bytes because C libraries don't
handle this consistently (some return NULL, some not); and it's
dangerous either way.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
| |
bcopy is old-school, yo
git-svn-id: https://svn.musicpd.org/mpd/trunk@4509 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@4428 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@4427 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|