1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-09-22 04:15:54 -04:00
Commit Graph

913 Commits

Author SHA1 Message Date
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
Karl Heyes
ed7e707f11 add optional bind setting to relays
svn path=/icecast/trunk/icecast/; revision=15783
2009-03-17 01:45:41 +00:00
Karl Heyes
d784622396 non-blocking setting on win32 broke with previous patch. Add optional xml setting for
specifying the TCP send buffer size, it seems that on at least some win32 systems,
the window size stays at 8k (even with registry settings) which could limit available
streaming bandwidth.

svn path=/icecast/trunk/icecast/; revision=15766
2009-03-14 16:05:12 +00:00
Karl Heyes
1ab9b4a887 prevent logging lots of failed to reserve relay mountpoint. close #1513
svn path=/icecast/trunk/icecast/; revision=15764
2009-03-14 02:46:40 +00:00
Karl Heyes
9e118ca72b explicitly flag up a metadata update after they have been set. Could of led to
a non-crash type race between artist and title fields updating.  Also allow
passing a url setting, mapping to StreamURL in the icy metadata block, but do
not override any existing inline setting.

svn path=/icecast/trunk/icecast/; revision=15622
2009-01-15 03:38:49 +00:00
Karl Heyes
e6dfee632c Allow source client authentication via auth handler. Here the URL handler can
issue requests (using ithe stream_auth option) to allow external engines to
determine whether a client can stream or not. Admin requests using source auth
are able to use this mechanism however source clients using the icy protocol
cannot yet.


svn path=/icecast/trunk/icecast/; revision=15621
2009-01-14 01:18:22 +00:00
Karl Heyes
d49fd42eec lock order updates. hard to trigger case in source fallback. The other changes
are for consistency.

svn path=/icecast/trunk/icecast/; revision=15619
2009-01-11 16:46:08 +00:00
Karl Heyes
ed58514eaa Add handlers for spinlocks if available, map to mutexes when not.
svn path=/icecast/trunk/icecast/; revision=15614
2009-01-09 03:18:03 +00:00
Karl Heyes
add7342a14 Don't free up the second, third... header pages, as those are only referenced
once, only the first page is refcounted multiple times by the queue. Put some
checks in to help capture odd cases if they arise.

svn path=/icecast/trunk/icecast/; revision=15613
2009-01-08 03:35:54 +00:00
Karl Heyes
52129d4c5e oops, missed one from previous commit
svn path=/icecast/trunk/icecast/; revision=15612
2009-01-08 03:20:10 +00:00
Karl Heyes
deff3aa0ca avoid SOCK_NONBLOCK name clash with recent glibc. Add support for optional
bind parameter to connect_wto call. Some small compiler cleanups.

svn path=/icecast/trunk/icecast/; revision=15611
2009-01-08 02:47:44 +00:00
Karl Heyes
4ec4a90cb8 log: When keeping around log lines, only allocate what we actually use. Allow
compiler printf arg checking.
timing: win32 fix, don't use timeGetTime, fixes access log timestamp

svn path=/icecast/trunk/log/; revision=15610
2009-01-08 02:18:11 +00:00
ivo
cf3e3c8011 Do not allow Skeleton from taking control over the sync marks. Karl's proposal for the Vorbis+Skeleton issue.
svn path=/icecast/trunk/icecast/; revision=15529
2008-11-23 23:31:36 +00:00
Karl Heyes
3addc16981 reduce memory allocation and processing when retrieving stats for xsl pages
svn path=/icecast/trunk/icecast/; revision=15462
2008-10-29 02:47:41 +00:00
Karl Heyes
544c41ce60 missed from previous commit. we don't cleanup at this point anymore, doing so
could cause lost client connections.

svn path=/icecast/trunk/icecast/; revision=15426
2008-10-21 02:30:43 +00:00
Karl Heyes
d503f0bf5c guard for 2 NULL pointer cases raised by coverity. Neither should occur in practice
svn path=/icecast/trunk/icecast/; revision=15358
2008-10-01 01:07:29 +00:00
Karl Heyes
7b9b682a94 prevent minor memory leak, not usually triggered
svn path=/icecast/trunk/icecast/; revision=15318
2008-09-19 00:23:16 +00:00
Karl Heyes
72f8944c90 fix starting point problem with low bandwidth theroa streams. listener could
connect and be waiting a while before receiving stream content.

When retrieving streamlist, don't wait too long for connection to master

schedule a full stats rebuild on source disconnect.

Minor build fix for certain platforms with missing defines

svn path=/icecast/trunk/icecast/; revision=15276
2008-09-09 02:18:22 +00:00
Karl Heyes
a520a18e53 allow listener_remove only cases. clients were not attached to the auth at
connection time so the remove trigger could not be processed.

