Commit Graph

1493 Commits

Author SHA1 Message Date
Julien BLACHE 1ffcbdae27 Add a fail_cb to evhttp_request for connection failures
The callback will be executed if a failure (timeout, read error) is detected
on an incoming connection.

This can be used to detect a client closing the connection while engaged in a
chunked reply and actively pushing chunks to the client. Without this
notification, it is impossible to know if/when a connection gets closed and
react appropriately (ie. stop pushing chunks) resulting in a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE e4fe084619 Use embedded evhttp 2009-05-03 11:16:57 +02:00
Julien BLACHE 6bce4e08ca Import evhttp from libevent 1.4.10 2009-05-03 11:16:57 +02:00
Julien BLACHE c9868175fd Implement URI encoding quirk for iTunes and Roku
iTunes and Roku devices do not encode + as %2B in the query string and
do not encode space as + either in the query string (though at least the
Roku encode space as %20 everywhere). This needs to be worked around or
browse queries fail to parse because + was decoded as space when the query
really needs a + character.
2009-05-03 11:16:57 +02:00
Julien BLACHE 09ef188d90 Add authentication to web interface, RSP and DAAP 2009-05-03 11:16:57 +02:00
Julien BLACHE dc68de86dd Add HTTP Basic auth support 2009-05-03 11:16:57 +02:00
Julien BLACHE cd636cf42d Add base64 decoding routine 2009-05-03 11:16:57 +02:00
Julien BLACHE 7a601d7daa Enable streaming of transcoded content 2009-05-03 11:16:57 +02:00
Julien BLACHE 2c2498b6b4 Add transcoding infrastructure 2009-05-03 11:16:57 +02:00
Julien BLACHE 22092f555b Add L_XCODE log domain
Log domain for anything transcoding-related.
2009-05-03 11:16:57 +02:00
Julien BLACHE e5cc417e96 Add DJB hash function to misc.[ch] and use it 2009-05-03 11:16:51 +02:00
Julien BLACHE 0a1c4545dc Move safe_ato[il]() to misc.[ch] 2009-04-30 14:46:37 +02:00
Julien BLACHE 91414c10d7 Use a hashtable for dmap fields lookup
The hashtable is built around an AVL tree and the DJB hash function;
the AVL tree is built at init time and the init routine checks for
collisions.
2009-04-30 13:57:40 +02:00
Julien BLACHE c071a58c3c Wire up DAAP support 2009-04-30 13:57:40 +02:00
Julien BLACHE 00876facde Introduce DAAP protocol implementation
Same restrictions as RSP at the moment:
 - no transcoding
 - no authentication
2009-04-30 13:57:34 +02:00
Julien BLACHE f332f992aa Document HTTP client quirks known to mt-daapd 2009-04-28 18:00:27 +02:00
Julien BLACHE 651d946cc2 Implement RSP streaming. 2009-04-28 18:00:27 +02:00
Julien BLACHE f05a55e7fc Implement HTTP chunked streaming
Transcoding is not supported yet.

In the current state of affairs, we will crash if the client closes the
connection before the tranfser is done. This is a limitation of evhttp,
it is not possible to detect this condition. This will need to be fixed
in evhttp.
2009-04-28 18:00:21 +02:00
Julien BLACHE 5e8275a998 Wire up RSP support 2009-04-25 23:02:21 +02:00
Julien BLACHE 718631bab5 Introduce RSP protocol implementation
Lacks a couple of things:
 - actual streaming
 - transcoding
 - authentication
2009-04-25 23:02:15 +02:00
Julien BLACHE 21209bd040 Make sp_parse() second argument (term) const
The term (filter) argument is strdup()'d and that copy gets destroyed by
the parsing.
2009-04-25 16:27:59 +02:00
Julien BLACHE 6ed689d1c9 Move FILTER_TYPE_* definitions to smart-parser.h, where they belong 2009-04-25 16:27:59 +02:00
Julien BLACHE 29db6de1bb Fixup prototype for db_enum_fetch_row()
Second argument is actually a pointer to a pointer to a struct
db_media_file_info, and not a simple pointer.

