aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* client: eliminate variable "left" in client_write()Max Kellermann2008-10-171-5/+5
| | | | Reduce two temporary variables to only one.
* client: fixed send bufferMax Kellermann2008-10-171-49/+4
| | | | | There is no sense in using the kernel's send buffer size (SO_SNDBUF) for MPD's send buffer. Convert it into a static buffer of 4 kB.
* client: removed CLIENT_MAX_BUFFER_LENGTHMax Kellermann2008-10-171-3/+2
| | | | | | | Use a literal in the struct declaration, and sizeof(client->buffer) everywhere else. Also shrink the buffer from 40 kB to 4 kB. The buffer must only be large enough to hold one line of input, and 4 kB is still more than enough.
* client: added assertions on the buffer pointersMax Kellermann2008-10-171-0/+6
| | | | The buffer pointers must not exceed the buffer size.
* client: read() return value is ssize_tMax Kellermann2008-10-171-2/+2
| | | | Use ssize_t instead of int.
* client: handle partial lines correctlyMax Kellermann2008-10-171-2/+2
| | | | | | Commit 6eb62e47 didn't obey partial lines correctly: when a line wasn't finished in one read, the first part was ignored when the rest arrived.
* configure.ac: test $with_zeroconf!=noMax Kellermann2008-10-171-1/+1
| | | | | | Patch 25b5d90e broke zeroconf compilation, because it assumed that $with_zeroconf was set to "yes", although it can be either "bonjour" or "avahi".
* ffmpeg: new decoder pluginViliam Mateicka2008-10-174-0/+447
| | | | | | [mk: fixed indent, changed copyright statement, added autoconf test, fixed includes paths, fixed 2 gcc warnings, don't close input stream twice]
* Makefile.am: don't compile disabled decoder pluginsMax Kellermann2008-10-1717-159/+103
| | | | | Don't compile the sources of disabled decoder plugins at all, and don't attempt to register these.
* Makefile.am: don't compile disabled sourcesMax Kellermann2008-10-175-28/+25
| | | | | If a feature is disabled, don't compile the source file at all, disable it completely in Makefile.am instead.
* input_stream: removed nmemb argumentMax Kellermann2008-10-178-16/+12
| | | | | The nmemb argument isn't actually useful, and one of nmemb and size was always passed as 1. Remove it.
* input: declare struct input_streamMax Kellermann2008-10-177-43/+50
| | | | | Provide a struct type which can be forward-declared. The typedef InputStream is deprecated now.
* decoder: notify player after entering decodeStart()Max Kellermann2008-10-171-0/+1
| | | | | Wake up the player as soon as the decoder thread has entered its loop. This fixes a dead lock when the input is blocking.
* command: expect "file:///" url for local filesMax Kellermann2008-10-171-4/+7
| | | | | | When adding a local file, clients have to use the "file" URI schema described in RFC 1738 3.10. By adding this schema to "urlhandlers", a client can detect whether this feature is available.
* listen: fixed unused variable warning without HAVE_UCREDMax Kellermann2008-10-171-0/+2
| | | | The local variable "passcred" was only used by ucred code.
* Makefile.am: fix automake 1.6 errorsMax Kellermann2008-10-162-5/+5
| | | | | | | | | | When building with the ancient automake 1.6 version, the following errors occur: Makefile.am:5: invalid variable `doc_DATA' doc/Makefile.am:2: invalid variable `doc_DATA' This patches renames some internal variables.
* removed the "bs" build scriptsMax Kellermann2008-10-1616-757/+1
| | | | | autotools are somewhat ugly, but that doesn't justify duplicating its effort with another complex build system.
* configure.ac: check if "struct ucred" is availableMax Kellermann2008-10-163-2/+35
| | | | | | | | | | | 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
* configure.ac: reformatted AC_ARG_ENABLE sectionMax Kellermann2008-10-161-34/+179
| | | | | Make the configure.ac script more readable by wrapping lines and using proper indentation.
* configure.ac: find more libraries with pkg-configMax Kellermann2008-10-164-295/+16
| | | | | Detect the following libraries with pkg-config: libshout, libid3tag, libmad.
* configure.ac: removed iconv optionMax Kellermann2008-10-161-44/+0
| | | | | We're using GLib's character set conversion functions instead of iconv now.
* command: special case for "add /"Max Kellermann2008-10-161-1/+1
| | | | | The undocumented command "add /" adds the full music database to the playlist. Don't interpret this special path as a local file path.
* playlist: also allow world-readable local filesMax Kellermann2008-10-151-1/+1
| | | | | Allow a local user to not only add his own files, but also all world-readable files (mode 0444).
* song: check file type in song_file_update()Max Kellermann2008-10-151-1/+1
| | | | Don't load non-regular files.
* playlist: added support for adding songs not in the music databaseMax Kellermann2008-10-156-6/+59
| | | | | Clients which have authenticated via unix socket may add local files to the MPD playlist, provided that they own the file.
* command: print error message on "addid" failureMax Kellermann2008-10-151-1/+1
| | | | | | Returning the playlist_result value from a command handler does not make sense. Call print_playlist_result() there, and forward its return value.
* playlist: moved code to song_by_url()Max Kellermann2008-10-151-4/+17
| | | | | Replace some complicated checks from addToPlaylist() to the simpler function song_by_url().
* song: added song_in_database()Max Kellermann2008-10-152-9/+14
| | | | | | | Some functions assume that a song is not in the database when it is a remote song. Based on that, they decide whether they are responsible for freeing the song struct. Add a special function which checks whether a song is in the database (currently equal to song_is_file()).
* listen, client: enable SO_PASSCRED, get client's uidMax Kellermann2008-10-153-3/+41
| | | | | Enable authentication over unix sockets. Store the client's uid in the client struct.
* update: don't skip hidden filesMax Kellermann2008-10-151-3/+5
| | | | | Skip only the special directory entries "." and "..", don't skip all other "hidden" files.
* shout: check for vorbisenc libraryMax Kellermann2008-10-152-3/+5
| | | | | The switch from ogg.m4 to pkg-config intentionally disabled libvorbisenc. Enable it when shout_ogg is used.
* fixing several imports to work via pkg-configEnrico Weigelt2008-10-158-897/+31
| | | | | This patch fixes several imports to use pkg-config instead of certain esoteric tests.
* locate: use g_utf8_casefold() instead of string_toupper()Max Kellermann2008-10-155-30/+16
| | | | | | string_toupper() and strDupToUpper() were not able to deal with character sets other than US-ASCII. Use GLib's g_utf8_casefold() for strings.
* mapper: moved musicDir initialization from path.cMax Kellermann2008-10-155-31/+52
| | | | | Moved the musicDir variable and its initialization code from path.c to mapper.c.
* path: allow starting MPD with non-existing music directoryMax Kellermann2008-10-151-6/+6
| | | | When the music directory is not mounted yet, let MPD start anyway.
* path, tag_id3: use g_convert() instead of charConv.cMax Kellermann2008-10-155-234/+40
| | | | | | | GLib provides an easier API for character set conversion than iconv(). Use g_convert() / g_convert_with_fallback() for all character conversions. We should optimize the path.h API later to return a newly allocated buffer, so we can just pass GLib's return value.
* use GLibMax Kellermann2008-10-152-1/+6
| | | | | | GLib is a nice and portable utility library. We are going to use it from now on, and eliminate a lot of duplicated code from MPD. Why invent the wheel again and again?
* tag_id3: fix indentationMax Kellermann2008-10-151-28/+28
| | | | Indentation was broken in tag_id3.c: it used 4 spaces instead of tabs.
* idle: client command "noidle" aborts idleMax Kellermann2008-10-152-5/+25
|
* client: optimized client_input_received()Max Kellermann2008-10-151-38/+44
| | | | | | Use memchr() instead of manually traversing the input buffer. Update the client's properties after all commands have been processed. Check for buffer overflow once.
* pulse: clarify the meaning of multiple server namesMax Kellermann2008-10-151-0/+2
| | | | | The manual page suggests that you can specify multiple servers, but it did not clarify what that means.
* listen: pass protocol family to establishListen()Max Kellermann2008-10-151-27/+8
| | | | | | 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.
* listen: use getaddrinfo() instead of gethostbyname()Max Kellermann2008-10-151-31/+22
| | | | | getaddrinfo() is more robust and has proper IPv6 support. The new code tries to bind to all IP addresses returned by getaddrinfo().
* command: added command "idle"Max Kellermann2008-10-1414-3/+305
| | | | | | "idle" waits until something noteworthy happens on the server, e.g. song change, playlist modified, database updated. This allows clients to keep up to date without polling.
* alsa: added #ifdefs around SND_PCM_NO_AUTO_xxxMax Kellermann2008-10-141-0/+6
| | | | | | These macros are not available in older libasound versions (1.0.13 fails, 1.0.16 is ok). Ignore the configuration if the constants are not defined.
* Makefile.am: don't override $(docdir)Richard Brown2008-10-142-2/+0
| | | | | Makefile.am sets docdir = $(prefix)/share/doc/$(PACKAGE). This overrides the setting specified in ./configure --docdir.
* playlist: don't use uninitialized local variable (typo)Max Kellermann2008-10-141-1/+1
| | | | | Instead of the uninitialized local variable "s", I should have used "uri".
* configure.ac: enable unix socket support by defaultMax Kellermann2008-10-141-1/+1
|
* configure.ac: removed deprecated checksMax Kellermann2008-10-141-8/+0
| | | | | Removed some configure checks which aren't used anymore since we use C99.
* configure.ac: disabled the C++ and fortran checksMax Kellermann2008-10-141-0/+4
| | | | | Why check for C++ and fortran compilers? This hack was borrowed from Qball's gmpc git repository.