svn path=/icecast/trunk/icecast/; revision=15265
2008-09-08 00:40:25 +00:00
Karl Heyes
4c841bbe21 only allow raw admin metadata updates from the IP of the source client unless
the user is admin. It seems that some source clients issue metadata updates
even if they are rejected due to the mountpoint being in use.

svn path=/icecast/trunk/icecast/; revision=15264
2008-09-08 00:30:37 +00:00
Karl Heyes
30836f31c9 have a minimum update duration to prevent very frequent touch updates, no
point in creating extra YP load for this case.

svn path=/icecast/trunk/icecast/; revision=15263
2008-09-08 00:22:37 +00:00
Karl Heyes
d97233258c Make fserve thread start up only when required. In most cases this thread is
just in a sleep loop which means most clients getting to it have to wait. We
now just start the thread when there is work to do.  There is also some small
cleanup for the off_t type usage as well.

svn path=/icecast/trunk/icecast/; revision=15124
2008-07-22 02:37:32 +00:00
Karl Heyes
0bd5f9e74f Some have reported that if they do a series of requests in succession that
the overall time is very slow. This lag is mainly down to the sleep that
the connection and fserve threads do to prevent busy looping when idle. The
sleep has to expire even if requests are waiting.

This patch merges the tasks done by the connection and listener thread into
one thread.  It allows us to remove some locking, reduce thread usage and
service new connections more quickly as the poll/select acts as the busy
CPU prevention.

svn path=/icecast/trunk/icecast/; revision=15123
2008-07-22 02:24:30 +00:00
Karl Heyes
c6a0b4cc8b 2 on-demand relay fixups.
We prevent a failed relay from restarting too quickly but don't prevent
connecting listeners from getting to the source_t during that time. Drop the
on-demand status in the source_t during this period so listeners are rejected.
The setting is reset from relay eventually.

Relays without matching mount sections had no stats initially.


svn path=/icecast/trunk/icecast/; revision=15122
2008-07-19 01:57:53 +00:00
Karl Heyes
26c9b65eb0 expand debug log message to include a mountpoint reference
svn path=/icecast/trunk/icecast/; revision=15121
2008-07-19 01:36:16 +00:00
Karl Heyes
385d65b838 Don't include a per node lock unless it is really wanted. I don't think anyone
is using them currently, so lets reduce the structure size.  On win32, this
extra lock increases the handles usage considerably.

svn path=/icecast/trunk/avl/; revision=15120
2008-07-19 01:30:16 +00:00
Karl Heyes
1645c82128 handle a couple of possible odd misconfiguration cases with YP. Make sure the
peak_listeners stat is shown when relays are inactive.

svn path=/icecast/trunk/icecast/; revision=14934
2008-05-21 02:19:47 +00:00
Karl Heyes
06510b997b update from win32 build. Mostly cleanup work
svn path=/icecast/trunk/icecast/; revision=14867
2008-05-12 01:21:06 +00:00
Karl Heyes
90b705986c sanity check for unspecifed url
svn path=/icecast/trunk/icecast/; revision=14866
2008-05-11 23:20:50 +00:00
Karl Heyes
c59afc60d2 check if function exists, some older versions don't have this
svn path=/icecast/trunk/icecast/; revision=14825
2008-05-02 23:18:52 +00:00
Karl Heyes
f7e64956df fix busy retry bug on failure from previous patch
svn path=/icecast/trunk/icecast/; revision=14824
2008-05-02 16:10:22 +00:00
Karl Heyes
cbb7643b43 Allow any number of mountpoints to be returned for streamlist. You would
need a large number of mountpoints to trigger a truncation.  Allow file
serving thread to process a list of blocks for sending back to
the client. Then build the block list in the stats engine for returning.

svn path=/icecast/trunk/icecast/; revision=14812
2008-04-29 04:50:23 +00:00
Karl Heyes
2822e350bb htpasswd auth should apply even if no filename is specified, just reject all
new listeners with the reason logged. auth_t refcount was getting out of sync
which is a potential small memory leak.

svn path=/icecast/trunk/icecast/; revision=14788
2008-04-23 02:48:53 +00:00
Karl Heyes
a3d1ff8098 YP fixup for unusual cases. Inactive on-demand relays were not sending certain
details to stats engine.  On YP remove, make sure we find all nodes for that
montpoint not just the first. Allow at least 20mins from a failed touch before
next add, allows YP to give a longer wait period for misconfigured setups by
issuing a TouchFreq header on rejection.

svn path=/icecast/trunk/icecast/; revision=14787
2008-04-23 01:45:38 +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
b2ce433a8f Add Kate and Skeleton codecs to ogg handler. patch by ogg.k.ogg.k
svn path=/icecast/trunk/icecast/; revision=14778
2008-04-19 02:11:37 +00:00
Karl Heyes
bded7d2564 Small cleanups. Prevent possible segv in relay definition if missing server tag.
Don't add to stream directory until a minute has passed, it seems like a few sites
are triggering YP requests because they are connecting and then dropping (probably
due to timeout), so at least make sure the stream is running a little while.

