aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/httpd_client.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-07-10require GLib 2.16Max Kellermann1-1/+0
GLib 2.16 was released more than 4 years ago. Let's remove some cruft from the glib_compat.h header, and avoid new cruft to it.
2011-09-30Add support for streaming to a DLNA clientSteven Blackburn1-5/+35
The Naim Uniti does not appear to support icecast-style streaming of FLAC music but does support the codec from a DLNA server. This change looks for "transferMode.dlna.org: Streaming" in the HTTP request header and responds with something the Uniti (and hopefully other DLNA clients) accepts. The only difference in the DLNA streaming mode is the reponse header and that icecast metadata is disabled. If a client request indicates both modes are supported, the DLNA mode is preferred (as the Uniti says it supports both but then rejects a FLAC ICY stream). Note: This change may be specific to Naim equipment (the only device it was tested on). E.g. the hardcoding of Content-Length which works but is not a logically correct value. The change should be backwards-compatible, so only those clients requesting a DLNA stream will see any difference.
2011-09-20glib_socket.h: wrap g_io_channel_*_new() calls portablyMax Kellermann1-5/+2
The server_socket library (used by the httpd output plugin) didn't check for WIN32, that's fixed now.
2011-08-23output/httpd: add assertionsMax Kellermann1-1/+17
2011-08-23output/httpd: don't warn on client disconnectMax Kellermann1-1/+8
This warning should only be logged when we really received something. When the client disconnects, G_IO_IN is triggered, and the read returns G_IO_STATUS_EOF.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2011-01-07output/httpd: define G_LOG_DOMAIN in httpd_client.cMax Kellermann1-0/+3
2010-04-05output/httpd: added name/genre/website configurationJames Pike1-5/+6
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-11-10configure.ac: require GLib 2.12Max Kellermann1-0/+1
Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
2009-10-13configure.ac: require GLib 2.16Max Kellermann1-5/+0
Accidently, MPD has been using several GLib 2.16 functions for a while, and nobody noticed yet. To simplify the code base, let's bump the minimum GLib version for MPD to 2.16. That version is old enough, and it's reasonable to expect users to have it.
2009-05-05httpd_output: disable Icy-Metadata when encoder supports tagsMax Kellermann1-2/+10
There's no reason to send both encoder tags and Icy-Metadata to the client. Let's disable Icy-Metadata when the encoder supports embedded tags.
2009-04-13httpd: use C99 "bool" instead of GLib's gbooleanMax Kellermann1-7/+7
Plain "bool" consumes only one byte instead of four.
2009-04-13httpd: use g_ascii_strncasecmp() to compare headersMax Kellermann1-1/+1
In HTTP, header names are case insensitive.
2009-04-13Implemented basic icy support for the httpd outputHagen Schink1-11/+176
[mk: folded with patch "Put icy related functions in extra source files"; moved icy_server.c from HAVE_CURL to ENABLE_HTTPD_OUTPUT; removed an unused variable]
2009-03-15httpd_output: check client->write_source_id in handlerMax Kellermann1-0/+7
Due to a race condition, httpd_client_out_event() could be called even when its GLib event source was already removed. Check that case.
2009-03-15httpd_output: clear the client's page queue on cancelMax Kellermann1-1/+12
When the httpd output is cancelled, it freed all pages, but didn't remove them from the queue. Call g_queue_clear() and remove the write source id.
2009-03-15httpd: new output plugin to replace "shout"Max Kellermann1-0/+523
Let's get rid of the "shout" plugin, and the awfully complicated icecast daemon setup! MPD can do better if it's doing the HTTP server stuff on its own. This new plugin has several advantages: - easier to set up - only one daemon, no password settings, no mount settings - MPD controls the encoder and thus already knows the packet boundaries - icecast has to parse them - MPD doesn't bother to encode data while nobody is listening This implementation is very experimental (no header parsing, ignores request URI, no icy-metadata, ...). It should be able to suport several encoders in parallel in the future (with different bit rates, different codec, ...), to make MPD the perfect streaming server. Once MPD gets multi-player support, we can even mount several different radio stations on one server.