Julien BLACHE
58faeaceca
Integer types cleanup
...
Try to be a bit more strict about integer types, use off_t or int64_t for
file size and file offsets.
Replace safe_ato*() by safe_atoi32() and safe_atoi64(), fix integer types
at call sites to match.
2010-02-02 21:09:56 +01:00
Julien BLACHE
5d41d2d99c
Move file_size to an int64_t, matching other types (off_t)
2010-02-02 21:09:55 +01:00
Julien BLACHE
516909545b
Include config.h in all C files
2010-02-02 21:09:55 +01:00
Julien BLACHE
1df7ec1b7c
Use posix_fadvise() to hint the OS when streaming raw file
...
Hinting the OS about our behaviour shouldn't make a big difference in
performance but it will help the OS manage its disk cache and can reduce
memory pressure on small systems.
2010-02-02 21:09:55 +01:00
Julien BLACHE
7047126f51
Kill useless va_copy checks
2010-02-02 21:09:55 +01:00
Julien BLACHE
8ac5f48fe6
Wire up DACP support
2010-01-30 17:30:22 +01:00
Julien BLACHE
a52ff42697
Introduce stub DACP protocol implementation
2010-01-30 17:30:22 +01:00
Julien BLACHE
168144c1e0
Make daap_session_find() non-static so DACP can use it
2010-01-30 17:30:22 +01:00
Julien BLACHE
9f1c849241
Add logdomain for DACP
2010-01-30 17:30:22 +01:00
Julien BLACHE
44bf308701
Waive HTTP authentication on the library for Remote
...
DAAP queries from Remote won't need HTTP authentication as they all
require a valid session-id; Remote can only obtain a valid session-id
if its pairing-guid is known to us (it did pair successfully with us).
2010-01-30 17:30:22 +01:00
Julien BLACHE
e016ced119
Authenticate Remote clients by their pairing-guid
...
Remote clients have a waiver for HTTP authentication; they are authenticated
by their pairing-guid given during the pairing process.
2010-01-30 17:30:22 +01:00
Julien BLACHE
115d28e24a
Parse pairing response and save pairing GUID
...
The pairing GUID will be used later on to authenticate the Remote
instance when it logs in.
2010-01-30 17:30:22 +01:00
Julien BLACHE
b35c4749a2
Maintain a db connection in main.c for Remote pairing agent
2010-01-30 17:30:22 +01:00
Julien BLACHE
dfa3db7732
Use struct pairing_info in struct remote_info
2010-01-30 17:30:22 +01:00
Julien BLACHE
d384bc13a3
Handle database upgrade v5 -> v6
2010-01-30 17:30:22 +01:00
Julien BLACHE
762d80e0bb
Add Remote pairing info storage facility
...
This brings schema_version to 6.
2010-01-30 17:30:22 +01:00
Julien BLACHE
07a71b4e94
Reorganize httpd_daap
...
Some code moved around for clarity, no functional changes.
2010-01-30 17:30:22 +01:00
Julien BLACHE
7ec27a30eb
Use DMAP routines from dmap_helpers.c
2010-01-30 17:30:22 +01:00
Julien BLACHE
eca166feaa
Move DMAP routines to a dedicated module
2010-01-30 17:30:22 +01:00
Julien BLACHE
29fb23893d
DAAP update request requires a session-id
2010-01-30 17:30:21 +01:00
Julien BLACHE
b9a2e10272
Modify DAAP update request debug messages
2010-01-30 17:30:21 +01:00
Julien BLACHE
2924a98f1a
Fix pairing_cb() - readd event after pairing
2010-01-30 17:30:21 +01:00
Julien BLACHE
2c6ceac486
Rework code flow in httpd_gen_cb()
2010-01-30 17:30:21 +01:00
Julien BLACHE
78275ae432
Remove useless include
2010-01-30 17:30:21 +01:00
Julien BLACHE
42f39938d5
Start implementing DAAP updates
...
Stall update requests if revision-number == current revision. This is a
first step that is necessary to get clients to work properly (eg Remote).
2010-01-28 19:20:00 +01:00
Julien BLACHE
7ddd135e2b
Extend close detection to incoming connections
...
Stock evhttp has no means to detect when an incoming connection gets
closed by the client; it will notice the connection has gone down only
when sending back a reply.
For DAAP update requests working as a push mechanism with an HTTP request
stalled by the server until there actually is an update available, we need
to be notified when a connection goes down so we can perform proper cleanup
and not retain memory.
Do so by extending the close detection mechanism used for outgoing connections
and the connection failure callback we already have in place for streaming.
2010-01-28 19:19:31 +01:00
Julien BLACHE
f425eddb62
Clean up remote list at deinit
2010-01-28 19:19:16 +01:00
Julien BLACHE
4321cffc87
Make queries on daap.songalbumid:0 a no-op
...
Remote makes queries with daap.songalbumid:0, which doesn't make sense. Make
that a no-op.
2010-01-27 18:31:13 +01:00
Julien BLACHE
21098d4c89
Fix query and path for playlist #1
...
The query was erroneously put into the path column; also change the query
for 1 = 1 instead of disabled = 0 which is redundant.
2010-01-27 18:29:59 +01:00
Julien BLACHE
b5b9f92d97
Fix HTTP error return in daap_session_find()
2010-01-27 12:18:22 +01:00
Julien BLACHE
eae5370c08
Log HTTP (non-DAAP, non-RSP) requests
2010-01-26 18:15:08 +01:00
Julien BLACHE
4701817333
Replace strlcpy() with evutil_snprintf() in evhttp
...
Get rid of strlcpy() and its implementation entirely, it doesn't buy anything
over snprintf(). Use evutil_snprintf() so as to match the rest of the code.
2010-01-26 17:54:45 +01:00
Julien BLACHE
98cb978b9b
Set capability atoms to true in server-info reply
...
Capability atoms like mslr, msbr and friends should be set to true; it
seems their presence in the reply is actually enough, though.
2010-01-25 18:33:25 +01:00
Julien BLACHE
7e3b6957b2
Move the pairing agent to the main thread
...
The pairing agent doesn't need a thread of its own, the main thread can host
it. Move it there and save a thread.
2010-01-25 17:55:11 +01:00
Julien BLACHE
854abd8026
Specify field width for pairing hash
...
No field width was specified when the 128bit hash is converted to a string;
make sure we get 8 hex digits per 32bit hash component.
2010-01-25 17:51:17 +01:00
Julien BLACHE
e6234c35ad
Fix field width for 64bit library name hash
...
Was 8 hex digits, should have been 16 hex digits.
2010-01-25 17:47:37 +01:00
Julien BLACHE
672e4697ae
Handle database schema upgrade from v4 to v5
...
Force a library rescan to fixup media_kind for regular videos.
2010-01-24 11:16:31 +01:00
Ace Jones
12e0c9268d
Unspecified videos are "movies", media_kind=2
...
media_kind=2 (Movies) indicates a regular video, that is, a video that
isn't a TV Show (media_kind=64).
Also fix up the system playlist for Movies, and that brings us to DB
schema_version 5.
2010-01-24 11:11:08 +01:00
Julien BLACHE
f85fa927c8
Dereference library directories before processing
...
The filescanner dereferences symlinks as it encounters them, but it did
not dereference the top-level library directories given in the config.
Also the playlist scanner always dereferences the filenames.
As a result, there was a mismatch between the paths in the files table and
the paths in the playlistitems table if the library directory given in the
config contain a symlink somewhere along the way.
2010-01-24 10:54:52 +01:00
Julien BLACHE
022bebe1d9
Send back mslr in server-info reply, indicating login is required
...
At least FrontRow honours this atom of the server-info reply.
2010-01-24 10:53:49 +01:00
Julien BLACHE
4aa207533e
Ignore empty lines in M3U playlists
2010-01-23 18:41:54 +01:00
Julien BLACHE
cc75bd6eef
Add *.swp (vim swap files) to ignore list
2010-01-22 19:03:47 +01:00
Julien BLACHE
d3fe586d5b
Remove a special case for playlist #1
...
Not needed anymore, now that playlist #1 has been turned into a smart
playlist.
2010-01-22 19:02:29 +01:00
Ace Jones
1af1cf51c7
Return special playlists in playlist list response
2010-01-21 17:56:44 +01:00
Julien BLACHE
67b3a8c2da
Handle database schema upgrade from v3 to v4
2010-01-21 17:54:50 +01:00
Ace Jones
3fef4334bb
Add support for smart playlists and some default ones
...
Add system playlists for Music, Movies, TV Shows, equivalent to iTunes.
2010-01-21 17:52:51 +01:00
Julien BLACHE
fefdb23409
Simplify DB init routine
2010-01-21 17:51:44 +01:00
Julien BLACHE
944bf3f132
Check database version first, if that fails, try DB init
...
Doing it the other way around is a guaranteed way to run into issues when
a schema upgrade is needed.
2010-01-21 17:51:00 +01:00
Julien BLACHE
87abc3f432
Avoid useless double attempt at converting string to integer
...
Fixup dmap_add_field() and one of its callers to avoid making two useless
attempts at converting a string to an integer in some cases.
2010-01-20 18:34:36 +01:00
Julien BLACHE
ba251b16ae
Start keeping track of DAAP sessions
...
This will soon be required as we'll need to keep some knowledge about
the session in some cases. This also makes us a bit more compliant.
2010-01-20 18:24:52 +01:00