svn path=/icecast/trunk/icecast/; revision=14777
2008-04-19 02:04:17 +00:00
Karl Heyes
0047edd51c small update for failure case. retry times changed and limited redirection allowed
svn path=/icecast/trunk/icecast/; revision=14773
2008-04-18 01:12:45 +00:00
Karl Heyes
649c4fdc70 build fix for older setups with IPv6
svn path=/icecast/trunk/net/; revision=14545
2008-02-28 02:16:23 +00:00
Karl Heyes
c37e770ee0 avoid duplicate entries in playlist log
svn path=/icecast/trunk/icecast/; revision=14483
2008-02-12 04:15:45 +00:00
Karl Heyes
0868602bc0 win32 update. change build settings so that we make the process simpler, it
was very easy for the intermediate files to clash between projects.  The newer
libxml2/libxslt/libcurl also were causing some threading issues due to
library initialization


svn path=/icecast/trunk/icecast/; revision=14465
2008-02-11 01:00:41 +00:00
Karl Heyes
1cdc68cf1d Use poll if available, select can cause stack corruption if descriptor value is over 1024
svn path=/icecast/trunk/net/; revision=14457
2008-02-05 04:21:12 +00:00
Karl Heyes
3344ff6f09 if a directory server times out, reset the failing server stream entries so
that the streams go through the add process again in 15 mins. closes #689

svn path=/icecast/trunk/icecast/; revision=14452
2008-02-03 05:43:32 +00:00
Karl Heyes
22ee7b6b6e minor xml cleanup, reduce default log level, closes #775
svn path=/icecast/trunk/icecast/; revision=14450
2008-02-03 03:11:54 +00:00
Karl Heyes
22654d271c Handle missing mount in relay case, and add checks for NULL which may be an issue for libxml2.
svn path=/icecast/trunk/icecast/; revision=14430
2008-01-24 03:31:25 +00:00
Karl Heyes
4aa2f1e0eb fix possible junk chars passed back and don't call strftime each log line, under
glibc this calls for a stat of /etc/localtime each time

svn path=/icecast/trunk/log/; revision=14429
2008-01-24 03:28:11 +00:00
Karl Heyes
6331e2ee77 fix default operation for manageauth
svn path=/icecast/trunk/icecast/; revision=14339
2008-01-03 15:18:52 +00:00
Karl Heyes
03e18677e4 drop const usage and work around a FBSD issue with listening sockets
svn path=/icecast/trunk/net/; revision=14319
2007-12-20 16:49:02 +00:00
Karl Heyes
6bcbb416b9 make sure we report the correct port for m3u and YP when not using the default port
svn path=/icecast/trunk/icecast/; revision=14318
2007-12-20 16:36:37 +00:00
Karl Heyes
2ccfe3caa5 port 8000 could be set to listen on when not wanted
svn path=/icecast/trunk/icecast/; revision=14314
2007-12-19 19:09:04 +00:00
Karl Heyes
0e533ac490 reduce wasted memory on 64bit systems, 32bit has no change
svn path=/icecast/trunk/avl/; revision=14308
2007-12-15 17:51:33 +00:00
Karl Heyes
73401b80d5 prevent NULL dereference
svn path=/icecast/trunk/icecast/; revision=14307
2007-12-15 17:21:22 +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
7b6b874b02 type cleanups. Use C99 defines if available and a missed sock_t on win32. This
resolves some warnings on win32 and x86_64

svn path=/icecast/trunk/icecast/; revision=14223
2007-11-23 16:27:10 +00:00
Karl Heyes
89dac2e3cf minor header cleanup
svn path=/icecast/trunk/icecast/; revision=14219
2007-11-23 03:17:39 +00:00
Karl Heyes
6ee33215e8 fix long standing copy+paste error.
svn path=/icecast/trunk/icecast/; revision=14218
2007-11-23 02:48:37 +00:00
Karl Heyes
7d8182eef5 minor cleanups, no functional change
svn path=/icecast/trunk/icecast/; revision=14206
2007-11-21 02:55:11 +00:00
Michael Smith
ab1447d35b Don't make autogen.sh look for a specific version of automake (seems to still
work)

Include <errno.h> in connection.c; hopefully fixes Geoff Shang's compilation
problems.

