1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-06-16 06:15:24 +00:00
Commit Graph

82 Commits

Author SHA1 Message Date
Philipp Schafft
f104fd5551 Fix: Allow Content-type: with parameters (such as codecs, or charset)
See: #1902
2021-10-30 09:37:38 +00:00
Philipp Schafft
a24f74af11 Fix: Added missing include 2021-10-26 02:08:59 +00:00
Philipp Schafft
b7c878cee9 Feature: Added basic text streaming support
See: #2084
2021-10-26 00:57:09 +00:00
Philipp Schafft
6e0f876275 Fix: Corrected Copyright headers 2018-11-26 07:42:05 +00:00
Philipp Schafft
162e3dd650 Fix: Corrected possible bufferoverflows in format_prepare_headers() 2018-10-31 09:28:08 +00:00
Philipp Schafft
231e60a46a Updated submodules 2018-09-20 10:05:30 +00:00
Philipp Schafft
578366e541 Cleanup: Removed useless stats_event() 2018-05-05 06:42:56 +00:00
Philipp Schafft
24bc25ec38 Cleanup: fixed some compiler warnings 2015-11-28 11:30:34 +00:00
Marvin Scholz
16dac2505e Fix that global listener count could be negative under certain circumstances
This fixes a bug that could cause the global listener count of Icecast to
be negative. This was caused due to wrong handling of errors in the
format_prepare_headers function.

Fixes: #2199

Thanks a lot to Simeon Völkel (0xBD4E031CDB4043C9) for reporting
and investigating the bug.
2015-06-06 14:09:44 +02:00
Marvin Scholz
c35760cd50 Fix possible segfaults when header allocation fails
This fixes some possible segfaults that could happen if the header
(re)allocation fails.
2015-06-06 14:09:44 +02:00
Philipp Schafft
8941de3273 Fix: Added some more HTTP/1.1 headers
This adds to all responses:
 * "Accept-Encoding: identity"
 * "Connection: close"
 * "Allow: GET, SOURCE" or "Allow: GET" (on admin pages)

This is to generate some infrastructure for Icecast to tell futur
source clients what is supported.

"Upgrade: TLS/1.0" should be added later when upgrade support is present.

See: #2152
2015-02-01 11:56:03 +00:00
Philipp Schafft
11d5dffd49 Cleanup: Removed tailing spaces 2015-01-10 18:53:44 +00:00
Philipp Schafft
e9a90f9918 Cleanup: converted tabs into spaces 2015-01-10 01:48:15 +00:00
Philipp Schafft
0b1af34f0e Prevent various redefined definitions in win32-specific code
From: Erik van Pienbroek <epienbro@fedoraproject.org>
Date: Mon, 22 Dec 2014 18:02:09 +0100
2014-12-24 11:35:56 +00:00
Philipp Schafft
28572be2ec Feature: Extract metadata and export them to stats.xml
All metadata is now extracted from Vorbis streams and ICY streams
and exported as new <metadata> tag into admin/stats if specific
mountpoint is requested.

To testers:
 - Please test with Ogg Vorbis streams.
 - Please test with Ogg Vorbis + Theora streams.
 - Please test chained Ogg streams.
 - Please test with ICY streams.

close #2106
2014-12-09 16:08:27 +00:00
Philipp Schafft
93194594f7 better coding style, patch by ePirat. refs #2059
svn path=/icecast/trunk/icecast/; revision=19376
2014-11-30 20:32:30 +00:00
Philipp Schafft
0eca1bcfe0 cleanup: don't include "httpp/httpp.h" if not needed
svn path=/icecast/trunk/icecast/; revision=19370
2014-11-30 09:32:06 +00:00
Philipp Schafft
0df154f3bf remove client_send_[0-9]{3}() in favor of client_send_error(). Please test
svn path=/icecast/trunk/icecast/; revision=19344
2014-11-21 18:05:17 +00:00
Philipp Schafft
d06b6b1846 patch to fix regression on header size with large headers introduced by support of <server-id> and <http-headers>. This should ensure we have at least space for 2kB of extra headers. Depending on function and call we may have much more space.
Please test this very carefully.
Some pointers what should be in the tests (NOT complet list):
- request to 'static' web/ and admin/ pages.
- requests to playlist generation.
- requests to streams.
- requests to admin/ manipulation functions.
- test everything with at least 8kB of extra headers, then reduce in 1kB (or 512B) steps.
- see if response is correct OR 500 is returned.
- run under valgrind or similar to see no buffer overflow or similiar will happen.
- take a cookie!

