aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Backport Bonjour support from trunkEric Wong2008-06-164-13/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thanks to Qball, pat, and jat :) ------------------------------------------------------------------------ r6477 | jat | 2007-06-04 19:41:18 +0200 (Mo, 04 Jun 2007) | 4 lines Don't initialize zeroconf until after we've daemonized and log output has been redirected. This prevents zeroconf from blocking daemonization, and makes sure any errors get sent to the logs and not stdout. ------------------------------------------------------------------------ r6474 | jat | 2007-06-03 22:09:12 +0200 (So, 03 Jun 2007) | 3 lines Adding ChangeLog entry for zeroconf_enabled, adding Zeroconf section to mpdconf.example, and updating the zeroconf_* docs. ------------------------------------------------------------------------ r6471 | jat | 2007-06-03 21:44:19 +0200 (So, 03 Jun 2007) | 4 lines Define HAVE_ZEROCONF if Avahi or Bonjour support is enabled, so that we can silence a warning about an unused variable without using stupid checks for HAVE_AVAHI || HAVE_BONJOUR. ------------------------------------------------------------------------ r6467 | pat | 2007-06-03 20:08:51 +0200 (So, 03 Jun 2007) | 2 lines allow zeroconf to be disabled. ------------------------------------------------------------------------ r6464 | jat | 2007-06-03 02:03:20 +0200 (So, 03 Jun 2007) | 2 lines Cleaning up zeroconf configure magic. ------------------------------------------------------------------------ r6463 | jat | 2007-06-03 00:58:51 +0200 (So, 03 Jun 2007) | 2 lines Check if we need -ldns_sd for Bonjour. ------------------------------------------------------------------------ r6462 | jat | 2007-06-03 00:52:53 +0200 (So, 03 Jun 2007) | 2 lines Adding a missing include. ------------------------------------------------------------------------ r6453 | pat | 2007-06-02 19:06:08 +0200 (Sa, 02 Jun 2007) | 3 lines Added Bonjour zeroconf support. This works now natively on MacOS X. I couldn't test mDNSResponder support on Linux, as Debian doesn't include it - but should work as well. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7381 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* inputPlugins: add .oga suffix support for Ogg containersEric Wong2008-06-162-2/+2
| | | | | | | | | | | | | | | | | | | | | From <http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions>: > .oga - audio/ogg > > * Ogg Audio Profile (audio in Ogg container) > * Applications supporting .oga, .ogv SHOULD support decoding > from muxed Ogg streams > * Covers Ogg FLAC, Ghost, and OggPCM > * Although they share the same MIME type, Vorbis and Speex > use different file extensions. > * SHOULD contain a Skeleton logical bitstream. > * Vorbis and Speex may use .oga, but it is not the > prefered(sic) method of distributing these files because of > backwards-compatibility issues. Thanks to Qball and Rasi for the patch. https://svn.musicpd.org/mpd/trunk r7191 git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7380 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix segmentation fault in song info parserMax Kellermann2008-06-141-4/+5
| | | | | | | | The database parser does not check whether the song object has been initialized yet, which may lead to a NULL pointer dereference. Add this check. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7379 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix strtok() related segmentation faultMax Kellermann2008-06-141-1/+4
| | | | | | | strtok() may return NULL if the input is an empty string. The playlist parser did not check for that. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* jack: initialize audioOutput->dataMax Kellermann2008-06-141-1/+3
| | | | | | | | | | | | | | Initialize audioOutput->data with NULL in jack_initDriver(). Previously, this was never initialized, although the other functions relied on it being NULL prior to jack_openDevice(). This patch addresses bug 0001641[1]. In contrast to the patch provided by the bug reporter, it moves the initialization before the "!param" check. [1] - http://musicpd.org/mantis/view.php?id=1641 git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7377 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mod: fix crashing on modtracker filesHans de Goede2008-06-141-1/+1
| | | | | | | | | | This patch was taken from http://bugzilla.livna.org/show_bug.cgi?id=1987 and addresses bug 0001693[1] [1] - http://musicpd.org/mantis/view.php?id=1693 git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7376 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* storedPlaylist: faster, but less accurate check for maximum sizesEric Wong2008-01-291-7/+7
| | | | | | | There are still other ways to run the mpd server out of disk-space, so permissions are still recommended to protect against malicious users. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7178 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* interface: abort if we expire while processing linesEric Wong2008-01-271-0/+2
| | | | | | | If we keep processing expired interfaces in a loop, we'll eventually close it and get fd < 0, causing assertions to fail. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7175 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Redirect stdin *before* we establish a listen socketEric Wong2008-01-272-15/+29
| | | | | | | 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/branches/branch-0.13.0-fixes@7174 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix Sun C 5.9 / C99 compatiblityEric Wong2008-01-271-1/+1
| | | | | From sbh, r7041 and r7042 from trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7173 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* pcm_utils: remove redundant semi-colon (breaks compilation with some compilers)Eric Wong2008-01-271-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7170 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Know about SND_PCM_STATE_RUNNING, might fix some bugsEric Wong2008-01-271-0/+4
| | | | | From qball, r7077 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7169 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* storedPlaylist: prevent potential DoS from stored playlist commandsEric Wong2008-01-263-2/+19
| | | | | | | | | | | | | | | | | | | | | | While mpd has always protected against the infinite expansion of the main playlist by limiting its size in memory, however the new storedPlaylist code has never checked for this limit. Malicious (or clumsy) users could repeatedly append songs to stored playlists, causing files to grow increasingly large on disk. Attempting to load extremely large files into memory will require mpd to slurp that all into memory, and ultimately the file would be unusable by mpd because of the configurable playlist size limit. Now we limit stored playlists to the max_playlist_length configuration variable set by the user (default is 16384). We will refuse to append to playlist files if they hit that limit; and also refuse to load more than the specified amount of songs into memory. r7154 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7165 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix builds that only have FLAC >= 1.1.3 but not Ogg-VorbisEric Wong2008-01-263-9/+9
| | | | | r7108 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7164 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* If clearing stored playlist fails, don't return error + OK. but only the ↵Eric Wong2008-01-261-2/+1
| | | | | | | error. this was caused by always having the handleStoredPlaylist function return 0. From qball, r7105 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7163 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* conf.c: remove extra semi-colon here, tooEric Wong2008-01-261-1/+1
| | | | | r6874 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7162 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* dmix fix, don't call snd_pcm_drain unless we're already in the RUNNING state ↵Eric Wong2008-01-261-1/+3
| | | | | | | (when users press stop, previous snd_pcm_drop(), then snd_pcm_drain() was called. this would lockup dmix) From shank, r6517 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7161 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* removing debug messages from signal handlersEric Wong2008-01-264-10/+18
| | | | | | | | | | | As unfortunate as it is to remove such useful debugging messages, it's necessary to fix a potential deadlock with signal handling. A bunch of functions the debug functions call aren't safe to call from a signal handler. There are some alternate solutions, but they're neither pretty nor simple. So just remove them entirely for now. From: jat, r6828 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7160 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix endless loop when mpd is launched from a non-interactive shell.Eric Wong2008-01-261-1/+5
| | | | | | | | | | | | | | | | | | | | Thanks to _noth_ for the patch, this fixes Mantis bug #1534 _noth_ wrote: > When MPD is launched from a non-interactive shell, it enters an endless > loop, filling up its error log file with "error accept()'ing" messages. > This is caused by the fact that stdin is already closed when mpd starts > up. listenOnPort() opens up the first of its sockets as fd 0 (the first > empty fd table position). Then, setup_log_output()->redirect_stdin() > overwrites fd0 (fd=open("/dev/null",...); dup2(fd, STDIN_FILENO);) > without checking if it corresponds to the actual standard input (or if > it is open in the first place). This means that listenSockets[0].fd now > is a fd for /dev/null, thus doIOForInterfaces()->getConnections() can't > accept(2) on it and fails with the above error. The attached patch fixes > this for me. r6843 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7159 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* zeroconf: avoid passing NULLs to Avahi *_free() routinesEric Wong2008-01-261-4/+6
| | | | | | | | This should fix Debian bug #428551 (mpd crashes when restarting the dbus daemon) r6844 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7158 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mpc_plugin: break out if a missed error branchEric Wong2008-01-261-0/+2
| | | | | | | We shouldn't try to continue if mpc_decoder_initialize() fails. r7113 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7157 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* storedPlaylist: avoid segfaulting with "/" in the pathEric Wong2008-01-261-2/+10
| | | | | A different, cleaner fix was used in trunk. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7156 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fixup includes for new (1.1.4+ FLAC) (thx normalperson)Avuton Olrich2007-09-171-1/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@6897 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding ioops.h to mpd_headers so that it gets included in the tarball.J. Alexander Treuman2007-05-281-0/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6323 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Increasing default buffer_before_play from 0% to 10%.J. Alexander Treuman2007-05-271-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6290 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix compilation error (missing ,)Avuton Olrich2007-05-271-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6289 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* "unable open" -> "unable to open"J. Alexander Treuman2007-05-261-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6278 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* After changing ERROR();exit() to FATAL(), gcc incorrectly detects someJ. Alexander Treuman2007-05-263-6/+6
| | | | | | 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
* Changing all calls to ERROR() followed by exit(EXIT_FAILURE) with a singleJ. Alexander Treuman2007-05-2621-273/+135
| | | | | call to FATAL(). git-svn-id: https://svn.musicpd.org/mpd/trunk@6276 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up pcm_getSampleRateConverter.J. Alexander Treuman2007-05-261-23/+27
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6275 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Exit with an error if channel count isn't 1 or 2.J. Alexander Treuman2007-05-261-0/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6274 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Make pcm_convertAudioFormat return the buffer size. This is necessaryJ. Alexander Treuman2007-05-264-31/+32
| | | | | | | | because lsr may return less than the input buffer size, and the rest of the audio code needs to know the new size. This fixes the clicking that was introduced with recent changes to the lsr code. A huge thanks to remiss for figuring this out. git-svn-id: https://svn.musicpd.org/mpd/trunk@6273 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* weather -> whetherJ. Alexander Treuman2007-05-261-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6271 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Changing calls to strdup to xstrdup.J. Alexander Treuman2007-05-261-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up addToStoredPlaylist. Now we call freeJustSong if adding a URL.J. Alexander Treuman2007-05-261-9/+18
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6269 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Make sure StoredPlaylists always contain UTF-8 paths that are eitherJ. Alexander Treuman2007-05-262-23/+38
| | | | | | | | | | | | | | | | | | | | | | relative paths in the DB or URLs. The main functional difference is that playlistmove and playlistdelete will rewrite playlists in the correct encoding and remove invalid lines instead of potentially modifying them. The specific changes are: appendSongToStoredPlaylist: * Don't convert to FS charset * Don't prepend music_directory if saving absolute paths writeStoredPlaylistToPath: * Convert to FS charset * Prepend music_directory if saving absolute paths loadStoredPlaylist: * Make sure each line is either in the DB or a URL loadPlaylist: * Don't bother checking paths, since it's done in loadStoredPlaylist now git-svn-id: https://svn.musicpd.org/mpd/trunk@6266 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* More formatting/error message cleanups in storedPlaylist.c.J. Alexander Treuman2007-05-261-50/+18
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6265 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't call freeStoredPlaylist(sp) inside an if (!sp) block. It causesJ. Alexander Treuman2007-05-261-2/+0
| | | | | segfaults. git-svn-id: https://svn.musicpd.org/mpd/trunk@6264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up formatting and error messages in storedPlaylist.c.J. Alexander Treuman2007-05-251-63/+25
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6263 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Reverting to the full lsr API. Turns out the simple API needs all of theJ. Alexander Treuman2007-05-247-36/+85
| | | | | | | | audio at once, so it won't work for us. The old full API code was still heavily broken, as each call to pcm_convertSampleRate() used the same state, even if it was processing two streams of audio. The new code keeps a separate state for each audio stream that's being converted. git-svn-id: https://svn.musicpd.org/mpd/trunk@6255 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding rename command, for renaming stored playlists.J. Alexander Treuman2007-05-243-0/+74
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6246 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up error messages in storedPlaylist.c.J. Alexander Treuman2007-05-241-28/+42
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't list playlists in lsinfo if the path isn't the root directory (theyJ. Alexander Treuman2007-05-243-12/+23
| | | | | can't be loaded anyway). git-svn-id: https://svn.musicpd.org/mpd/trunk@6244 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Changing some DEBUG/ERROR/FATAL messages in the JACK plugin.J. Alexander Treuman2007-05-231-18/+13
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6232 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Tidying up pcm_utils.c a bit more.J. Alexander Treuman2007-05-231-8/+9
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6230 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Switching to the lsr simple API. The problem with the full API is that theJ. Alexander Treuman2007-05-231-19/+7
| | | | | | | | | | | number of channels is specified when the converter state is created. Previously this was only done once, thus breaking horribly when the input audio suddenly had a different channel count. A new state could be created every time the number of channels changes, but this could happen many times a second if resampling to two different formats at once. The simple API doesn't have this problem, as channel count is an argument to the conversion function itself. git-svn-id: https://svn.musicpd.org/mpd/trunk@6229 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Just specify mimeType as NULL in mpc's InputPlugin struct.J. Alexander Treuman2007-05-221-2/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Split pcm_convertAudioFormat into separate functions for bitrate, channel,J. Alexander Treuman2007-05-224-186/+217
| | | | | | and samplerate conversion. This makes the code much easier to read, and fixes a few bugs that were previously there. git-svn-id: https://svn.musicpd.org/mpd/trunk@6224 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up/correcting some comments.J. Alexander Treuman2007-05-221-10/+7
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6200 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* ReindentingJ. Alexander Treuman2007-05-221-10/+12
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6199 09075e82-0dd4-0310-85a5-a0d7c8717e4f