svn path=/icecast/trunk/icecast/; revision=14155
2007-11-15 15:12:21 +00:00
Karl Heyes
197be21d1c only pass clients to url auth handler if the trigger is defined in the xml
svn path=/icecast/trunk/icecast/; revision=14115
2007-11-08 20:00:54 +00:00
Karl Heyes
66b68170cc auth sync up. Fix longstanding race bug and make stream start/stop triggers work again.
svn path=/icecast/trunk/icecast/; revision=14114
2007-11-08 19:52:51 +00:00
Karl Heyes
b4b8e3e552 fix bad pointer bug for libcurl and small memory leak over reload of xml
svn path=/icecast/trunk/icecast/; revision=14108
2007-11-08 03:21:33 +00:00
Karl Heyes
0a347a6817 allow for multiple shoutcast style source clients to connect. They don't
provide a mountpoint so you specify a shoutcast-mount in the listen-socket
section. Specifying this will automatically define the port+1 with the same
settings however the original shoutcast-compat approach is maintained.

svn path=/icecast/trunk/icecast/; revision=14045
2007-10-25 02:25:49 +00:00
Karl Heyes
88514b9c8e fix minor memory leak on failed shoutcast source auth
svn path=/icecast/trunk/icecast/; revision=14044
2007-10-25 01:03:47 +00:00
Karl Heyes
af1c8da6b6 more sock_t cleanups, win32 should have less warnings now
svn path=/icecast/trunk/icecast/; revision=14043
2007-10-24 22:42:49 +00:00
Karl Heyes
089dd4c273 return type was wrong, although it probably won't affect stability
svn path=/icecast/trunk/icecast/; revision=14042
2007-10-24 22:40:42 +00:00
Karl Heyes
9c155dda50 clean up prototypes and sock_t handling, for win32 mainly, no functional change
svn path=/icecast/trunk/net/; revision=14041
2007-10-24 21:42:01 +00:00
Karl Heyes
4b5f00993d Allow for files to be specified that will contain IPs that can be used to
accept or deny client connections.

svn path=/icecast/trunk/icecast/; revision=14039
2007-10-23 22:25:31 +00:00
Karl Heyes
9379e4e051 *sigh, missing ; at least the coverity list should be clear again
svn path=/icecast/trunk/icecast/; revision=14033
2007-10-22 02:57:56 +00:00
Karl Heyes
ef8a91c8e6 minor memory leak on resource failure case
svn path=/icecast/trunk/icecast/; revision=14032
2007-10-22 02:52:16 +00:00
Karl Heyes
148af4e6ee merge work. mainly stats and some log message updates
svn path=/icecast/trunk/icecast/; revision=14031
2007-10-22 02:29:49 +00:00
Karl Heyes
27f58c1189 boundary limit check was wrong, we won't be able to match any of the listen sockets
svn path=/icecast/trunk/icecast/; revision=14030
2007-10-22 02:23:10 +00:00
Karl Heyes
a26bb50004 fix some potential minor memory leaks
svn path=/icecast/trunk/icecast/; revision=14018
2007-10-20 01:58:14 +00:00
Karl Heyes
549127b9f5 a missing break from a previous auth update was preventing url auth from being
used

svn path=/icecast/trunk/icecast/; revision=14017
2007-10-20 01:55:18 +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
f9c3fc91a7 updates to range header handling. closes #1246, #810
svn path=/icecast/trunk/icecast/; revision=14006
2007-10-17 23:49:14 +00:00
Karl Heyes
55b5b7eb80 minor memory leak fixed
svn path=/icecast/trunk/icecast/; revision=14004
2007-10-17 02:35:48 +00:00
Karl Heyes
ba438dd7b5 Don't impose a limit on the number of listening sockets allowed in the xml
svn path=/icecast/trunk/icecast/; revision=13995
2007-10-16 01:53:06 +00:00
Karl Heyes
e065acb7f1 no functional/structural change but cleans up the annoying signed/unsigned pointer warnings
here with xmlChar, based on work originally done by gtgbr@gmx.net.
closes #783, #784, #785, #787

svn path=/icecast/trunk/icecast/; revision=13933
2007-10-04 16:48:38 +00:00
Karl Heyes
da893d8b3b missed these from previous commit, these checks are redundant now
svn path=/icecast/trunk/icecast/; revision=13930
2007-10-04 01:44:05 +00:00
Karl Heyes
807f95243f Make copies of the default string values instead of relying on the compiler to check
for duplicate string literals.