That code sucks. Plain and simple. Will be taken out and shot at the
earliest occasion. Someone badly needs to take "Pointers 101", among
a lot of other 101 courses. Sigh.
2009-04-25 16:27:58 +02:00
Julien BLACHE bdcb5b88dc Rename struct tag_packed_m3ufile and struct tag_packed_mp3file 2009-04-25 16:27:58 +02:00
Julien BLACHE 5fc698c94f Add L_RSP log domain 2009-04-25 16:27:58 +02:00
Julien BLACHE 9d1cd9117f Enable new HTTP server alongside the old webserver 2009-04-25 16:27:58 +02:00
Julien BLACHE 095350e6eb Introduce new evhttp-based HTTP server 2009-04-25 16:27:47 +02:00
Julien BLACHE c9494a898e Add L_HTTPD for new evhttp-based HTTPd implementation 2009-04-24 15:45:44 +02:00
Julien BLACHE 7afc55307d Change prototype and return values for new file scanners 2009-04-24 15:45:44 +02:00
Julien BLACHE 92362068c6 Remove old file scanner (mp3-scanner) 2009-04-24 15:45:43 +02:00
Julien BLACHE 3a38e62f8a Remove/replace mp3-scanner.h include 2009-04-24 15:45:43 +02:00
Julien BLACHE 1a0e1731e4 Remove iTunes XML playlist parsing code 2009-04-24 15:45:43 +02:00
Julien BLACHE 69d6acad37 Remove support for iTunes XML playlist
No plans for OS X nor Windows in the near future, and those are most
probably useless on other platforms.
2009-04-24 15:45:43 +02:00
Julien BLACHE 831016bb05 Use new m3u scanner 2009-04-24 15:45:43 +02:00
Julien BLACHE 1a0f1317e2 Add rewritten scan_static_playlist() as scan_m3u_playlist()
Get rid of the I/O layer, better code.
2009-04-24 15:45:43 +02:00
Julien BLACHE 4a9d89c007 Rename struct tag_m3ufile into struct playlist_info 2009-04-24 15:45:43 +02:00
Julien BLACHE bc5a3db08a Rename scan-url.c to filescanner_urlfile.c 2009-04-24 15:45:43 +02:00
Julien BLACHE 0a61b5a51d Rewrite .pls/.url file parser
Get rid of the I/O layer, ameliorate bitrate parsing, restructure code.
2009-04-24 15:45:33 +02:00
Julien BLACHE 1eaa3979e6 Add missing db_deinit() calls 2009-04-20 16:41:06 +02:00
Julien BLACHE c4f8c7c254 Use new file scanner 2009-04-20 16:41:06 +02:00
Julien BLACHE c0e3c1bc5f Introduce new file scanner
The new file scanner has inotify support and runs in its own thread, including
for performing the initial rescan.
2009-04-20 16:41:01 +02:00
Julien BLACHE 57c698fce9 Export scan_static_playlist() 2009-04-19 19:39:15 +02:00
Julien BLACHE bbab963fe2 Use new conffile code in main.c; remove wrappers 2009-04-19 19:39:15 +02:00
Julien BLACHE bacdddb82f Use -v for version information 2009-04-19 19:39:11 +02:00
Julien BLACHE 5e48a8bb6a Remove -k/kill_server option 2009-04-19 19:38:41 +02:00
Julien BLACHE 362db5003b Remove config file conversion code 2009-04-19 19:37:48 +02:00
Julien BLACHE 8e4b2db99e Export cfg structure 2009-04-19 19:37:47 +02:00
Julien BLACHE e3ab6de328 Replace old config code, remove old code
Activate the new confuse-based config code, add compatibility functions
for the old config code.
2009-04-19 19:37:47 +02:00
Julien BLACHE a17e23010a Introduce new confuse-based conffile support 2009-04-19 19:37:47 +02:00
Julien BLACHE 9f2e088d57 Add more .gitignore stuff 2009-04-19 19:37:47 +02:00
Julien BLACHE e8c9a04376 Remove OS abstraction layer
Migrate daemon startup code in main.c, migrate functions with a single
callsite to that file. Remove setpgrp() usage in favor of setsid(), remove
configure check for setpgrp().
2009-04-19 19:37:42 +02:00
Julien BLACHE 9d026442b2 Remove alternate plugin load paths 2009-04-19 19:37:41 +02:00
Julien BLACHE 3ec2cc0f00 Stop the TXT record encoding madness
Use a proper string array to pass the TXT record fields, get rid of the
encoding stuff.

Changes the plugin API.
2009-04-19 19:37:41 +02:00
Julien BLACHE 2e2dbc6964 Free mDNS group entries in mdns_deinit() 2009-04-19 19:37:41 +02:00
Julien BLACHE b3b66449bc Build the string list for the mDNS TXT record once in mdns_register
Instead of rebuilding the string list at every regitration, build it once
and for all in mdns_register().
2009-04-19 19:37:41 +02:00
Julien BLACHE 8718f856df Remove unused, unfinished, useless UPnP code 2009-04-19 19:37:41 +02:00
Julien BLACHE 6db32640ef Remove no-op os_deinit() 2009-04-19 19:37:41 +02:00
Julien BLACHE 54c01d3b57 Move signal processing to the main loop using signalfd 2009-04-19 19:37:41 +02:00
Julien BLACHE 0292b9c625 Fix memory leak 2009-04-19 19:37:41 +02:00
Julien BLACHE 39e5b11bec Remove old Avahi mDNS backend 2009-04-19 19:37:41 +02:00
Julien BLACHE 97faadf6dd Enable new mDNS backend 2009-04-19 19:37:35 +02:00
Julien BLACHE 97cb82faf7 Add new Avahi mDNS backend with libevent integration. 2009-04-08 14:57:34 +02:00
Julien BLACHE 8a351e5bf8 Manage explicit event bases 2009-04-08 14:57:29 +02:00
Julien BLACHE 02f960b25b Fix Avahi races
Switch from custom thread + SimplePoll to ThreadedPoll, ensuring proper
locking of the polling thread.
2009-04-07 14:03:13 +02:00
Julien BLACHE df0013a166 Introduce libevent for running the main loop
Start the gradual libevent conversion.
2009-04-07 12:53:04 +02:00
Julien BLACHE 3b4e0d8f74 Add missing ; 2009-04-07 11:40:14 +02:00
Julien BLACHE b3cffd491d Add and use io_urlencode() to replace %U format spec for io_open()
Stopgap to replace the %U modifier until something happens with the whole
io_* stuff.
2009-04-05 22:42:03 +02:00
Julien BLACHE 687be1cbb6 Remove compat.[ch] 2009-04-05 19:15:44 +02:00
Julien BLACHE 7098dfbab3 Fix various trivial compiler warnings 2009-04-05 19:03:29 +02:00
Julien BLACHE ea36855793 Fix format specifiers for 64bit integers
Use "%" PRIu64 from inttypes.h instead of "%lld" which is incorrect on 64bit
platforms.
2009-04-05 18:54:59 +02:00
Julien BLACHE f4721a6cec Add explicit -export-dynamic
mt-daapd needs an explicit -export-dynamic so its symbols are made visible
to the plugins at load time.
2009-04-05 18:54:59 +02:00
Julien BLACHE 081a13bbea Fix ffmpeg API breakage
avcodec_audio_decode() has been removed in favor of avcodec_decode_audio2();
output buffer size must be passed to the function.
2009-04-05 18:54:59 +02:00
Julien BLACHE 888bf11d2f Replace %U format by %s
%s format specifier means the string must be URL encoded. Replace it by a
simple %s for the time being until plans about the I/O layer become clearer.
2009-04-05 18:54:59 +02:00
Julien BLACHE e318858d44 Fill in type & codectype for .url/.pls 2009-04-05 18:54:59 +02:00
Julien BLACHE c2ffed5e2b Remove unused iconv-dependent code.
The code was mainly used by the MP3 scanner.
2009-04-05 18:54:59 +02:00
Julien BLACHE d8a9772afc Remove/replace non-gcc compiler-specific defines and pragmas
Remove MSVC-specific defines and pragmas, use __attribute__((packed)) where
needed.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3dd76cf9e9 Remove unneeded prototypes 2009-04-05 18:54:58 +02:00
Julien BLACHE 625ffd2112 Work around ffmpeg bugs in metadata support for some formats
Fall back to the legacy format-specific scanners for WMA, FLAC and Musepack,
as ffmpeg doesn't report metadata for FLAC nor Musepack and has bugs with
some WMA variants.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3a53a068af Initialize ffmpeg in main()
ffmpeg needs to be initialized before scanning songs at startup. As a
consequence, the ffmpeg plugin does not need to call av_register_all()
itself anymore.
2009-04-05 18:54:58 +02:00
Julien BLACHE c9107ed48c Remove unneeded id3tag.h include 2009-04-05 18:54:58 +02:00
Julien BLACHE f14ba228ec Remove Ogg Vorbis file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 056f788c99 Remove MP3 file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 9f45181bb3 Remove AAC file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 84a132d166 Remove WAV file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 23802f1866 Remove AIFF file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE a3e83775b3 Enable ffmpeg file scanner
Replace all file scanners with the new ffmpeg file scanner. Keep pls and
url exceptions.
2009-04-05 18:54:49 +02:00
Julien BLACHE 8dce7ee0f3 Add comments pertaining to the type, codectype and description fields
Better document the type, codectype and description fields, noting they
equivalent DAAP fields and usage/restrictions.
2009-04-05 10:24:10 +02:00
Julien BLACHE 10037ff7cf Rename struct tag_mp3file
That struct is badly named, rename it to struct media_file_info and keep
the typedef as-is for now.
2009-04-05 10:10:24 +02:00
Julien BLACHE 0187b5d405 Make ffmpeg mandatory 2009-04-05 10:06:03 +02:00
Julien BLACHE f5dd1bec13 Add an ffmpeg-based file scanner
Use ffmpeg's (starting with SVN 20090301) new metadata API to extract
metadata from virtually all formats supported by ffmpeg. That will allow
to get rid of some dependencies and some open-coded routines that aren't
maintainable.
2009-04-05 09:51:40 +02:00
Julien BLACHE 2cb11e8f42 Fix typos in help output 2009-04-02 13:24:09 +02:00
Julien BLACHE 1b98e3c036 Fix Avahi mDNS backend
Fix Avahi polling:
 - use avahi_simple_poll_loop() in rend-avahi.c:rend_poll() instead
   of reinventing yet another type of wheel;
 - start RendezVous thread after daemonizing, so the thread actually
   runs after we've daemonized.

