1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-12-04 14:46:30 -05:00
Commit Graph

883 Commits

Author SHA1 Message Date
Philipp Schafft
70f8d14d1c added warnings on empty and default values of <fileserve>, <hostname>, <location>, <admin> and <server-id>
svn path=/icecast/trunk/icecast/; revision=19276
2014-11-07 19:14:28 +00:00
Philipp Schafft
0b7e65c3c9 send errorlog (loglevel WARN) to stderr prior to opening the real logfiles. closes #1886
svn path=/icecast/trunk/icecast/; revision=19271
2014-11-07 11:18:54 +00:00
Philipp Schafft
1d56769648 added support for type="" and status="" in <header> (subelement of <http-headers>).
svn path=/icecast/trunk/icecast/; revision=19270
2014-11-07 10:12:24 +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
aa869033e2 handle empty strings in config file better. Now empty strings are handled in: accesslog, errorlog, logdir, webroot, adminroot and hopefully all kinds of port. Feal free to reopen ticket if there are more that needs to be fixed. closes #1963
svn path=/icecast/trunk/icecast/; revision=19268
2014-11-07 01:40:28 +00:00
Philipp Schafft
df9d738b6e initial patch to allow adding user defined headers, closes #1885
svn path=/icecast/trunk/icecast/; revision=19267
2014-11-07 00:56:02 +00:00
Philipp Schafft
97454060eb coding style and typo correcion
svn path=/icecast/trunk/icecast/; revision=19266
2014-11-06 23:55:58 +00:00
Thomas B. "dm8tbr" Ruecker
859c761cb6 Be more verbose in case of fileserve off.
svn path=/icecast/trunk/icecast/; revision=19265
2014-11-06 12:02:00 +00:00
Thomas B. "dm8tbr" Ruecker
0eff9a91e9 applied patch to update the default ciphers to be more secure (close #2072)
This was taken from: https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/#fnref2 (scroll up 2 lines)

I've tested this successfully against https://www.ssllabs.com/ssltest/ in combination with the patch for #2071. The only OS/Browser combination failing is: IE 6 / XP

svn path=/icecast/trunk/icecast/; revision=19264
2014-11-05 10:09:07 +00:00
Philipp Schafft
a3b50beabd applied patch to disable SSLv3 and SSL compression explicitly (close #2071)
svn path=/icecast/trunk/icecast/; revision=19263
2014-11-03 19:34:10 +00:00
Philipp Schafft
e6ce60e630 rename ICE_LISTEN_QUEUE, ICE_RUNNING and ICE_HALTING so they have a prefix of ICECAST_
svn path=/icecast/trunk/icecast/; revision=19258
2014-10-31 09:00:45 +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
cf419cc1df make <auth> in <mount type="default"> work if no <mount-name> is given.
svn path=/icecast/trunk/icecast/; revision=19251
2014-10-26 14:03:57 +00:00
ePirat
461a537561 More detailed logging
Add source IP adress to startup and source exit logging, see #2016
Add mountpoint to some log lines, see #1388


svn path=/icecast/trunk/icecast/; revision=19250
2014-10-23 20:41:38 +00:00
Philipp Schafft
634ab4ffc2 fix warnings, mostly related to win*-builds
svn path=/icecast/trunk/icecast/; revision=19246
2014-10-18 16:25:29 +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
53e6ee7abb SECURITY FIX - Override supplementary groups
In case of <changeowner> only UID and GID were changed, 
supplementary groups were left in place.
This is a potential security issue only if <changeowner> is used.
New behaviour is to set UID, GID and set supplementary groups 
based on the UID
Even in case of icecast remaining in supplementary group 0 
this "only" gives it things like access to files that are owned 
by group 0 and according to their umask. This is obviously bad,
but not as bad as UID 0 with all its other special rights.
It's a security issue and we fix immediately and recommend users to update.

PS: Cherry picking this should be fine by distros for fixing older releases.

svn path=/icecast/trunk/icecast/; revision=19137
2014-05-06 04:53:24 +00:00
Thomas B. "dm8tbr" Ruecker
db99c66aa0 Fix email address, my work email was fixed since.
svn path=/icecast/trunk/icecast/; revision=19123
2014-05-04 08:07:25 +00:00
Thomas B. "dm8tbr" Ruecker
9b823cb879 Adding stream_start_iso8601, server_start_iso8601
ISO8601 compliante timestamps for statistics. Should make usage in e.g. JSON
much easier.
Added as new variables to avoid breaking backwards compatibility.

svn path=/icecast/trunk/icecast/; revision=19122
2014-05-04 07:14:54 +00:00
Thomas B. "dm8tbr" Ruecker
2cf9930e91 Reverting r18945 for now as using -b breaks things.
Reopening #1886

svn path=/icecast/trunk/icecast/; revision=19100
2014-03-01 17:37:38 +00:00
Thomas B. "dm8tbr" Ruecker
110a84146d Send charset in headers for everything, excluding file-serv and streams.
svn path=/icecast/trunk/icecast/; revision=19096
2014-02-23 21:29:35 +00:00
Philipp Schafft
518ec953f7 fixed(?) a memory leak: lost headers of stream because of wrong ref counter in associated refbuf objects. I HATE refbuf.
svn path=/icecast/trunk/icecast/; revision=19054
2014-01-12 21:09:04 +00:00
Philipp Schafft
c9b6d627ab send 100-continue-header if client requests it
svn path=/icecast/trunk/icecast/; revision=19053
2014-01-12 12:29:27 +00:00
Philipp Schafft
c88f7d7de2 avoid memory leak in _parse_mount() when "type"-attribuet is set
svn path=/icecast/trunk/icecast/; revision=19052
2014-01-12 12:09:59 +00:00
Philipp Schafft
3f0d8a097e corrected Date:-header format to conform the standard (see RFC1123). Thanks to cato for reporting.
svn path=/icecast/trunk/icecast/; revision=19012
2013-11-06 01:01:31 +00:00
Philipp Schafft
917ace89da corrected logic checking argument. Thanks to David Binderman for reporting
svn path=/icecast/trunk/log/; revision=18961
2013-07-04 12:31:17 +00:00
Thomas B. "dm8tbr" Ruecker
5a26946236 This patch closes ticket #1886.
I've rethought the approach and found a much cleaner way. 
We now split handling of command line arguments into two parts.
Only the critical part of getting the config file is done first (and -v as it prevents startup).
The rest (currently only -b) is deferred.

This achieves the important bit why #1886 was created. 
It allows us to log error messages to stderr even if the -b argument is passed.
This is mainly for the case where the logfile or TCP port can't be opened.

svn path=/icecast/trunk/icecast/; revision=18945
2013-05-15 16:45:55 +00:00
Thomas B. "dm8tbr" Ruecker
115d64d8b4 Edited warning for clarity.
svn path=/icecast/trunk/icecast/; revision=18910
2013-04-05 20:13:18 +00:00
Philipp Schafft
b4887fc581 added a warning in case mount of type default is defined but a mountname is set
svn path=/icecast/trunk/icecast/; revision=18909
2013-04-05 19:49: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
f19107adc7 avoid fnmatch() on _WIN32 and fall back to strcmp(). Seems that MinGW does half-implement fnmatch()...
svn path=/icecast/trunk/icecast/; revision=18905
2013-04-03 02:04:38 +00:00
Philipp Schafft
47dd39a67c do fuzzy(fnmatch) matching for mountpoint names of non-normal mounts, see #1914
svn path=/icecast/trunk/icecast/; revision=18904
2013-04-03 00:46:55 +00:00
Philipp Schafft
53e8553035 mount points defined in config should use data from default mounts as well, see #1914
svn path=/icecast/trunk/icecast/; revision=18903
2013-04-03 00:33:10 +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
f9cfeb51ab Throw away the reqbuf stuff as it was not well designed. Removing it and restoring usage of %H *fixes* #1942 not just workaround it with opening security holes. close #1942
svn path=/icecast/trunk/icecast/; revision=18901
2013-04-02 12:19:33 +00:00
Philipp Schafft
3d9f6643bc allow space in format string for %H to allow spaces in output
svn path=/icecast/trunk/log/; revision=18900
2013-04-02 12:17:43 +00:00
Philipp Schafft
c502c9cc27 make use of const keyword in _fatal_error()
svn path=/icecast/trunk/icecast/; revision=18899
2013-04-02 11:51:47 +00:00
Philipp Schafft
e0b6d1396d allow --version as alias to -v (printing version number)
svn path=/icecast/trunk/icecast/; revision=18898
2013-04-02 11:48:40 +00:00
Thomas B. "dm8tbr" Ruecker
3c359b62dd Highly experimental HTTP PUT support. ref #1812
We are handling it the same as we would handle a SOURCE request.
Due to legacy code, sender MUST send proper content-type header,
if content type is not audio/mpeg!
Can be tested using real-time encoded output and piping it into
| curl -u username:password -H "Content-type: application/ogg" -T - http://localhost:8000/mountname.ogg
Note that this example has ZERO timing, so a simple 'cat *.ogg' will fail.
Whatever feeds the pipe must do it at proper timing for real-time playback!

svn path=/icecast/trunk/icecast/; revision=18888
2013-03-29 15:07:33 +00:00
Thomas B. "dm8tbr" Ruecker
26640bb58d Backing out part of r18755 touching this file.
fixes #1942

svn path=/icecast/trunk/icecast/; revision=18887
2013-03-29 14:41:24 +00:00
Philipp Schafft
aec4326149 corrected mime type of plain text mount point list, thanks to cato
svn path=/icecast/trunk/icecast/; revision=18807
2013-02-24 14:25:37 +00:00
Philipp Schafft
6e7c65bc10 send Expires:-headers on all cache=0 requests, close #1870
svn path=/icecast/trunk/icecast/; revision=18805
2013-02-24 02:04:43 +00:00
Philipp Schafft
d0bf2c64ed handle yp headers case insensetive, close #1873
svn path=/icecast/trunk/icecast/; revision=18804
2013-02-24 00:53:09 +00:00
Philipp Schafft
1f833eb244 Allow full URLs to be returned by the master server. close #1878
svn path=/icecast/trunk/icecast/; revision=18799
2013-02-23 20:55:58 +00:00
Philipp Schafft
40bc1e7659 Updated listener_remove handler:
* added ip= and agent=,
 * Some cleanup && made code more uniform,
 * avoid int for size_t vars.
actions: close #1422

svn path=/icecast/trunk/icecast/; revision=18798
2013-02-23 17:51:16 +00:00
Philipp Schafft
2c3108387b format fix
svn path=/icecast/trunk/icecast/; revision=18797
2013-02-23 17:05:54 +00:00
Philipp Schafft
a5163365a0 do not call xmlCleanupParser() too often, close #1931
svn path=/icecast/trunk/icecast/; revision=18796
2013-02-23 16:38:23 +00:00
Philipp Schafft
af068a72a6 Replaced usage of sprintf() with snprintf(). Also exported size of key printer's buffer in avl/.
svn path=/icecast/trunk/avl/; revision=18771
2013-01-16 12:02:14 +00:00
Philipp Schafft
3d504e9e6c Escape log entries in access log (close: #1916)
svn path=/icecast/trunk/log/; revision=18756
2013-01-02 14:44:43 +00:00
Philipp Schafft
bb07af1eb7 Escape log entries in access log (close: #1916)
svn path=/icecast/trunk/icecast/; revision=18755
2013-01-02 14:44:08 +00:00
Philipp Schafft
67d91cc3d2 corrected Content-Length: header in admin (raw) requests. Thanks to paluh for reporting.
svn path=/icecast/trunk/icecast/; revision=18698
2012-11-13 14:40:48 +00:00
Philipp Schafft
5b8e359f10 cleanup unused var schedule_config_reread.
svn path=/icecast/trunk/icecast/; revision=18693
2012-11-13 11:25:46 +00:00
Philipp Schafft
d0aa6c8769 correction for win32 build to avoid segfault if build with mingw (who wrote that code?)
svn path=/icecast/trunk/icecast/; revision=18688
2012-11-12 21:01:57 +00:00
Philipp Schafft
4e7434c71c corrected coding style
svn path=/icecast/trunk/icecast/; revision=18666
2012-10-14 23:50:15 +00:00
Philipp Schafft
2b40660a20 removed useless blank line
svn path=/icecast/trunk/icecast/; revision=18665
2012-10-14 21:36:10 +00:00
Philipp Schafft
98935fcc6e removed \r at end of lines
svn path=/icecast/trunk/icecast/; revision=18655
2012-10-12 14:41:12 +00:00
Philipp Schafft
6cbd28a057 updated copyright notices.
svn path=/icecast/trunk/icecast/; revision=18651
2012-10-11 22:54:53 +00:00
Philipp Schafft
27ba19f014 avoid compiler warnings; send /message/ in case of 403.
svn path=/icecast/trunk/icecast/; revision=18650
2012-10-11 22:49:57 +00:00
Philipp Schafft
61c9def238 cleanup of <source-password> parser code
svn path=/icecast/trunk/icecast/; revision=18649
2012-10-11 22:28:40 +00:00
Philipp Schafft
fdcef55ce1 Added options "headers" and "header_prefix" to URL based listener auth.
Someone should update the docs/ textes to good english.

svn path=/icecast/trunk/icecast/; revision=18648
2012-10-11 18:06:30 +00:00
Philipp Schafft
a424a4e1fe Fix win32 patches (r18642) so it builds corectly on non-win32 again.
svn path=/icecast/trunk/icecast/; revision=18646
2012-10-11 00:26:38 +00:00
Philipp Schafft
91b49c583b use correct prototype.
svn path=/icecast/trunk/icecast/; revision=18645
2012-10-10 23:34:54 +00:00
Philipp Schafft
9872182a09 Improved handling of HTTP client errors:
* Make the internal API more uniform,
 * Improved error pages slightly (See: #1889).

svn path=/icecast/trunk/icecast/; revision=18644
2012-10-10 23:15:05 +00:00
Philipp Schafft
469844374a Make some more vars local (static).
svn path=/icecast/trunk/icecast/; revision=18643
2012-10-10 22:48:15 +00:00
Philipp Schafft
4927a1109d fixes for win32 (ported 2.3.99.0 patches). Thanks to LRN (from Mailing list).
svn path=/icecast/trunk/icecast/; revision=18642
2012-10-10 22:41:30 +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
7eb5e1b6e4 Corrected check for the value of priority to be within valid range.
svn path=/icecast/trunk/log/; revision=18485
2012-07-31 23:09:42 +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
Thomas B. "dm8tbr" Ruecker
9c2db2107f Adding limits.h to fix build problems on e.g. newer glibc.
svn path=/icecast/trunk/icecast/; revision=18459
2012-07-17 21:24:45 +00:00
Philipp Schafft
55c9b45f0e added new lion at end of file so it does not mess up my console.
svn path=/icecast/trunk/icecast/; revision=18456
2012-07-17 14:50:44 +00:00
Philipp Schafft
9967447544 Allow (standard strftime(3)) %x codes in mount's <dump-file> to embedd timestamps in filenames. This currently only works on non windows. closes #1823
svn path=/icecast/trunk/icecast/; revision=18455
2012-07-17 14:42:16 +00:00
Philipp Schafft
2cb0e3180d race condition patch as submitted by lds and remi, slightly motified by me. closes #1810
svn path=/icecast/trunk/icecast/; revision=18454
2012-07-17 14:03:37 +00:00
Philipp Schafft
eea84fca6c commited support for HTTP PUT, See #1812
svn path=/icecast/trunk/httpp/; revision=18452
2012-07-16 16:05:21 +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
1295a56c4d Add support for Opus audio in the Ogg container.
Patch by David Richards from the icecast-webm branch.

svn path=/icecast/trunk/icecast/; revision=18401
2012-06-13 21:11:07 +00:00
Philipp Schafft
1b071ba395 support field width with (most common) %Ns and %NH syntax.
svn path=/icecast/trunk/log/; revision=18363
2012-06-07 18:27:58 +00:00
Philipp Schafft
5dede89f82 honor field width in %s and %H
svn path=/icecast/trunk/log/; revision=18362
2012-06-07 18:13:28 +00:00
Philipp Schafft
95105687f1 consider backticks as well as backslashes invalid chars
svn path=/icecast/trunk/log/; revision=18361
2012-06-07 18:09:48 +00:00
giles
636a2959f3 Merge fixes from trunk.
svn path=/icecast/branches/icecast-webm/; revision=18358
2012-06-07 16:51:03 +00:00
Thomas B. "dm8tbr" Ruecker
ddbce35678 This is part of the patch-set addressing CVE-2011-4612.
svn path=/icecast/trunk/log/; revision=18356
2012-06-07 15:57:59 +00:00
Thomas B. "dm8tbr" Ruecker
38cad36049 This is part of the patch-set addressing CVE-2011-4612.
svn path=/icecast/trunk/icecast/; revision=18355
2012-06-07 15:57:11 +00:00
giles
e6cd0cff1f Clarify that only these specific files are GPLv2 or v3.
Icecast itself remains GPLv2 only.

svn path=/icecast/branches/icecast-webm/; revision=18307
2012-05-24 18:32:06 +00:00
giles
1c0b051b80 Update copyright headers for the new code.
Also update the license statement to GPL2 or later.

svn path=/icecast/branches/icecast-webm/; revision=18303
2012-05-24 16:10:20 +00:00
giles
0fce619138 Add opus support.
This is David Richards' support patch for Ogg encapsulated
Opus streams.

From 35927ca52f

svn path=/icecast/branches/icecast-webm/; revision=18302
2012-05-24 16:04:27 +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
Philipp Schafft
446053dd9a corrected some small formating errors and typos
svn path=/icecast/trunk/icecast/; revision=18131
2011-11-26 02:39:30 +00:00
Philipp Schafft
17db41eba1 Added VCLT playlist support.
svn path=/icecast/trunk/icecast/; revision=18130
2011-11-26 02:37:39 +00:00
Philipp Schafft
e157de2321 Updated <alias> to use destination="" not dest="".
The old dest="" attribute is still supported.

svn path=/icecast/trunk/icecast/; revision=18128
2011-11-25 22:22:48 +00:00
Thomas B. "dm8tbr" Ruecker
f57110d7e5 Applied justdave's patches, fixing #1717 and #1718.
HTTPS now with better security and support for chained
certificates

svn path=/icecast/trunk/icecast/; revision=18127
2011-11-25 22:12:11 +00:00
Philipp Schafft
d66c53987c added a missing '*' to the copyright header
svn path=/icecast/trunk/icecast/; revision=18126
2011-11-25 22:00:36 +00:00
Philipp Schafft
530b78d7a1 Allow the source password to be undefined.
This is to avoid falling back to a default password which may open security holes.

svn path=/icecast/trunk/icecast/; revision=18125
2011-11-25 21:24:28 +00:00
Thomas B. "dm8tbr" Ruecker
99788838ac First part of security fix for #1846
svn path=/icecast/trunk/icecast/; revision=18124
2011-11-25 19:59:03 +00:00
Karl Heyes
3c4816555e win32 updates. cleanup of the start and finish of the gui and service
svn path=/icecast/trunk/icecast/; revision=16440
2009-08-05 22:32:47 +00:00
Karl Heyes
1f92e2ab1c setting an interval of 0 in mount should disable shoutcast metadata inserts.
svn path=/icecast/trunk/icecast/; revision=16439
2009-08-05 22:24:04 +00:00
Karl Heyes
fa7b8bb814 send host header on relay connect
svn path=/icecast/trunk/icecast/; revision=16257
2009-07-11 01:23:16 +00:00
Karl Heyes
74e11b7194 fix case of global listeners count becoming out of sync. It is possible that
connecting listeners will disconnect before any processing is done on them.

svn path=/icecast/trunk/icecast/; revision=16254
2009-07-10 15:08:30 +00:00
Karl Heyes
44c05662c7 minor cleanups.
svn path=/icecast/trunk/httpp/; revision=16213
2009-07-07 16:37:31 +00:00
Karl Heyes
b9b94478c7 bug+fix reported on icecast-dev (Petr Pisar, 06/07/2009). poll implementation
of sock_connected had incorrect return in failure case.

svn path=/icecast/trunk/net/; revision=16209
2009-07-06 14:28:16 +00:00
Karl Heyes
5597e2b874 prevent a debug message from triggering
svn path=/icecast/trunk/icecast/; revision=15784
2009-03-17 02:59:50 +00:00