svn path=/icecast/trunk/icecast/; revision=13929
2007-10-04 00:55:13 +00:00
Karl Heyes
43988cac59 Allow buildm3u to work with the mount given, no need to check the source tree. closes #866
svn path=/icecast/trunk/icecast/; revision=13908
2007-09-28 00:54:01 +00:00
Karl Heyes
b8ab793867 make sure mount authentication has a type specified
svn path=/icecast/trunk/icecast/; revision=13877
2007-09-22 01:21:17 +00:00
Karl Heyes
7735a94ee6 add guards for NULL dereference
svn path=/icecast/trunk/avl/; revision=13799
2007-09-14 03:09:32 +00:00
Karl Heyes
e99eee6c80 small build fix and a minor issue highlighted by coverity
svn path=/icecast/trunk/icecast/; revision=13798
2007-09-14 03:01:17 +00:00
Karl Heyes
337f4a3272 make sure config lock is released in all failure cases of manageauth
svn path=/icecast/trunk/icecast/; revision=13792
2007-09-13 01:32:15 +00:00
Karl Heyes
03a4d5298f convert the passed value
svn path=/icecast/trunk/icecast/; revision=13755
2007-09-05 03:25:14 +00:00
Karl Heyes
d43254853f allow mount param for webroot xsl pages, closes #990
svn path=/icecast/trunk/icecast/; revision=13754
2007-09-05 02:16:45 +00:00
Karl Heyes
2c67cfffb2 fix for #734. Allow /admin/stats[.xsl] to take an optional mount arg which only
returns global stats and stats for that particular mountpoint.


svn path=/icecast/trunk/icecast/; revision=13709
2007-09-03 22:04:04 +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
47def32074 missed some NULL checks from previous character set commit. Add optional charset
setting on metadata update request and conversion code for it.


svn path=/icecast/trunk/icecast/; revision=13663
2007-08-30 23:36:19 +00:00
Karl Heyes
7e5604b993 merge work. allow sockets to be marked as ssl capable. This is mainly for /admin
requests but can be used for sources and listeners

svn path=/icecast/trunk/icecast/; revision=13650
2007-08-29 03:51:22 +00:00
Karl Heyes
31ce005ef3 small const update, add NULL check, NULL shouldn't occur here but it's better to play safe
svn path=/icecast/trunk/icecast/; revision=13649
2007-08-29 02:01:28 +00:00
Karl Heyes
9e078e714f allow xsl requests to go through the authentication code
svn path=/icecast/trunk/icecast/; revision=13628
2007-08-25 16:04:33 +00:00
Karl Heyes
5a7111fc82 Fix bug #895. Most if not all non-Ogg streams send metadata as non-UTF8, typically
ISO-8859-1 is assumed as there is no real clarity wrt the spec. In most cases people
send ASCII so it's not an issue, but for some, the extended characters they send
can cause problems with XML processing.  As stats and YP require UTF8 we need to
translate them and block invalid cases.

For the moment, for non-Ogg streams only, we assume that the metadata needs converting
from ISO-8859-1. Ogg streams are UTF8 so no conversion needed. You can override the
default with a charset mount option.


svn path=/icecast/trunk/icecast/; revision=13615
2007-08-24 15:44:37 +00:00
Karl Heyes
fe0e17dbaa fix bug #1141
svn path=/icecast/trunk/icecast/; revision=13595
2007-08-23 16:58:18 +00:00
Karl Heyes
176b9f7eca Auth update. Have each auth_t has its own queue of requests and thread to process
them. Each listener connection for each request is checked as connected before
performing the request (so that time isn't wasted on slow authentication). Various
name/comment cleanups as well.

svn path=/icecast/trunk/icecast/; revision=13583
2007-08-21 22:30:30 +00:00
Karl Heyes
620c51f699 added function to check whether the socket is still alive
svn path=/icecast/trunk/net/; revision=13582
2007-08-21 22:17:13 +00:00
Karl Heyes
bd266785ad fix possible crash
svn path=/icecast/trunk/icecast/; revision=13561
2007-08-16 23:03:03 +00:00
Karl Heyes
3910d1caf9 const updates, again no functional change
svn path=/icecast/trunk/httpp/; revision=13560
2007-08-16 22:52:24 +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
eebb33b8a1 add general information to stats
svn path=/icecast/trunk/icecast/; revision=13553
2007-08-16 02:13:18 +00:00
Karl Heyes
f1c6cf9d4e Allow rereading of the mime types file on xml reload. Also allow for specifying
an alternative filename in the xml.

svn path=/icecast/trunk/icecast/; revision=13541
2007-08-13 21:33:27 +00:00
Karl Heyes
e06793a7ad handle .xspf requests. Like m3u, send a webroot file if it exists else generate
one. The generated one comes from an xslt in adminroot. Just need some icons

svn path=/icecast/trunk/icecast/; revision=13539
2007-08-11 18:26:44 +00:00
Karl Heyes
bb0b1a2a32 Triggers for source stats updated. No point updating all source stats if fewer
need updating. Fixes a few unusual cases, if a mount was removed (with xml reload)
whilst no source was reserved then those stats were left behind.

svn path=/icecast/trunk/icecast/; revision=13538
2007-08-11 17:44:45 +00:00
Karl Heyes
2a0c3cdefa Don't hardcode content type of xslt files to html, allow xsl to determine it
svn path=/icecast/trunk/icecast/; revision=13534
2007-08-11 00:24:51 +00:00
Karl Heyes
b3b2695a1d Handle http 302 response when a relay starts. The socket IO is isolated into a
separate function for loop handling and log messages are updated.


svn path=/icecast/trunk/icecast/; revision=13533
2007-08-10 21:33:16 +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
fe5c9e62cc minor build update
svn path=/icecast/trunk/net/; revision=13501
2007-08-09 23:51:26 +00:00
Karl Heyes
7248d653c0 Update the streamlist handler for slaves. Get the list of non-hidden mountpoints
from the stats engine instead of the mount or source list, as the stats are
populated by non-mount defined streams and mounts with active fallbacks.

svn path=/icecast/trunk/icecast/; revision=13500
2007-08-09 23:36:29 +00:00
Karl Heyes
3e8f2c39d4 fix problem case when listeners are moved by another thread, eg a fallback
override is triggered, and on-demand relays are not shut down or stats are
not updated.

svn path=/icecast/trunk/icecast/; revision=13496
2007-08-09 15:43:00 +00:00
Karl Heyes
7c6c79c416 build fix with libcurl 7.16 onwards
svn path=/icecast/trunk/icecast/; revision=13495
2007-08-09 12:24:33 +00:00
Karl Heyes
adac7ebee4 if addresses come back as IPv4-mapped IPv6 then make it look like IPv4 or else
we'll get queries about the access log.  Fix a potential FD leak and add a
small delay into the listener thread if accept fails, the usual cause is an FD
limit being reached triggering logs to fill up and CPU to max out.


svn path=/icecast/trunk/icecast/; revision=13492
2007-08-09 03:36:03 +00:00
Karl Heyes
916a4a4cd1 update to server side socket creation. Where IPv6-aware functions are available,
use them to create dual IPv4/6 capable sockets.


svn path=/icecast/trunk/net/; revision=13491
2007-08-09 03:19:24 +00:00
Karl Heyes
e663a238ee prevent race case when dealing with shoutcast style source clients and update
response headers to those clients.

svn path=/icecast/trunk/icecast/; revision=13490
2007-08-09 02:51:53 +00:00
moritz
d8fafe1935 Only define [u]int64_t on Windows if they haven't been defined already (e.g. in
os.h from libshout or stdint.h in case they ever show up there.)