Also handle Avahi daemon restarts, as it's good practice and easy to do.

 ... And /that/, my friends, is how we do that ...
2009-04-02 13:22:23 +02:00
Julien BLACHE 464bd414a1 Properly guard bytes_written against NULL
ws_copyfile() can be called with bytes_copied == NULL but did not
check for this condition before using bytes_copied after an IO error,
leading to a segfault.
2009-04-02 13:17:16 +02:00
Julien BLACHE 46acba0edb Fix ilst atom parsing
Fix ilst children parsing; when parsing children, we're already 8 bytes
into the ilst atom, so take that into account.
2009-04-02 13:16:07 +02:00
Julien BLACHE 93a97956a0 Change return type to boolean
Use a boolean return type instead of returning -1 with an unsigned return type.
2009-04-02 13:14:54 +02:00
Neil Spring 7565b02229 Properly reset XML scanner state between scans
Fix indexing of multiple XML files by resetting path_found for each
XML file.
2009-04-02 13:10:19 +02:00
Chris Pitchford 54d441f57c Fix handling of URIs in io_open()
Fix io_open()'s handling of options in URI, fixing the "filenames with a
question mark are not scanned" bug.

Patch by Chris Pitchford, cpitchford on the Firefly forum.
2009-04-02 13:07:36 +02:00
Jeremy Kerr 7c1752d871 Fix a bad return value in ws_addarg()
Fix a bad return value in ws_addarg() when updating a header value,
leading the caller to believe an out of memory condition happened.
2009-04-02 13:01:19 +02:00
Nico Golde 567bd3ee03 Fix integer overflow, CVE-2008-1771
Fix integer overflow leading to heap-based buffer overflow causing a
remote Denial of Service and possibly allows to execute arbitrary code.
2009-04-02 12:59:31 +02:00
Nico Golde 5d227e85c5 Fixup taglib_tab_free_strings() invocation
Fixup taglib_tab_free_strings() invocation; the function never took an
argument to start with, so fix that up as it now breaks the build.
2009-04-02 12:29:49 +02:00
Julien BLACHE b80b81adae Don't clobber LIBS with -ldl 2009-04-02 12:18:53 +02:00
Julien BLACHE 3a55c153b8 Move wavstreamer to tools 2009-04-02 12:18:47 +02:00
Julien BLACHE 023e034020 Don't clobber LDFLAGS with iconv 2009-04-02 11:42:39 +02:00
Julien BLACHE 1c97e73351 Remove embedded copy of getopt 2009-04-02 11:08:41 +02:00
Julien BLACHE cfdb37c07c Remove Mac OS conditional code 2009-04-02 11:06:29 +02:00
Julien BLACHE c3fb950737 Remove WIN32 conditional code 2009-04-02 11:04:33 +02:00
Julien BLACHE b59f936390 Remove barely-used bsd-snprintf.[ch] 2009-04-01 19:26:19 +02:00
Julien BLACHE fc8038de6b Get rid of unused restart.[ch] 2009-04-01 19:17:05 +02:00
Julien BLACHE 242d41fd0d Remove unused uici code 2009-04-01 19:16:28 +02:00
Julien BLACHE d3b4d80284 Remove SVN keywords 2009-04-01 19:16:21 +02:00
Julien BLACHE 36a0217199 Use pkg-config for TagLib 2009-04-01 19:16:20 +02:00
Julien BLACHE b4deba68b6 Use pkg-config for libFLAC
Don't use FLAC_CFLAGS because it contains -I/usr/lib/FLAC which breaks
anything using assert(), due to FLAC's own assert.h.
2009-04-01 19:16:20 +02:00
Julien BLACHE 22e646099a Use pkg-config for Ogg/Vorbis 2009-04-01 19:16:20 +02:00
Julien BLACHE 2fd4b744a7 Use pkg-config for id3tag 2009-04-01 19:16:20 +02:00
Julien BLACHE 5f682ca276 Remove unused SSL support
Unused, and anyway OpenSSL is not compatible with the GPL.
2009-04-01 19:16:20 +02:00
Julien BLACHE 7ce2e75859 Use pkg-config to check for libavcodec & libavformat 2009-04-01 19:16:20 +02:00
Julien BLACHE 2daa9835a3 Update includes for newer ffmpeg versions 2009-04-01 19:16:19 +02:00
Julien BLACHE 098ab7d736 Make SQL mandatory and sqlite3 the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE c0d395b7f9 Remove unused NSLU2 flag 2009-04-01 19:16:19 +02:00
Julien BLACHE eb5cccca06 Make MDNS mandatory and Avahi the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 185864e799 Remove custom memory debug facility 2009-04-01 19:16:19 +02:00
Julien BLACHE ca1c461419 Remove gdbm database backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 1d71d95332 Remove x bit 2009-04-01 19:16:19 +02:00
Julien BLACHE e2a31b40a2 Remove obsolete sqlite v2 SQL backend 2009-04-01 19:16:19 +02:00
Julien BLACHE a278c5998c Remove non-Avahi mDNS backends 2009-04-01 19:16:13 +02:00
Julien BLACHE 3a8c7b3c41 Get rid of Apple's RendezVous mDNS implementation 2009-04-01 15:36:55 +02:00
Julien BLACHE 1ca30657ac Remove unneeded script 2009-04-01 15:36:55 +02:00
Julien BLACHE b4fe0300b4 Remove test drivers 2009-04-01 15:36:37 +02:00
Julien BLACHE 180cc2eb5a Get rid of win32 code 2009-04-01 14:48:27 +02:00
Ron Pedde f3d1caff93 Fix 3 large memory leaks 2007-10-29 05:48:42 +00:00
Ron Pedde e842f38fce fix windows blocking socket issue, work around problem with temp update table not being seen by fetch thread during db update 2007-10-24 05:44:35 +00:00
Ron Pedde c8d09bc310 Make rsp update session status, to help kick off rescans 2007-10-24 04:06:52 +00:00
Ron Pedde d75e1f8d48 Update playcounts for transcoded files 2007-10-24 03:59:34 +00:00
Ron Pedde a8b6d93c07 Add count value to smart playlists, closing #150 2007-10-23 04:52:25 +00:00
Ron Pedde fffe34e5eb Fix bogus error messages on web config 2007-10-23 04:23:50 +00:00
Ron Pedde 60f8d1299f Fix wav scanning for wav files with more than two blocks (wmp wav files with LIST/INFO blocks) 2007-10-23 03:57:20 +00:00
Ron Pedde ad5718bb9c Add DESCRIPTION tag as an alias for COMMENT in flac files 2007-10-23 03:43:17 +00:00
Ron Pedde 34a4bb998e Fix duration scanning for wav files 2007-10-23 03:37:51 +00:00
Ron Pedde 1292992f6f Fix for format string vulnerability, reported as UnprotectedHex.com advisory UPH-07-03 by nnp (no CVE yet) 2007-10-21 22:51:01 +00:00
Ron Pedde e70f43e1ce Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-02 by nnp (no CVE yet) 2007-10-21 22:45:32 +00:00
Ron Pedde eb7b49d848 Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-01 by nnp (no CVE yet) 2007-10-21 22:13:37 +00:00
Ron Pedde 31bbea6109 Win32 performance fix (WSAEWOULDBLOCK hack issue) 2007-10-19 03:35:24 +00:00
Ron Pedde 43c234e666 Add per-thread db handles to guard against SQLITE_MISUSE 2007-10-13 22:03:52 +00:00
Ron Pedde 6df87878a5 increased logging to debug wav streaming problem on win32/vista 2007-10-07 04:48:19 +00:00
Ron Pedde aa7b98f214 Fix for iTunes 7 password prompt on movie playback 2007-10-07 04:39:30 +00:00
Ron Pedde 3caf85e221 Fix for crash on os/arch without va_copy 2007-10-02 03:15:21 +00:00
Ron Pedde a921916f30 Tune down logging a bit more 2007-09-25 07:50:48 +00:00
Ron Pedde 208ef6b1f2 minor signed/unsigned cleanups 2007-09-25 06:15:47 +00:00
Ron Pedde 01c7d18758 io.c: Fix rebuffering issue on win32 (fixing #235)
webserver.c: Fix write error log messages.  Possible fix for crash on mipsel (uninitialized heap issue).
2007-09-23 10:14:51 +00:00
Ron Pedde 4966f4213e Fold the mp4 scanner into the aac scanner, fix the playlist issue, and the aac metadata parsing issue 2007-09-16 02:03:25 +00:00
Ron Pedde 854a99470c Fix problem with password protected libraries 2007-09-13 04:52:18 +00:00
Ron Pedde 5864fd8a15 Fix problem with line endings on m3u files 2007-09-13 04:27:47 +00:00
Ron Pedde b082328a4d This should be the REAL freebsd socklen_t fix 2007-09-11 04:45:59 +00:00
Ron Pedde 196ac7b468 Version the plugins, to stop from loading old versions, plus fix up search paths for ipkg based installs 2007-09-11 04:29:52 +00:00
Ron Pedde 491d1038eb Fix for EOF problem without trailing linefeed as reported by evans02472 on the forums 2007-09-09 06:02:03 +00:00
Ron Pedde 2734480212 Freebsd fix for socklen_t problem reported in forums 2007-09-09 05:56:56 +00:00
Ron Pedde 9d9ce5ba7a fix win32 library loading issues. 2007-09-07 07:51:00 +00:00
Ron Pedde effab02bc1 scan for new plugin path when not specified in config 2007-09-07 06:55:25 +00:00
Ron Pedde 06a107f116 Add debugging to try and find problems with EBADF on Sun Cobalt RaQ 2007-09-07 06:52:23 +00:00
Ron Pedde 64b8eb7e71 don't include iconv.h when building without iconv 2007-09-05 03:28:56 +00:00
Ron Pedde 9d9533a07a Win32 iconv fixes. 2007-09-04 07:34:18 +00:00
Ron Pedde 0be8f98a40 Allow --disable-iconv 2007-09-04 07:26:50 +00:00
Ron Pedde 9246bfe59e iconv fixes for linux 2007-09-04 05:11:43 +00:00
Ron Pedde 5e69ba1a35 add ff-plugin-events.h to dist package 2007-09-04 02:40:22 +00:00
Ron Pedde 9aaff066d3 Add codepage translation for non-utf8 id3v1 tags 2007-09-03 21:39:20 +00:00
Ron Pedde 00cbda5e95 deprecate general/playlist 2007-09-03 17:50:56 +00:00
Ron Pedde 839f500358 Fix re-write of config file by preserving line endings 2007-09-03 17:48:56 +00:00
Ron Pedde cab9a1ecd0 Fix utf-16 problems in win32 and unix. 2007-08-31 05:23:16 +00:00
Ron Pedde 2f83ecb3fc fix stupid pointer bug 2007-08-30 05:42:59 +00:00
Ron Pedde 9d222abd4b Fix sys/time requirement in upnp.c 2007-08-30 05:36:06 +00:00
Ron Pedde 153e874bef Patch from Stephane Moreau to make apache rewrites easier 2007-08-27 00:57:47 +00:00
Ron Pedde f2174b3173 Patch from Ian Burrell to move plugins from sysconfdit to libdir, as it Should Be 2007-08-27 00:55:17 +00:00
Ron Pedde 1ca5cef013 Fix windows open for non-latin files 2007-08-27 00:43:33 +00:00
Ron Pedde d88132f6c9 use iconv for utf8/utf16 conversion, in preparation for codepage id3tags and file system conversion 2007-08-23 03:55:10 +00:00
Ron Pedde f2be31595f add io_ functions for plugins 2007-08-18 01:15:51 +00:00
Ron Pedde 40956ee0f9 fix VA_COPY 2007-08-12 08:43:27 +00:00
Ron Pedde 17afc25676 linux fixes for new plugin arch 2007-08-12 06:30:00 +00:00
Ron Pedde a90bb2ab10 Add io-errors.h and io-plugin.h to make dist 2007-08-11 04:41:21 +00:00
Ron Pedde f40c75773a win32 fixes for new plugin model 2007-08-10 00:48:31 +00:00
Ron Pedde 57dded49f9 oops, forgot the plugin interface 2007-08-09 07:10:35 +00:00
Ron Pedde 0429230d00 remove function backpointers for dll plugins 2007-08-09 06:33:41 +00:00
Ron Pedde 366ae9913c Fix problems with ascii log files, also problems with WSAEWOULDBLOCK on send buffer/receive window full. 2007-08-06 05:18:01 +00:00
Ron Pedde 5cf869342b avoid re-entrant error logging to avoid deadlocks 2007-08-06 03:18:44 +00:00
Ron Pedde a806dde1da Implement ascii line-ending conversion for windows 2007-08-05 04:43:25 +00:00
Ron Pedde b108edbc52 fix excessive logging in mdns, and remove rdar tags 2007-08-05 04:09:12 +00:00
Ron Pedde 4f0b1f24e0 cleanups for io_ on win32. still not quite working right, some read or write errors when streaming files, but a strong "mostly works" 2007-08-01 06:32:15 +00:00
Ron Pedde ca7beedde3 convert scan-wma to io_ functions 2007-08-01 06:21:53 +00:00
Ron Pedde 4b9b1fe177 merge ron-ssl branch back to trunk in preparation for windows cleanups, merge setup tweaks and credits language as well as update rend-posix from stable-aspl-free 2007-07-31 04:34:33 +00:00
Ron Pedde f1cc5ca6fb Fix for missing upnp_uuid() 2007-05-18 02:27:29 +00:00
Ron Pedde 3ac4048b0d Fix wav scanner to allow both 16 and 18 byte 'fmt ' chunks, also allow for out-of-order WAVE chunks 2007-05-10 06:24:50 +00:00
Ron Pedde 7f5e364954 Add enough more UPnP discovery that it shows up on SoundBridge 2007-05-05 04:35:50 +00:00
Ron Pedde 648297e253 Finish (mostly) upnp discovery 2007-05-04 21:31:05 +00:00
Ron Pedde 0eba96d92a More UPnP work. Almost finished with discovery. 2007-05-03 03:30:30 +00:00
Ron Pedde 0115887492 Move split functions from conf to util 2007-05-03 00:28:14 +00:00
Ron Pedde 61f5e96ea7 Force a full rescan when the database version is too new 2007-05-03 00:18:25 +00:00
Ron Pedde f3d5caedb1 Missing header 2007-05-03 00:10:10 +00:00
Ron Pedde 9ba5a51fdd Fix small race in registerhandler 2007-05-02 23:49:42 +00:00
Ron Pedde 360c7f945e Fix for win32 playlist dissapearing issue 2007-04-30 00:18:04 +00:00
Ron Pedde 29c4e25425 Minor auth fixes 2007-04-27 12:31:42 +00:00
Ron Pedde 0ade4784ff Fix stupid password bug 2007-04-19 03:46:40 +00:00
Ron Pedde eedf20f7f2 More password handling 2007-04-19 03:19:57 +00:00
Ron Pedde e9a08a6951 upnp updates, plus some password fixes 2007-04-19 03:00:00 +00:00
Ron Pedde 5be4c9d8a4 More simple upnp updates 2007-04-19 02:58:56 +00:00
Ron Pedde c6a9009550 Oops, thinko on the playlist thing 2007-04-18 03:34:03 +00:00
Ron Pedde a15eabbd76 Crank up debug a bit for handlers to help track down wl500g errors 2007-04-18 03:12:42 +00:00
Ron Pedde 5b38bc6d6c Solve the case of the missing playlists\! D'oh\! 2007-04-18 03:07:25 +00:00
Ron Pedde d8ad7c7ebc Tune down auth logging a bit, increase debugging in ws handler to try and find wl500g problem 2007-04-16 21:31:56 +00:00
Ron Pedde e8ff234550 Minor win32 fixes for S_ISDIR 2007-04-16 05:30:10 +00:00
Ron Pedde fb86538d79 Add centralized auth handler for different user roles (currently admin and user), closing #225 and #220 2007-04-15 23:57:00 +00:00
Ron Pedde 29478fcca1 Remove regex functions from webserver, instead preferring path from root - fixes problems with bad regex in uclibc 2007-04-15 23:27:16 +00:00
Ron Pedde 096975abfe More UPnP work. Still doesn't show up in network neighborhood. Not quite sure why not, though. :) 2007-04-15 23:20:13 +00:00
Ron Pedde a6b9099e01 Use S_ISDIR to determine file directoryishness 2007-04-15 20:36:00 +00:00
Ron Pedde e991d1ec08 logging for bad passwords as suggested by mas 2007-04-13 23:31:57 +00:00
Ron Pedde 69ec57328e ifdef the upnp stuff in main 2007-04-13 23:31:22 +00:00
Ron Pedde 5e9d9a3f20 forgot upnp files 2007-04-13 21:38:05 +00:00
Ron Pedde 1f640234f5 start of UPnP functions 2007-04-13 21:37:42 +00:00
Ron Pedde 9ccc48eac9 uninitialized string error, found by Ron (the *other* ron) on the forums. 2007-04-12 18:34:09 +00:00
Ron Pedde 245e062530 Fix for tzset/putenv in compat, to help build on wl500g 2007-04-11 02:33:47 +00:00
Ron Pedde 914cd2d54d include config guards for headers in plugin.c, remove dynamic-art from vc project. 2007-04-10 01:39:08 +00:00
Ron Pedde 4d323f2729 Fix headers 2007-04-09 06:50:58 +00:00
Ron Pedde 6f1f6d8ece Add always_transcode, first pass at a fix for the hifidelio/olive, something like the one offered by Matthias Schmidt 2007-04-09 04:23:51 +00:00
Ron Pedde 363210ebcc Update Apple's mDNS to 107.6, the Apache/BSD licenced version, to remove aspl taint. This is high in autoconf hackery, though 2007-04-08 04:43:22 +00:00
Ron Pedde 751afbf285 header fixes for fbsd, as reported by oliver in the forums 2007-04-07 22:32:26 +00:00
Ron Pedde 00ded64dab Add a simple config migrator to move config items around at load. I've used it
to move general/process_m3u to scanning/process_playlists, scanning/process_xml
to scanning/process_itunes, and make scanning/process_m3u actually control just
m3u file rather than all playlists.  In addition, scan/correct_order has been
moved to daap/correct_order.  This closes long-standing bug #172.
2007-04-06 05:05:50 +00:00
Ron Pedde e6d550dd49 rename lock_t to ff_lock_t to prevent solaris breakage 2007-04-06 02:57:06 +00:00
Ron Pedde a4dea03121 Try to automatically locate plugins, show loaded plugins on web interface 2007-04-04 20:34:29 +00:00
Ron Pedde ec9ab04b40 xmbc fixes 2007-01-29 06:45:21 +00:00
Ron Pedde 55014d0a71 Fix signal handling on linuxthreads/NSLU2 2007-01-28 05:36:06 +00:00
Ron Pedde c9e70fb47f Add signal handling for nslu2, make -k send SIGTERM, not SIGSTOP 2007-01-20 14:20:59 +00:00
Ron Pedde fb66541657 Use pthread_sigmask over sigprocmask in an attempt to fix signals on linuxthreads machines 2007-01-19 07:11:40 +00:00
Ron Pedde 0d72198594 Get wrong pid when daemonizing 2007-01-19 06:20:12 +00:00
Ron Pedde 5383d1c1ca Fix double-free problems reported in forums 2007-01-18 06:07:26 +00:00
Ron Pedde 14fe9f9c6c Add memory debugging (--enable-mem-debug), find and fix several small (and not so small) memory leaks 2007-01-17 01:06:16 +00:00
Ron Pedde b23f0d226b update usage() to reflect new -k and -V options, as reminded by Steve in the forums 2007-01-11 01:28:18 +00:00
Ron Pedde 1d01c02296 Fix -V to exit after displaying version 2007-01-10 06:19:41 +00:00
Ron Pedde d2e5b45bd9 Move signal handling to parent thread, add -V and -k options, closing #219, and fixing problems with daemontools 2007-01-09 18:12:39 +00:00
Ron Pedde 5f922b44d8 Fix problem with adding playlists as reported in forums 2007-01-09 05:55:41 +00:00
Ron Pedde cc535d234f consolidate mutex locking to better debug deadlocks 2006-12-31 21:28:47 +00:00
Ron Pedde f7b2e3204e Don't delete hand-crafted static playlists (type 0) on full reload 2006-12-31 21:22:46 +00:00
Ron Pedde eb92a4b99b automatically shorten the rendezvous name if it's too long 2006-12-19 05:06:42 +00:00
Ron Pedde a3d3c21b65 try to better detect successful transcoding in order to update play counts - #191 2006-12-19 01:48:27 +00:00
Ron Pedde da77bb850a expand tabs 2006-12-18 06:31:13 +00:00
Ron Pedde c4c823affb add avahi support to trunk 2006-11-28 22:11:18 +00:00
Ron Pedde 23e567a94b Add more logging for duplicate playlist 2006-11-27 00:17:12 +00:00
Ron Pedde 9239e0ad36 Reference iTunes playlist by name hash rather than native playlist id 2006-11-27 00:00:00 +00:00
Ron Pedde e0098e20fa Fix rendezvous registration problem on win32 where sometimes rendezvous names wouldn't get registered. 2006-11-22 06:04:23 +00:00
Ron Pedde 36bc5951e5 include sys/select.h for freebsd, courtesy of Denis 2006-11-22 04:10:29 +00:00
Ron Pedde d5506fc46f Fix db upgrade from 12 -> 13 2006-11-19 18:58:03 +00:00
Ron Pedde 4d8e618f75 iTunes updates, courtesy of Shish 2006-11-16 04:13:57 +00:00
Ron Pedde 758c0c6245 stdint fixes 2006-11-14 05:29:32 +00:00
Ron Pedde 654d0fe685 PATH_MAX vs MAX_PATH fixes. Stupid windows. 2006-11-14 01:40:22 +00:00
Ron Pedde 16b323f024 Make fireflyshell drop a drive mapping ini file, so that the server can convert network drive letters to unc paths. 2006-11-13 00:09:16 +00:00
Ron Pedde c1ac15cd97 win32 cleanups, fixes for 48k flac playing slowly. 2006-11-11 23:15:33 +00:00
Ron Pedde d90fd30a9b Drop version number on startup 2006-11-11 21:47:43 +00:00
Ron Pedde 792fa16f1e Pass mp3struct to ssc plugins so they can take advantage of metainfo 2006-11-06 03:42:38 +00:00
Ron Pedde b5008ded8d reverse default in follow_symlink option, fix some warnings in plugin.c, fix errors in update as result of new db fields 2006-11-05 22:38:12 +00:00
Ron Pedde e02f0774ec add album_artist and bits_per_sample, bumping db version. Collect album_artist from flac, aac, wma, and iTunes xml. Collect sample_count and bits_per_sample for flac 2006-11-04 04:17:24 +00:00
Ron Pedde e33f1a3167 make encrypted wma files wmap/wma rather than wma/wmap 2006-11-02 04:50:31 +00:00
Ron Pedde 137875c23d add general/never_transcode to specify codectypes that shouldn't be transcoded, even if the client suggests it can't play it (amarok, rhythmbox, others that lie about user-agent) 2006-10-31 03:54:10 +00:00
Ron Pedde 69eb216e59 Implement option to skip initial start-up scan, useful for windows machines. Fixes ticket #208 2006-10-27 20:39:39 +00:00
Ron Pedde 3d352427f6 Fix auth problems on passworded shares, fixing ticket #205 2006-10-27 20:26:10 +00:00
Ron Pedde 5db53647d5 Tune down 'short read' errors, closing #207 2006-10-24 05:21:04 +00:00
Ron Pedde 0fa620d4a7 add scanning/follow_symlinks option to close ticket #194 2006-10-24 05:17:36 +00:00
Ron Pedde 40a62f7722 Fix divide by zero error for aac/m4v files < 1 second long (hat tip to arvzb from the forums) 2006-10-17 03:30:13 +00:00
Ron Pedde 325c86073b Add hostname (%h) and version (%v) templates for the servername parameter 2006-10-16 03:52:45 +00:00
Ron Pedde 2f0dafba61 trivial printf formatting bug 2006-10-16 03:24:52 +00:00
Ron Pedde d89220fb5e Byte-endian fixes for wma parsing 2006-10-16 03:19:10 +00:00
Ron Pedde 4e786208ed Fix for null title/artist/album/genre in wma files 2006-10-15 23:19:04 +00:00
Ron Pedde b928966f9b Make DRM-protected wma files have a codectype of WMAP 2006-10-15 23:07:16 +00:00
Ron Pedde 3810a8f0a4 Fix problem with smart playlists returning entire library 2006-10-15 05:00:20 +00:00
Ron Pedde 6d54f3c826 Add database/quick_startup directive to specify that the database should start up quickly -- without vacuum in the case of sqlite 2006-10-12 01:42:15 +00:00
Ron Pedde e0ff0c794e Better logging for broken connections while streaming 2006-10-09 00:16:48 +00:00
Ron Pedde 2193e14c98 Add CCRDudes patches for xhtml compliance 2006-10-09 00:07:59 +00:00
Ron Pedde cb18268049 Autoconf for dirent, rather than win32ing 2006-10-08 23:14:37 +00:00
Ron Pedde f7e3db6861 Load all plugins in plugin dir, rather than relying on a plugins entry 2006-10-08 18:05:31 +00:00
Ron Pedde c90e2394c5 Fix indexing, move updates back into core 2006-10-05 03:58:24 +00:00
Ron Pedde 4a9d8993b3 Various win32 fixes 2006-10-04 04:33:27 +00:00
Ron Pedde 5509a8cffd redist ff-dbstruct.h 2006-10-03 14:41:24 +00:00
Ron Pedde ac561f40dc Fix ld errors for automake 1.5 2006-10-02 05:08:15 +00:00
Ron Pedde 8e23eb9e1d Move daap to an external output module 2006-09-25 03:20:22 +00:00
Ron Pedde 19b8b3719c Make empty_strings dummy up artist, genre, and album 2006-09-10 19:27:55 +00:00
Ron Pedde ccf2cb4a0f Typo in genre 2006-09-10 04:53:17 +00:00
Ron Pedde 5a483a7fe6 Treat m4b files as m4a files. 2006-09-02 20:16:12 +00:00
Ron Pedde c797d64eb1 Better guess of bitrate when tag includes a duration tag 2006-09-01 04:16:51 +00:00
Ron Pedde ad16949d12 Make case-insensitive fs a little less broken 2006-08-31 02:43:13 +00:00
Ron Pedde e878464716 Fix for bad seeks on wma subheaders 2006-08-31 00:37:16 +00:00
Ron Pedde c594cb1ab2 tune down the stat errors 2006-08-29 04:01:30 +00:00
Ron Pedde c5ef4021a3 Support for multiple wma composers 2006-08-29 03:21:19 +00:00
Ron Pedde 0725c9ae13 Fixes for transcoding flacs with leading id3v2 tags 2006-08-28 03:59:04 +00:00
Ron Pedde 55793d6c32 win32 cleanups 2006-08-28 03:58:31 +00:00
Ron Pedde d5b29cd4ef Fix up iTunes metadata before inserting into the database (fixing the concat_compilations bug) 2006-08-27 00:02:09 +00:00
Ron Pedde c7a385b9b1 Add sample rate from wma files, closing #166 2006-08-26 04:14:17 +00:00
Ron Pedde c319c8b090 Move collecting pmp3->file_size in the scanner driver rather than individual scanners. Fixes half of #166 2006-08-26 03:57:35 +00:00
Ron Pedde e00ad47a55 get file info from stat, rather than from scandir, fixing bug #196 2006-08-26 03:44:43 +00:00
Ron Pedde e1fe5d53a1 Fix problem on mac when updating config file through web interface 2006-08-26 03:14:48 +00:00
Ron Pedde 81afc997c7 tune logging 2006-08-25 03:37:03 +00:00
Ron Pedde 9e7de7965a Fixes for traditional chinese file system 2006-08-23 05:02:08 +00:00
Ron Pedde 4163e62934 Bump db version to 12 to force a full rescan 2006-08-20 05:02:27 +00:00
Ron Pedde 231017d571 Make playlist filenames honor filesystem case settings 2006-08-20 05:02:09 +00:00
Ron Pedde 53510607f1 make full rescan rescan playlists as well as songs 2006-08-20 04:51:08 +00:00
Ron Pedde d64fe731eb add handler for case_insensitive 2006-08-20 04:50:19 +00:00
Ron Pedde 8f1c77f4df Fix processing of escaped strings 2006-08-20 03:59:59 +00:00
Ron Pedde 6dfcec0d60 Fix debugging 2006-08-20 03:59:37 +00:00
Ron Pedde 2f2dd3908c fixes for parser testing framework 2006-08-20 03:46:10 +00:00
Ron Pedde e8b1520ffc Change db safety outside transactions 2006-08-17 05:05:48 +00:00
Ron Pedde ddfea4d23d Bump the end-scan message to E_LOG 2006-08-17 02:25:41 +00:00
Ron Pedde 7c34c4ceee Default to case-sensitive fs 2006-08-17 02:22:43 +00:00
Ron Pedde 5e6575a153 wrap playlist scans in transaction 2006-08-14 04:09:45 +00:00
Ron Pedde 6891f3a169 make initial scan faster 2006-08-14 01:24:24 +00:00
Ron Pedde f3fecf593e more fs case fixes 2006-08-14 00:00:54 +00:00
Ron Pedde f9d27a4773 Show scan completion in logs 2006-08-14 00:00:48 +00:00
Ron Pedde bccd2e473f Improve reload perforamnce by skipping db lookups on forced reload 2006-08-12 21:01:37 +00:00
Ron Pedde f7cc8ea470 Make flac and ogg transcode and scan properly for unicode filenames. 2006-08-11 05:33:54 +00:00
Ron Pedde 9defe79e42 make ssc-wma work with unicode file names (bad codepage in multibyte translation) 2006-08-11 03:40:36 +00:00
Ron Pedde 7554aabf90 Make path searches case insensitive 2006-08-09 05:16:06 +00:00
Ron Pedde 6c84e8863e Make RSP honor the correct_order flag 2006-08-07 05:06:23 +00:00
Ron Pedde 5acac92603 Skip background scan if a foreground scan just happened 2006-08-04 01:50:30 +00:00
Ron Pedde d2ba19d8ce Get rid of mangle_rendezvous option 2006-08-03 02:55:57 +00:00
Ron Pedde ca6bcec06e Inverted rendezvous test 2006-08-03 02:55:14 +00:00
Ron Pedde 9ca4ac55ba Fix for crash on empty extension, as reported by Denis in forums 2006-08-02 23:37:08 +00:00
Ron Pedde 287c35d25d disable updates pending implementation of incremental updats 2006-08-01 03:34:51 +00:00
Ron Pedde 7f38e5f6e1 Default correct_order to 1 2006-07-29 06:33:22 +00:00
Ron Pedde 714af4c9ce Minor fixes to limit memory used by wma scanner 2006-07-29 06:31:30 +00:00
Ron Pedde fe4742b026 Fix inverted test on whether or not the db revision was stable 2006-07-29 05:42:34 +00:00
Ron Pedde 90a6a39ce1 Add defensive index creation on startup, fix indexes for ordered query (and update schema), better startup after interrupted shutdown 2006-07-29 00:45:23 +00:00
Ron Pedde e54a8a1d9e Defer updates while db is changing 2006-07-29 00:18:00 +00:00
Ron Pedde 63d6df105f Make sure not to play data_kind 1 songs -- radio stations 2006-07-26 05:44:54 +00:00
Ron Pedde 0e84da1679 -Wall cleanups, fix correct_order flag 2006-07-25 03:49:36 +00:00
Ron Pedde dd5b5acdac Fix crash on TERM signal (unintialized memory) 2006-07-19 05:55:05 +00:00
Ron Pedde 1063187b27 roll back codectype tomfoolery in rsp.c 2006-07-19 05:21:45 +00:00
Ron Pedde ca259e8e12 Fix crash with no location in iTunes xml 2006-07-19 05:13:08 +00:00
Ron Pedde 916ad55eb5 Stat wrapper for os-unix, bring in sync with windows 2006-07-17 22:35:21 +00:00
Ron Pedde 5b18d69d28 Make win32 version file handling use wide character functions (for non-latin filenames) 2006-07-17 04:49:44 +00:00
Ron Pedde 840fe59997 Add -b option to manually set the ffid 2006-07-15 05:56:32 +00:00
Ron Pedde 581b8df5c7 Make server abort when a shutdown signal happens during a playlist or xml scan 2006-07-13 08:29:21 +00:00
Ron Pedde 2ea83c6f2e Fix problem where version wasn't being created properly on initial db 2006-07-13 03:13:24 +00:00
Ron Pedde 8954451434 Win32 fixes and cleanups 2006-07-12 23:07:03 +00:00
Ron Pedde b1a5f93987 Fix tab expansion 2006-07-12 22:52:50 +00:00
Ron Pedde 0d4bd16789 fix select timeout in rend-win32.c 2006-07-12 08:28:38 +00:00
Ron Pedde 26e4259332 split well-used utility functions into util.c 2006-07-12 04:39:11 +00:00
Ron Pedde 7a3a5ce3af Fix memory leak in scan-xml, closing #173 2006-07-12 04:10:21 +00:00
Ron Pedde e0162752d0 Make scanner stop in middle of scan 2006-07-11 05:54:42 +00:00
Ron Pedde d8bdbe234d Fix erroneous startup message 2006-07-09 23:03:20 +00:00
Ron Pedde a574c2f752 Add comment info from iTunes xml file 2006-07-07 22:53:03 +00:00
Ron Pedde d91ac3ff42 Exclude radio station metadata from browse info. Not sure this is entirely correct. Should it be a config option? 2006-07-07 22:24:48 +00:00
Ron Pedde c20b3e52e9 Make config file realpathed, fixing unwritable config file problem on mac 2006-07-07 20:36:24 +00:00
Ron Pedde 328a4861fb Stop using strftime on error logs, as it is defective on win32 -- fixes #158 2006-07-07 20:19:51 +00:00
Ron Pedde 2d7da86e8c Fix thinko in err.c, possibly fixing #165 2006-07-07 20:10:11 +00:00
Ron Pedde 8c0561f144 Fix os_apppath function, closing #185 2006-07-07 20:07:25 +00:00
Ron Pedde 817532fcf5 Add debugging to chase down "out of phandles" error. 2006-07-06 05:18:53 +00:00