svn path=/icecast/trunk/icecast/; revision=19300
2014-11-10 10:46:55 +00:00
Philipp Schafft
9597e2eadd Added support for <http-headers> within <mount>. Also support merging of headers (normal mount + default mount). See #1885
svn path=/icecast/trunk/icecast/; revision=19269
2014-11-07 02:55:57 +00:00
Philipp Schafft
2b7cb1c641 LOG_{ERROR|WARN|INFO|DEBUG}() -> ICECAST_LOG_{ERROR|WARN|INFO|DEBUG}(); this is to avoid collision with LOG_INFO that is defined as part of syslog.
svn path=/icecast/trunk/icecast/; revision=19257
2014-10-31 08:46:58 +00:00
Philipp Schafft
7ae4664780 Replace the old logging macros with variadic argument macros. (patch by ePirat) (close #2058)
svn path=/icecast/trunk/icecast/; revision=19229
2014-10-09 10:39:13 +00:00
Thomas B. "dm8tbr" Ruecker
ff4649bc49 Add warning when using generic handler for stream sent to Icecast.
All bets are off, we're trying our best using legacy handling code.

svn path=/icecast/trunk/icecast/; revision=18907
2013-04-05 16:43:16 +00:00
Philipp Schafft
d54c61bf13 Added support for a default mount. See #1914.
The default mount is a block in the config file that contains settings for
all mount points that do not have a block in configfile themself.
This is implemented by a <mount type="default">-block.
In this case the <mount>-block MUST NOT contain a <mount-name>-subblock.

svn path=/icecast/trunk/icecast/; revision=18902
2013-04-02 18:46:44 +00:00
Philipp Schafft
8e0777a4bd allow <stream-name> to override the icy-name: HTTP header, close #1359
svn path=/icecast/trunk/icecast/; revision=18543
2012-08-18 20:34:11 +00:00
Philipp Schafft
2abd67d497 remove unused variable "ice_config_t *config" from format_prepare_headers()
svn path=/icecast/trunk/icecast/; revision=18465
2012-07-18 01:40:55 +00:00
Philipp Schafft
abf6c134d0 Send proper HTTP headers in responses to clients.
This is currently not implemented for SOURCE and STATS clients as
I suspect to break them. This needs some more research.
close #1639, see #1870 and #1885.

svn path=/icecast/trunk/icecast/; revision=18464
2012-07-17 23:55:09 +00:00
giles
818c1aff71 Add WebM support.
This is David Richard's webm support patch from the icecast-webm branch.

svn path=/icecast/trunk/icecast/; revision=18402
2012-06-13 21:24:23 +00:00
giles
835408b7eb Add David Richard's webm support patch.
This is a self-contained ebml parser. It just looks
for cluster boundaries and breaks the stream there.

svn path=/icecast/branches/icecast-webm/; revision=18297
2012-05-18 17:33:17 +00:00
Karl Heyes
cdfeb30444 handle new content-types
svn path=/icecast/trunk/icecast/; revision=14786
2008-04-23 00:32:20 +00:00
Karl Heyes
02cc6c5f10 type cleanups. reduces memory usage on 64bit, no difference on 32bit. closes #780
svn path=/icecast/trunk/icecast/; revision=14306
2007-12-15 17:02:16 +00:00
Karl Heyes
ab75a3297f add global listeners stat
svn path=/icecast/trunk/icecast/; revision=14016
2007-10-20 00:58:05 +00:00
Karl Heyes
dcffbb38ad header fixup for listeners. Tell any proxies to not cache and add minor tweaks
for flash players. closes #1115

svn path=/icecast/trunk/icecast/; revision=14014
2007-10-19 14:06:07 +00:00
Karl Heyes
d327fc8914 close report #704, add server-id tag, default stays as the server version string.
svn path=/icecast/trunk/icecast/; revision=13704
2007-09-03 00:55:27 +00:00
Karl Heyes
5f8cfd70f7 const updates, no functional changes
svn path=/icecast/trunk/icecast/; revision=13559
2007-08-16 22:49:13 +00:00
Karl Heyes
2b817daea2 fix possible segv case, and only increase certain listener stats when stream is
active (on demand relays may not actually start when triggered)

svn path=/icecast/trunk/icecast/; revision=13503
2007-08-10 13:04:40 +00:00
Karl Heyes
043bff364c memory leak when handling ogg flac, and make sure that moving listeners
to theora streams triggers a search for a keyframe.

svn path=/icecast/trunk/icecast/; revision=11004
2006-03-15 02:24:57 +00:00
Karl Heyes
d07723c997 fixes for client handling, these are all related to the handling of max clients.
I've taken out the client_create out of the connection_complete_source and put
it in slave, that way we can control the cleanup of the memory/socket better, the
change also meant fallback to file tests were slghtly different.

svn path=/icecast/trunk/icecast/; revision=9847
2005-08-25 00:07:17 +00:00
Karl Heyes
33cf86f527 merge extra checks. minor cleanup work
svn path=/icecast/trunk/icecast/; revision=9711
2005-08-07 14:50:59 +00:00
Karl Heyes
efd3692202 merge fix, the per client intro offset can be > 0, so we need to skip over
some of the burst data

svn path=/icecast/trunk/icecast/; revision=9514
2005-06-27 02:10:16 +00:00
Karl Heyes
be78a3ae11 merge in fallback to file, override also works
svn path=/icecast/trunk/icecast/; revision=9434
2005-06-10 15:42:06 +00:00
Karl Heyes
ad1e6c41b0 merge in the on-demand relay implementation.
svn path=/icecast/trunk/icecast/; revision=9406
2005-06-09 01:51:47 +00:00
Karl Heyes
743dbbaeca Do normal http header writing in source thread instead of the connection
thread, this will allow on-demand relays to fail and still handle the initial
listener correctly (fallback or 404 response).

svn path=/icecast/trunk/icecast/; revision=9399
2005-06-08 01:36:51 +00:00
Karl Heyes
2896db1f3c merge intro file implementation
svn path=/icecast/trunk/icecast/; revision=9345
2005-06-03 15:35:52 +00:00
Karl Heyes
72ad63f763 missed a merge for stats update for when the relay ends. The rest is minor
stuff, type check cleanup and code reduction in YP

svn path=/icecast/trunk/icecast/; revision=9331
2005-05-31 02:48:40 +00:00
Karl Heyes
f0e7a859ab minor type cleanup in fserve, include correct header for ogg
svn path=/icecast/trunk/icecast/; revision=8481
2004-12-18 00:11:56 +00:00
Karl Heyes
2bd23d9050 merge multi ogg codec handling. Handle theora and/or vorbis. Place new
clients before keyframe. For vorbis-only streams, perform rebuild to
flush pages more frequently and to provide url updating mechanism for
titles 

svn path=/icecast/trunk/icecast/; revision=8341
2004-12-07 21:06:26 +00:00
Karl Heyes
c7432d6602 minor cleanups
svn path=/icecast/trunk/icecast/; revision=8236
2004-11-20 02:16:59 +00:00
oddsock
731f24d050 handle supported content-types in a more generic way now. This will allow things like AAC, AACPlus, NSV, and others to be streamed through icecast. We have a special case for vorbis streams, and everything else falls into the generic case.
svn path=/icecast/trunk/icecast/; revision=8226
2004-11-18 23:49:59 +00:00
oddsock
80078cce1d * support for the Shoutcast DSP (yay!).
You can now use the Shoutcast DSP as a source client.  The connection 
    protocol is a bit odd, and we had to handle it separately, and thus 
    we've added a new config option (<shoutcast-compat>) that is set at 
    the listener port level.
* support for NSV (and the nsvscsrc source client).
    After adding support for the connection protocol of the shoutcast DSP, 
    adding NSV was just a simple of a few special handling cases.
* removed all traces of the earlier attempt at the shoutcast DSP connection 
  protocol
* Due to the growing complexity of the config files, I've also created a 
  few alternate config files, namely one for a "shoutcast compat" setup
  as well as a "minimal" one for quick basic configurations.

svn path=/icecast/trunk/icecast/; revision=8191
2004-11-11 15:47:33 +00:00