ok msmith

svn path=/icecast/trunk/timing/; revision=12663
2007-03-06 13:35:29 +00:00
Michael Smith
a1d9503d8e Fix use-after-free in error case in fserve, as noted by Jerome Alet
svn path=/icecast/trunk/icecast/; revision=11412
2006-05-18 22:06:32 +00:00
Michael Smith
25c55e1f86 Set error if we have an unrecognised codec, so that we properly drop the source
rather than just continuing forever on unrecognisable input.

svn path=/icecast/trunk/icecast/; revision=11184
2006-04-20 16:51:27 +00:00
Karl Heyes
d574647025 off by 1 error, although not triggered by icecast/ices
svn path=/icecast/trunk/log/; revision=11073
2006-03-31 02:14:12 +00:00
Karl Heyes
e00aafda3a allow the last N lines to be cached and retrieved from each log, the default
is nothing cached (current behaviour).

svn path=/icecast/trunk/log/; revision=11063
2006-03-27 02:26:06 +00:00
Karl Heyes
0dc2655838 slave handler update. add timestamps to relays, allows slave thread to
process them better. This simplifies various checks and sits better with
relay startup and relay cleanup in certain error cases.

svn path=/icecast/trunk/icecast/; revision=11008
2006-03-15 03:02:08 +00:00
Karl Heyes
9e96120398 When modifying source_t contents we should take a write lock to prevent
races with other threads. so take a write lock on the client tree.

svn path=/icecast/trunk/icecast/; revision=11007
2006-03-15 02:42:18 +00:00
Karl Heyes
c81a42cb3b close report #842. It's more informative to report the read bytes
svn path=/icecast/trunk/icecast/; revision=11006
2006-03-15 02:34:39 +00:00
Karl Heyes
8ec568d5b5 fix possible bad pointer dereference bug when processing new clients
svn path=/icecast/trunk/icecast/; revision=11005
2006-03-15 02:30:26 +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
Michael Smith
091892c8c6 Forgot to commit this one yesterday: add a default case to prevent memory leaks
in any potential caller calling this with the wrong args.

svn path=/icecast/trunk/icecast/; revision=10989
2006-03-08 11:14:56 +00:00
Michael Smith
14e0cfcdac Remove a bogus non-null check
svn path=/icecast/trunk/icecast/; revision=10979
2006-03-07 19:39:16 +00:00
Michael Smith
043aa0b009 Don't leak parsers when we fail to parse a shoutcast-compatible request.
svn path=/icecast/trunk/icecast/; revision=10978
2006-03-07 19:35:18 +00:00
Michael Smith
c4dfb3f2fd Don't leak file pointers (and hence file descriptors) if we can't parse a range
request.

