Karl Heyes
7446328d1d
store the original full uri if there are query parameters. small cleanup to
...
prototype definitions
svn path=/icecast/trunk/httpp/; revision=9453
2005-06-15 02:32:26 +00:00
Karl Heyes
88bfe6ba6a
small cleanups. redundant mutex removed, updates to log messages
...
svn path=/icecast/trunk/icecast/; revision=9443
2005-06-12 18:43:11 +00:00
Karl Heyes
c59a276ab5
update file serving setup and processing. Do http header writing in fserve
...
thread by using generic write routine. small leak plugged on failure case.
extend mime type handling slightly for rare case
svn path=/icecast/trunk/icecast/; revision=9440
2005-06-11 17:21:00 +00:00
Karl Heyes
29c83ae4eb
update a few stats
...
svn path=/icecast/trunk/icecast/; revision=9437
2005-06-11 01:24:58 +00:00
Karl Heyes
554649cf01
this is needed for linuxthreads, without it, zombie processes are left
...
when on-[dis]connect is used
svn path=/icecast/trunk/icecast/; revision=9435
2005-06-10 18:01:53 +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
05a14555d9
merge per-mount on-[dis]connect script handling
...
svn path=/icecast/trunk/icecast/; revision=9424
2005-06-10 00:37:09 +00:00
Karl Heyes
84a0892cff
add a few more informational stats
...
svn path=/icecast/trunk/icecast/; revision=9423
2005-06-09 20:54:08 +00:00
Karl Heyes
52787eeeaa
increase default max queue size, 100k isn't much and we do reduce it when
...
there are no lagging clients
svn path=/icecast/trunk/icecast/; revision=9420
2005-06-09 15:32:19 +00:00
Karl Heyes
39c5021b7c
don't be too quick when dealing with files. allow the limited per-client
...
loop but don't trigger a small poll timeout
svn path=/icecast/trunk/icecast/; revision=9418
2005-06-09 13:29:11 +00:00
Karl Heyes
d4abe04f9f
send StreamTitle in metadata when reading from intro file
...
svn path=/icecast/trunk/icecast/; revision=9417
2005-06-09 13:05:02 +00:00
oddsock
e84ce44d6c
gotta love windows.. _snprintf is *much* more readable than snprintf (not)...
...
also, some updates to the VC project files
svn path=/icecast/trunk/icecast/; revision=9410
2005-06-09 04:05:28 +00:00
Karl Heyes
fd19feb3c5
using .filename causes problems with absolute paths for the temp file, also
...
test to see if file exists already
svn path=/icecast/trunk/icecast/; revision=9407
2005-06-09 02:21:03 +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
b8f6429198
send StreamTitle in the initial metadata block, if not real/helix has
...
trouble with playback
svn path=/icecast/trunk/icecast/; revision=9376
2005-06-06 15:39:26 +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
f1d39a8788
send response header to stats client
...
svn path=/icecast/trunk/icecast/; revision=9330
2005-05-31 02:40:23 +00:00
Karl Heyes
79adab0133
allow for more updating over HUP. Made the YP engine only read the stats instead
...
of updating them, so source header parsing is done in the apply mount. Per-mount
stream settings also allow for overriding the incoming settings.
svn path=/icecast/trunk/icecast/; revision=9325
2005-05-30 14:50:57 +00:00
Karl Heyes
d57a19acac
various small things. type cleanups, loop over the burst point to make sure
...
it is at the right point. kick off the YP 'add' 5 seconds after source startup
so that any stats are processed.
svn path=/icecast/trunk/icecast/; revision=9314
2005-05-26 03:04:48 +00:00
Karl Heyes
dc0d4e15fd
fix win32 access.log entries, the rest is just cosmetic
...
svn path=/icecast/trunk/icecast/; revision=9307
2005-05-25 01:43:33 +00:00
Karl Heyes
5b9e7f1660
use minimal stats for inactive mountpoints that have an active fallback.
...
svn path=/icecast/trunk/icecast/; revision=9286
2005-05-16 00:16:12 +00:00
Karl Heyes
018fff1158
Allow for username to be stated for master/slave setups, we still default
...
to 'relay' though
svn path=/icecast/trunk/icecast/; revision=9274
2005-05-13 00:35:08 +00:00
Karl Heyes
a922caa7f4
removed redundant function, add total files requested to stats
...
svn path=/icecast/trunk/icecast/; revision=9247
2005-05-10 00:28:37 +00:00
Karl Heyes
99a9e4e3a9
missed header for dist tarball
...
svn path=/icecast/trunk/icecast/; revision=9242
2005-05-08 14:27:12 +00:00
Karl Heyes
7fadd89273
use a client function to read an incoming stream, simplifies handling within
...
the format specific files. Also add total read/sent stats per mountpoint.
Updates the stats every 5 secs currently
svn path=/icecast/trunk/icecast/; revision=9241
2005-05-08 13:51:05 +00:00
Karl Heyes
e2d6bdb86a
add function to do mount list search (could be extended later), call it from
...
various places including the shoutcast source client auth which previously
only used the global source password.
svn path=/icecast/trunk/icecast/; revision=9240
2005-05-08 11:54:46 +00:00
Karl Heyes
6d48d6c4f9
Allow for specifiying a per-mount metadata interval for shoutcast style streams
...
svn path=/icecast/trunk/icecast/; revision=9233
2005-05-07 20:18:13 +00:00
Karl Heyes
22aa8719e2
allow for changes in relay settings to trigger a relay restart
...
svn path=/icecast/trunk/icecast/; revision=9226
2005-05-07 11:50:07 +00:00
Karl Heyes
b1dcee52a8
Add more Ogg codec handlers, there has not been that much testing on these
...
mainly due to client support, but they are only for detection and plug
straight into the ogg handler.
The win32 project files will need updating to take the new files into account
svn path=/icecast/trunk/icecast/; revision=9225
2005-05-07 11:01:35 +00:00
Karl Heyes
2a2938b68b
merge from branch. push clients count handling to the client_create/_destroy
...
functions. call client_create in the general handler and pass client_t to the
specific handler including the stats request handler, which now logs in the
access log.
svn path=/icecast/trunk/icecast/; revision=9220
2005-05-06 15:57:15 +00:00
Karl Heyes
acc79b778f
from branch. make streamlist.txt from the mount list, so that fallback handling
...
can be taken into account. If we just use the source tree then entries can
disappear causing a relay to shutdown in the slave.
svn path=/icecast/trunk/icecast/; revision=9213
2005-05-05 20:05:15 +00:00
Karl Heyes
8e99b390f2
safety check, avoid the case of a cyclic cascading fallback
...
svn path=/icecast/trunk/icecast/; revision=9196
2005-05-01 02:30:06 +00:00
Karl Heyes
9253bf7248
merge from branch, stats client details are not being removed when they exit
...
svn path=/icecast/trunk/icecast/; revision=9195
2005-05-01 02:04:11 +00:00
Karl Heyes
acd1b8ad96
merge from branch, make the config lock a rwlock instead of mutex
...
svn path=/icecast/trunk/icecast/; revision=9160
2005-04-20 22:34:54 +00:00
Karl Heyes
19cb11cc31
merge in a few fixes and cleanups I've accumulated in my branch.
...
svn path=/icecast/trunk/icecast/; revision=9152
2005-04-18 14:32:26 +00:00
Karl Heyes
f502efd2f5
simple sanity check
...
svn path=/icecast/trunk/httpp/; revision=9126
2005-04-08 03:48:08 +00:00
Michael Smith
f28ded9fbb
A bug report indirectly suggested the base64 decode code was confusing (as the
...
treatment of padding was un-obvious), so added a comment explaining it.
svn path=/icecast/trunk/icecast/; revision=9075
2005-03-14 23:41:11 +00:00
Michael Smith
d43484d49a
Fix various places where "clients" stats value was decremented without having
...
previously been incremented.
svn path=/icecast/trunk/icecast/; revision=9074
2005-03-14 23:07:34 +00:00
Michael Smith
af3d1f716b
Remove references to -h option, which doesn't exist, and which users could only
...
ever find out about by running a command that did what -h claimed to do.
svn path=/icecast/trunk/icecast/; revision=8976
2005-02-24 00:39:08 +00:00
brendan
82a9fa3bc7
Whoops, don't spin if ufds is null.
...
svn path=/icecast/trunk/icecast/; revision=8959
2005-02-19 22:44:09 +00:00
brendan
00749e6a68
The poll version of fserve_client_waiting causes icecast to die with an
...
assertion when it first starts up on OS X, because ufds starts out NULL.
I'd been using the select version until now and never noticed.
svn path=/icecast/trunk/icecast/; revision=8956
2005-02-19 20:56:04 +00:00
Michael Smith
bada4b1c41
Make a debug message into a warning message, so it'll be logged more often
...
(since it's useful), and make it print out the file that it failed to find,
so that users can figure out what to do.
svn path=/icecast/trunk/icecast/; revision=8934
2005-02-16 00:54:55 +00:00
Michael Smith
533dfb6b0f
Fix spelling in debug messages.
...
svn path=/icecast/trunk/icecast/; revision=8774
2005-01-21 06:44:21 +00:00
Karl Heyes
df919a9691
only unlock when we have finished with the stylesheet, potential race otherwise
...
svn path=/icecast/trunk/icecast/; revision=8723
2005-01-11 16:36:34 +00:00
Karl Heyes
6c4c02d482
small fixes
...
svn path=/icecast/trunk/icecast/; revision=8596
2005-01-03 17:48:54 +00:00
oddsock
c0a79970f9
remove depricated include file
...
svn path=/icecast/trunk/icecast/; revision=8510
2004-12-21 19:23:35 +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
e59095b11a
make vorbis specific stat names consistent with the existing ones, and make
...
sure if unknown ogg codecs are sent then it is logged
svn path=/icecast/trunk/icecast/; revision=8480
2004-12-17 21:05:20 +00:00
Karl Heyes
a2c849ed7c
make recent YP updates follow agreed spec
...
svn path=/icecast/trunk/icecast/; revision=8479
2004-12-17 20:03:26 +00:00
oddsock
ad39d9a450
removed unneeded variable
...
svn path=/icecast/trunk/icecast/; revision=8369
2004-12-10 23:24:08 +00:00
Karl Heyes
66568ed242
fix minor memory leak
...
svn path=/icecast/trunk/icecast/; revision=8364
2004-12-10 17:27:06 +00:00
Karl Heyes
d077dc4b28
add subtype to yp add phase, this is to identify the codecs in use
...
svn path=/icecast/trunk/icecast/; revision=8360
2004-12-10 00:11:16 +00:00
Karl Heyes
4066a89c01
allow a relay to provide user/pass when connecting
...
svn path=/icecast/trunk/icecast/; revision=8358
2004-12-09 17:08:52 +00:00
j
1e839f83ea
- add video_quality
...
- update status.xsl with new info about theora streams
svn path=/icecast/trunk/icecast/; revision=8355
2004-12-08 20:13:17 +00:00
Karl Heyes
92e2c8f81c
added theora stats
...
svn path=/icecast/trunk/icecast/; revision=8354
2004-12-08 19:31:33 +00:00
Karl Heyes
9fd0b2974f
I should fix the leak properly :)
...
svn path=/icecast/trunk/icecast/; revision=8349
2004-12-08 02:36:03 +00:00
Karl Heyes
d124e7ca32
duplicate unlock left in
...
svn path=/icecast/trunk/icecast/; revision=8348
2004-12-08 02:30:01 +00:00
Karl Heyes
ee1c27509c
provide max_listeners to YP, yp touch fixup and minor memory leak fixed
...
svn path=/icecast/trunk/icecast/; revision=8347
2004-12-08 02:28:07 +00:00
oddsock
f09ae872d6
removal of old and unused code
...
add '+' to those fields that are url decoded.
svn path=/icecast/trunk/httpp/; revision=8346
2004-12-07 22:42:50 +00:00
oddsock
b3d5a657d2
add a new web admin feature which allows the updating of metadata (now that we support metadata updates for most stream types). This is an new admin feature.
...
add cluster-password to the config to allow for future clustering of relays on the xiph stream directory.
svn path=/icecast/trunk/icecast/; revision=8345
2004-12-07 22:29:46 +00:00
oddsock
eb9e11b0c6
win32 compile
...
svn path=/icecast/trunk/icecast/; revision=8342
2004-12-07 21:47:28 +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
a521d15d74
merge per-mount hidden setting. prevent specific mountpoints being listed
...
on status.xsl and streamlist
svn path=/icecast/trunk/icecast/; revision=8245
2004-11-22 18:21:48 +00:00
Karl Heyes
2b4ee737db
add per-mount no-yp tag handling
...
svn path=/icecast/trunk/icecast/; revision=8241
2004-11-21 15:51:49 +00:00
Karl Heyes
c7432d6602
minor cleanups
...
svn path=/icecast/trunk/icecast/; revision=8236
2004-11-20 02:16:59 +00:00
Karl Heyes
7dfcbf560c
skip the listing of the source mountpoint when moveclients is requested
...
without a destination
svn path=/icecast/trunk/icecast/; revision=8235
2004-11-19 23:04:27 +00:00
Karl Heyes
889e260490
allow for shoutcast metadata updates to auth with admin/per-mount/global
...
source password
svn path=/icecast/trunk/icecast/; revision=8232
2004-11-19 15:05:36 +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
Karl Heyes
524d467a25
missing test from a previous patch, the running check needs to apply as well
...
svn path=/icecast/trunk/icecast/; revision=8223
2004-11-18 19:47:39 +00:00
Karl Heyes
b2b2850708
prevent updated metadata being passed to listeners when the text hasn't
...
actually changed
svn path=/icecast/trunk/icecast/; revision=8214
2004-11-17 20:35:35 +00:00
Karl Heyes
1e6232c531
add <shoutcast-mount>. drop the hardcoded mountpoint hacks for NSV
...
svn path=/icecast/trunk/icecast/; revision=8213
2004-11-17 16:02:04 +00:00
Karl Heyes
14f88b3267
pass the fserve_t not the client_t
...
svn path=/icecast/trunk/icecast/; revision=8212
2004-11-17 14:12:39 +00:00
oddsock
241dd76291
need to fail properly
...
svn path=/icecast/trunk/icecast/; revision=8206
2004-11-16 04:27:00 +00:00
oddsock
083f5c0cd1
this patch adds a playlist log to icecast. This can be used to maintain an audit trail of metadata that comes through icecast. The format of the log file may be changed in the future as we decide on a good format.
...
svn path=/icecast/trunk/icecast/; revision=8205
2004-11-16 04:04:02 +00:00
oddsock
d7a30dc0cf
darn ansi C.....
...
svn path=/icecast/trunk/icecast/; revision=8202
2004-11-15 15:55:43 +00:00
oddsock
acbef39c57
a few fixes from karl...
...
svn path=/icecast/trunk/icecast/; revision=8201
2004-11-15 15:50:59 +00:00
oddsock
726e8fc099
should be a long long, instead of a long
...
svn path=/icecast/trunk/icecast/; revision=8200
2004-11-15 03:53:16 +00:00
oddsock
fa56e5b64d
much better support for the Range request header, which means that seeking actually *works* now for file serving.
...
svn path=/icecast/trunk/icecast/; revision=8199
2004-11-15 03:50:42 +00:00
Michael Smith
5850a9b3c3
Use 64 bit content-length for fileserving (if supported by system)
...
svn path=/icecast/trunk/icecast/; revision=8196
2004-11-11 22:36:03 +00:00
oddsock
4e20c79edf
add Content-Length to files served via the fserve to enable seeking
...
svn path=/icecast/trunk/icecast/; revision=8192
2004-11-11 16:21:01 +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
oddsock
a01317753d
added a content-length for flash-based players. This will allow for them to stream mp3 from icecast.
...
svn path=/icecast/trunk/icecast/; revision=8160
2004-11-04 15:55:13 +00:00
Karl Heyes
89bffcd104
add fallback mime type for css
...
svn path=/icecast/trunk/icecast/; revision=8154
2004-11-01 23:41:58 +00:00
oddsock
6127fea475
* fix bug of not using url decoding value when processing audio_info string
...
* we now process server name and description if we are not a public stream
* Added quality to status.xsl
svn path=/icecast/trunk/icecast/; revision=8131
2004-10-29 15:31:56 +00:00
Karl Heyes
17c178555f
correct type for volatile usage and uncomment log message for stats updating
...
svn path=/icecast/trunk/icecast/; revision=8123
2004-10-27 14:13:29 +00:00
oddsock
f86d02bb58
add volatile keywords to a few variables
...
reset max_interval back to 0 on slave initialization
svn path=/icecast/trunk/icecast/; revision=8112
2004-10-27 03:29:56 +00:00
Karl Heyes
9652319c38
An alias could disappear from under us, so copy the string
...
svn path=/icecast/trunk/icecast/; revision=8108
2004-10-26 19:29:12 +00:00
Karl Heyes
7eed9c793b
small updates. reject source client with invalid mountpoint, avoid aliasing
...
issues with queue and id, and change handler to avoid leaving clients on the
connection queue (rare)
svn path=/icecast/trunk/icecast/; revision=8107
2004-10-26 16:31:16 +00:00
Karl Heyes
3026e1d089
small cleanups. fix buffer sizing, const and unused struct member
...
svn path=/icecast/trunk/icecast/; revision=8104
2004-10-26 14:21:36 +00:00
Karl Heyes
bc9ab55cbb
avoid aliasing issues, and make sure each server can take a seperate
...
default interval as defined in the xml
svn path=/icecast/trunk/icecast/; revision=8101
2004-10-25 21:10:10 +00:00
Karl Heyes
82c116a72d
the check for the public stream flag wasn't working correctly in all cases
...
svn path=/icecast/trunk/icecast/; revision=8100
2004-10-25 20:46:12 +00:00
Karl Heyes
8aaf433aa4
add check for header when relaying from v2.0
...
svn path=/icecast/trunk/icecast/; revision=8098
2004-10-25 18:51:45 +00:00
oddsock
a52caeb2b0
fix line endings...
...
svn path=/icecast/trunk/icecast/; revision=8096
2004-10-25 15:51:50 +00:00
Karl Heyes
000a33b9cb
a couple of potential bad pointer type problems
...
svn path=/icecast/trunk/icecast/; revision=8095
2004-10-25 15:42:04 +00:00
oddsock
b8f3963aad
Fix CLF on win32. Apparently, windows doesn't support the %z flag of strftime() so we need to roll our own...Buzilla Bug #509
...
svn path=/icecast/trunk/icecast/; revision=8091
2004-10-25 14:43:07 +00:00
Karl Heyes
7b9b8e70a3
The _inc/_dec routines can race causing incorrect values as they don't account
...
for unprocessed stat events. Here I push the actual calculations to the stats
thread. The API is maintained however all stats for a specific source can be
dropped with one call now.
svn path=/icecast/trunk/icecast/; revision=8090
2004-10-25 14:03:42 +00:00
Karl Heyes
80561957f0
fix a busy CPU case when slow and fast file serving clients are connected at
...
the same time. Flag clients on return from select/poll and only process those.
Also fix a rare race which could leave clients in pending
svn path=/icecast/trunk/icecast/; revision=8070
2004-10-24 00:34:15 +00:00
Karl Heyes
17537d2457
When starting relay threads, have the relay thread do the connection not the
...
slave thread. Also improve cleanup handling and log messages as well
svn path=/icecast/trunk/icecast/; revision=8068
2004-10-23 00:44:29 +00:00