svn path=/icecast/trunk/icecast/; revision=10977
2006-03-07 19:28:41 +00:00
Michael Smith
9acddcdb8a Oops, fix compilation
svn path=/icecast/trunk/icecast/; revision=10976
2006-03-07 19:27:54 +00:00
Michael Smith
36dc9b0c25 Free tree if we fail to allocate root node.
svn path=/icecast/trunk/avl/; revision=10975
2006-03-07 19:22:29 +00:00
Michael Smith
2848a70776 Fix a leak in a config parsing path when we see a directory server with no
host specified.

svn path=/icecast/trunk/icecast/; revision=10974
2006-03-07 19:21:04 +00:00
Michael Smith
3cf24e0af7 Add a missing check for LOG_MAXLOGS, fix another check to be >= rather than >
svn path=/icecast/trunk/log/; revision=10973
2006-03-07 19:17:06 +00:00
Michael Smith
82f1ebf52a When falling back from a full source to another source, ensure the other source
actually exists. 

svn path=/icecast/trunk/icecast/; revision=10972
2006-03-07 19:12:43 +00:00
Michael Smith
c892e2217a Allow a NULL filename in log_set_filename, since it's allowed elsewhere.
Thanks Coverity!


svn path=/icecast/trunk/log/; revision=10971
2006-03-07 19:07:20 +00:00
oddsock
0320ef97f7 os.h doesn't exist anymore, use compat.h.
svn path=/icecast/trunk/net/; revision=10949
2006-02-24 04:37:22 +00:00
Michael Smith
739d544c34 Having both os.h and compat.h to do similar things is pointless; remove os.h
svn path=/icecast/trunk/icecast/; revision=10620
2005-12-17 12:41:34 +00:00
Michael Smith
4dea87dca7 As pointed out on irc, size_t is unsigned. Fix for the win32 case.
svn path=/icecast/trunk/icecast/; revision=10619
2005-12-17 12:36:08 +00:00
Michael Smith
5aa561c5b7 Modified version of patch from gtgbr@gmx.net to clean up headers and defines
for logging.

svn path=/icecast/trunk/icecast/; revision=10618
2005-12-17 12:34:37 +00:00
Michael Smith
daf771dbfe Patch from gtgbr@gmx.net to make ICECAST_VERSION_STRING safe to contain any
content.

svn path=/icecast/trunk/icecast/; revision=10617
2005-12-17 12:27:29 +00:00
Michael Smith
ab1994ab44 More function decl/defn fixes
svn path=/icecast/trunk/log/; revision=10616
2005-12-17 12:23:54 +00:00
Michael Smith
37a6bb18d6 Patch from gtgbr@gmx.net to fix (void) function prototypes, with some minor
changes.


svn path=/icecast/trunk/icecast/; revision=10615
2005-12-17 12:23:09 +00:00
Michael Smith
4c3d56743d Patch from gtgbr@gmx.net to fix function definition storage type.
svn path=/icecast/trunk/icecast/; revision=10613
2005-12-17 12:15:09 +00:00
Karl Heyes
5965554dbb update for authentication header via libcurl. allows for http://user:pass@host..
else the param specified user/pass. In the case of listener_add/remove use
the client provided user/pass if no others are specified.

svn path=/icecast/trunk/icecast/; revision=10498
2005-11-29 03:06:03 +00:00
Karl Heyes
d670683e1e allow for the intro file to change over HUP
svn path=/icecast/trunk/icecast/; revision=10411
2005-11-20 13:53:29 +00:00
Karl Heyes
11c6e1039c change status code for server/stream full cases (#738), also some others places
where connections are terminated.

svn path=/icecast/trunk/icecast/; revision=10393
2005-11-17 00:54:28 +00:00
Karl Heyes
f7afa9761b update queue handling for stats. This was slow when many stats were being
queued. These apply to both web interface requests and stats clients.

svn path=/icecast/trunk/icecast/; revision=10370
2005-11-15 00:36:34 +00:00
Karl Heyes
280006162e fixup granulepos on EOS case when rebuilding vorbis streams. This was causing
a short audio glitch on playback, but was not typically noticed.

svn path=/icecast/trunk/icecast/; revision=10369
2005-11-15 00:29:24 +00:00
oddsock
6063820441 new external api to support log archiving
svn path=/icecast/trunk/log/; revision=10288
2005-10-24 14:52:35 +00:00
oddsock
3a85a143b5 2 new features to icecast logging:
- logsize : specify in KB the max size of any of icecast log files
- logarchive : causes icecast to rename logs with timestamps (for proper archiving)


svn path=/icecast/trunk/icecast/; revision=10287
2005-10-24 14:51:54 +00:00
Karl Heyes
758945ed2d avoid adding a mount_t structure if there is no mount name defined, segv
occurs later on 

svn path=/icecast/trunk/icecast/; revision=10151
2005-10-11 13:40:17 +00:00
Karl Heyes
43d8cfdd73 fix bug #717. a race on source exit could cause memory corruption
svn path=/icecast/trunk/icecast/; revision=10135
2005-10-06 02:41:51 +00:00
Karl Heyes
24a24d8df0 add hack for nsvcap, apparently EOL is 3 chars
svn path=/icecast/trunk/icecast/; revision=10110
2005-10-01 14:08:36 +00:00
Karl Heyes
f869415cf7 Fix a bug where a shoutcast source client (nsvtools) does not wait for the
OK response. Icecast was dropping the connection preventing the stream

svn path=/icecast/trunk/icecast/; revision=10076
2005-09-26 16:34:51 +00:00
Karl Heyes
fce4c2263d maintain the listener_peak stat across relay restarts
svn path=/icecast/trunk/icecast/; revision=10033
2005-09-19 02:11:16 +00:00
Karl Heyes
78287d2a6f minor memory leak possible on source shutdown
svn path=/icecast/trunk/icecast/; revision=10021
2005-09-16 21:29:49 +00:00
oddsock
76689d72e8 Now you can start icecast as a windows service.
svn path=/icecast/trunk/icecast/; revision=10020
2005-09-16 18:29:10 +00:00
Karl Heyes
c66246b255 fix for race, client needs setup before adding to pending tree
svn path=/icecast/trunk/icecast/; revision=10019
2005-09-16 16:53:33 +00:00
Karl Heyes
c16926625f reduce stack allocation to 512k, the defaults tend to be quite large
svn path=/icecast/trunk/thread/; revision=10018
2005-09-15 22:33:13 +00:00
Michael Smith
9a78c1b735 Fix deadlock when moving clients. Thanks to oddsock for producing a testcase and
backtrace, and karl for fixing my brain

svn path=/icecast/trunk/icecast/; revision=10017
2005-09-15 19:31:38 +00:00
Karl Heyes
477d44dd79 log username to access log (bug #706) if available.
svn path=/icecast/trunk/icecast/; revision=10012
2005-09-12 16:47:04 +00:00
Karl Heyes
7838940f0b fix segv case on listmounts/moveclients when a fallback to file stream is running
svn path=/icecast/trunk/icecast/; revision=10009
2005-09-12 16:00:27 +00:00
Michael Smith
6d108c6aad Patch from martin@matuska.org: don't treat all clients as duplicates.
svn path=/icecast/trunk/icecast/; revision=10008
2005-09-10 16:56:04 +00:00
Karl Heyes
64d2fc1faa if the m3u link is placed in winamp/fb2k, then the host header misses the
port number, so I'll add a check that ignores the host header if it's
missing a port and generates the m3u host:port from the xml.

svn path=/icecast/trunk/icecast/; revision=10005
2005-09-08 13:43:33 +00:00
Karl Heyes
7cad0b70d6 do proper cleanup on odd cases of source client startup, also take mutex
lock for client_create at relay startup to prevent race

svn path=/icecast/trunk/icecast/; revision=10004
2005-09-08 13:32:17 +00:00
Karl Heyes
32691f498a immediately release auth_t if authentication fails, that way we don't
trigger release_client like listener_remove event in the url auth.
Add lock in auth_t so that refcount changes are not a race possibility.

svn path=/icecast/trunk/icecast/; revision=9926
2005-09-01 16:11:07 +00:00
Karl Heyes
0903dd68ed 2 updates to mp3 metadata handling. allow a 0 metadata interval to disable
metadata being sent to new listeners (negative for whatever the source
sends), existing listeners retain their original interval setting.  We now
limit how much mp3 is written after the metadata block in a single format
send call, this was only showing up on small interval values.

svn path=/icecast/trunk/icecast/; revision=9877
2005-08-31 01:28:04 +00:00
Karl Heyes
05e9562ae4 content was wrong due to limiter being 0
svn path=/icecast/trunk/icecast/; revision=9876
2005-08-31 01:13:25 +00:00
Michael Smith
0c6ba0c798 Fix bug reported by Jason@weatherserver.net - don't crash in htpasswd auth
if the auth file doesn't exist.

svn path=/icecast/trunk/icecast/; revision=9867
2005-08-30 20:29:20 +00:00
Karl Heyes
3116f62a9d extra checks on YP updating, typically on changes over HUP
svn path=/icecast/trunk/icecast/; revision=9862
2005-08-30 00:30:30 +00:00
Karl Heyes
1d5c1ebdd6 fix double free bug with failed to start relays and add a guard on refbuf release
svn path=/icecast/trunk/icecast/; revision=9859
2005-08-29 01:16:02 +00:00