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

747 Commits

Author SHA1 Message Date
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
Karl Heyes
a4b03ad26c minor memory leak, and compiler warning cleanup
svn path=/icecast/trunk/icecast/; revision=9857
2005-08-27 01:01:29 +00:00
Karl Heyes
76b8ec882f hide fallback file from webroot stats, still accessible from admin. Missed
log debug line from apply function

svn path=/icecast/trunk/icecast/; revision=9848
2005-08-25 01:03:33 +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
c519afa812 add per-mount listener time limit setting
svn path=/icecast/trunk/icecast/; revision=9834
2005-08-23 19:00:15 +00:00
Karl Heyes
82e12b4d96 Allow for new listeners to fallback if there are max listeners on the
current mountpoint

svn path=/icecast/trunk/icecast/; revision=9833
2005-08-23 18:40:20 +00:00
Michael Smith
663bd804dc Some versions of gcc complain about the missing cast here; it's apparently
needed because some systems don't define NULL as a pointer (weird). Patch
from Moritz Grimm.


svn path=/icecast/trunk/icecast/; revision=9832
2005-08-23 10:48:09 +00:00
oddsock
37bdaee0cb some windows build issues..
svn path=/icecast/trunk/icecast/; revision=9776
2005-08-20 00:03:21 +00:00
Karl Heyes
400d297a92 merge fix, oddcast (maybe other shoutcast source clients) don't wait for OK
response, so we may have surplus data already read, so keep it.

svn path=/icecast/trunk/icecast/; revision=9772
2005-08-18 20:37:35 +00:00
Karl Heyes
98d569bbf5 missed a diff from previous commit, consistent naming style
svn path=/icecast/trunk/icecast/; revision=9771
2005-08-18 20:26:30 +00:00
Karl Heyes
1aa657f1b4 changes applied from feedback. make option names and action settings more
consistent.  Add changes to docs for listener auth via url

svn path=/icecast/trunk/icecast/; revision=9768
2005-08-17 16:38:46 +00:00
Karl Heyes
77ad26f39b updates for #599 (dropping of stdin,out,err when using -b) and #630 (pidfile
created before changeowner/chroot)

svn path=/icecast/trunk/icecast/; revision=9759
2005-08-16 21:14:43 +00:00
Karl Heyes
092c73b4a5 log xml/xslt parsing failure messages via error log. This applies to both the
xsl files and the icecast xml file when re-read. At icecast startup, the logs
are not open so these parsing messages still go to stderr.

svn path=/icecast/trunk/icecast/; revision=9758
2005-08-16 16:56:24 +00:00
Karl Heyes
ab8e36bd19 increase the number of listening sockets allowed. A more flexible scheme can
be done later if required

svn path=/icecast/trunk/icecast/; revision=9757
2005-08-16 14:58:33 +00:00
Karl Heyes
9179ffe661 make admin replies go via fserve
svn path=/icecast/trunk/icecast/; revision=9741
2005-08-12 20:02:16 +00:00
Karl Heyes
dde143d4b1 make various responses going back to the client be done via the file serving thread
svn path=/icecast/trunk/icecast/; revision=9740
2005-08-12 15:27:32 +00:00
Karl Heyes
61267a308b make sure that older xslt libs on non-win32 can be used as well
svn path=/icecast/trunk/icecast/; revision=9739
2005-08-12 03:27:09 +00:00
Karl Heyes
a528108e10 merge in client timelimit, only auth_url sets this currently. Add missing
prototypes for compile warning

svn path=/icecast/trunk/icecast/; revision=9736
2005-08-12 02:40:25 +00:00
oddsock
5d642efd86 compiler error on win32
svn path=/icecast/trunk/icecast/; revision=9734
2005-08-11 23:48:32 +00:00
Karl Heyes
d7f1285ba2 drop the thread pool of connection threads, they were using a blocking socket
on incoming connections. Now we get the accept thread to create a client_t
and mark it as a shoutcast client if need be.  Then use a single connection
thread to poll the non-blocking sockets for the headers. When complete they
get handled as usual.

svn path=/icecast/trunk/icecast/; revision=9733
2005-08-11 23:29:58 +00:00
oddsock
30ce5c5ba9 memory leak fix..
svn path=/icecast/trunk/icecast/; revision=9732
2005-08-11 23:17:00 +00:00
Karl Heyes
03c74becbe change the option names to be more reasonable
svn path=/icecast/trunk/icecast/; revision=9731
2005-08-11 23:11:50 +00:00
Karl Heyes
5732ec21ea a few fixes needed after some testing on win32
svn path=/icecast/trunk/icecast/; revision=9730
2005-08-11 22:56:51 +00:00
oddsock
afae729cbb xlst function so that win32 can use an older version of libxslt...
svn path=/icecast/trunk/icecast/; revision=9729
2005-08-11 20:31:13 +00:00
Karl Heyes
af9bc6bfb8 make sure we have the initial listeners stat
svn path=/icecast/trunk/icecast/; revision=9721
2005-08-09 02:55:38 +00:00
Karl Heyes
0f6d8ba821 merge fixes. NULL checks
svn path=/icecast/trunk/icecast/; revision=9720
2005-08-09 02:14:20 +00:00
Karl Heyes
042ba3b8e2 Merge mp3 packing. mp3 (and other pass-through streams) can bre received in
very small blocks and go out in those same small blocks increasing the protocol
overhead used by the provided. Generally occurs when using a low bitrate stream
and many listeners.  With this patch we pack out a refbuf before queuing.
Add missing include for vorbis build that shows on some platforms

svn path=/icecast/trunk/icecast/; revision=9718
2005-08-08 19:21:54 +00:00
Karl Heyes
c7e04b2852 allow for webroot requests to be sent via an authenticator
svn path=/icecast/trunk/icecast/; revision=9717
2005-08-08 18:39:34 +00:00
Karl Heyes
eebb340a1a merge URL listener auth
svn path=/icecast/trunk/icecast/; revision=9714
2005-08-07 23:29:12 +00:00
Karl Heyes
15b3a5f853 Initial auth merge. Add an auth thread (multiple threads can be done later)
which can be used to handle authentication mechanisms without taking locks
for long periods.  Non-authenticated mountpoints bypass the auth thread.

The lookup/checking of the source_t is done after the authentication succeeds
so the fallback mechanism does not affect which authenticator is used. This
can be extended to allow us to authenticate in webroot as well. XML re-read
changes will take effect immediately for new listeners but existing listeners
will use the original auth_t (refcounted) when they exit.

htpasswd access has been seperated out from auth.c, and implements an AVL
tree for a faster username lookup.  The htpasswd file timestamp is checked
just in case there are changes made externally

svn path=/icecast/trunk/icecast/; revision=9713
2005-08-07 23:01:04 +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
e2e35fe59d force a large filesize limit on log files before cycling
svn path=/icecast/trunk/log/; revision=9706
2005-08-06 13:10:30 +00:00
oddsock
3e4967b8f9 implement.h, a pthreads include file, is no longer required for win32.
svn path=/icecast/trunk/thread/; revision=9635
2005-07-28 21:10:29 +00:00
Michael Smith
65cfce7b53 Fix for bug #688 as supplied by moinakg2002@yahoo.com; make icecast
compilable with Sun's compiler

svn path=/icecast/trunk/icecast/; revision=9626
2005-07-26 13:15:22 +00:00
Karl Heyes
6ccda03842 some xslt related fixes. A small memory leak, a socket not closing on odd
case, and truncate the buffer length so that junk chars are not sent back.

svn path=/icecast/trunk/icecast/; revision=9547
2005-07-04 20:11:15 +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
2ecaecbf7f missed from previous merge, some random chars at end of xml output
svn path=/icecast/trunk/icecast/; revision=9512
2005-06-25 12:27:10 +00:00
Karl Heyes
53650e969f allow touch frequency setting to be changed on any YP response. Also pass
user agent to YP server

svn path=/icecast/trunk/icecast/; revision=9488
2005-06-19 13:50:39 +00:00
Karl Heyes
e9adc91bee make admin and web root pages use file serving thread to send back responses
svn path=/icecast/trunk/icecast/; revision=9464
2005-06-18 10:54:53 +00:00
Karl Heyes
4f4e7be98f push HTTP header writing for file download into file serving thread to prevent
stalls in connection thread.  perform most file checking in fserve but allow
for m3u file override and using the Host header if available.

svn path=/icecast/trunk/icecast/; revision=9462
2005-06-17 22:55:59 +00:00
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
Michael Smith
1c28b0cce1 Correct a typo in one message, and change "WARNING" to "ERROR" in another,
since it's a fatal error.


svn path=/icecast/trunk/icecast/; revision=7983
2004-10-12 04:49:56 +00:00
Karl Heyes
75bb8ea0ce merged from kh branch, allow for handling the vsnprintf return code better
on older systems.

svn path=/icecast/trunk/net/; revision=7917
2004-10-06 14:07:55 +00:00
Michael Smith
b6e001ce8d When creating a source (in source_reserve), issue a warning if the mountpoint
does not start with a /, since clients will then be unable to connect to it

svn path=/icecast/trunk/icecast/; revision=7899
2004-10-01 00:42:19 +00:00
Karl Heyes
afde2e509c the YP code could end up maintaining duplicate entries if the source
reconnect delay is very short.

svn path=/icecast/trunk/icecast/; revision=7761
2004-09-15 14:21:04 +00:00
Karl Heyes
079c759e6d passed pointer could be NULL
svn path=/icecast/trunk/icecast/; revision=7615
2004-08-23 19:01:18 +00:00
Karl Heyes
1fe2325479 add optional tags to example xml and remove unused source_t item
svn path=/icecast/trunk/icecast/; revision=7607
2004-08-22 15:00:35 +00:00
Karl Heyes
ac73dff07a Add a couple of warnings, YP code not built and failed streamlist
from master server

svn path=/icecast/trunk/icecast/; revision=7599
2004-08-21 12:56:24 +00:00
Karl Heyes
2a991af1a6 unlikely to occur race, but fix it anyway
svn path=/icecast/trunk/icecast/; revision=7597
2004-08-20 22:59:09 +00:00
Karl Heyes
69af6210c0 small memory leak, only happened when a source exited
svn path=/icecast/trunk/icecast/; revision=7596
2004-08-20 22:55:27 +00:00
Karl Heyes
15016583ab make caller of restart_logging pass the config, don't assume it's locked
svn path=/icecast/trunk/icecast/; revision=7595
2004-08-20 21:40:44 +00:00
Karl Heyes
9c44a7d184 merged singleq branch 7177:7591
svn path=/icecast/trunk/icecast/; revision=7592
2004-08-20 15:13:59 +00:00
Michael Smith
490e64663c -b was broken. Fix it.
svn path=/icecast/trunk/icecast/; revision=7509
2004-08-10 05:17:56 +00:00
Karl Heyes
ebebad5e74 add extra boundary checks when splitting headers
svn path=/icecast/trunk/httpp/; revision=7507
2004-08-10 00:03:14 +00:00
Karl Heyes
dac2723dbe encode any xml entities in the stats before applying them to the
xsl pages

svn path=/icecast/trunk/icecast/; revision=7494
2004-08-07 02:33:12 +00:00
oddsock
ebecd7cb0a fix m3u generation logic that was not working for static files
svn path=/icecast/trunk/icecast/; revision=7439
2004-07-31 22:25:07 +00:00
Karl Heyes
62bff456c2 make sure sock_connected does not block with timeout 0, use -1
for that, also handle the sock_connected return values properly
in the case of timeout.

svn path=/icecast/trunk/net/; revision=7349
2004-07-26 16:03:52 +00:00
Michael Smith
bef7e4e022 Make it even more explicit what went wrong when log opening failed, since many
people don't seem to be able to figure it out.


svn path=/icecast/trunk/icecast/; revision=7265
2004-07-23 02:49:33 +00:00
oddsock
a4a8186681 forgot to switch the default value too..thanks Brendan..
svn path=/icecast/trunk/icecast/; revision=7257
2004-07-22 18:34:28 +00:00
Karl Heyes
94d24f406e cleanup patch, push per client write error trap lower down
svn path=/icecast/trunk/icecast/; revision=7165
2004-07-16 15:47:12 +00:00
brendan
8d52fab499 Add source comment to previous metadata bug fix: [sic]
svn path=/icecast/trunk/icecast/; revision=7100
2004-07-12 02:21:18 +00:00
brendan
54c90a90fe Migrate .cvsignore to svn:ignore
svn path=/icecast/trunk/log/; revision=7091
2004-07-11 16:51:34 +00:00
brendan
16e1815f14 Migrate .cvsignore to svn:ignore
svn path=/icecast/trunk/icecast/; revision=7090
2004-07-11 16:50:28 +00:00
brendan
085f8d61aa The inline metadata text was losing the final character when the string length was a
multiple of 16.

svn path=/icecast/trunk/icecast/; revision=7089
2004-07-11 16:46:02 +00:00
brendan
b235f57273 Move .cvsignore into svn:ignore
svn path=/icecast/trunk/avl/; revision=7021
2004-07-06 19:22:26 +00:00
Karl Heyes
a99d5ef19b minor build fix
svn path=/icecast/trunk/httpp/; revision=6874
2004-06-25 19:39:12 +00:00
Karl Heyes
813d54bee1 wait 5 mins on failed YP request, also log a default
message if no error message is sent back

svn path=/icecast/trunk/icecast/; revision=6862
2004-06-25 18:25:10 +00:00
giles
d6d634ac02 Recommit of changes lost in the server migration
Original commit (r6810) 2004-06-04 03:15:36 -0400 (Fri, 04 Jun 2004) by msmith.

Fix #526. Fallbacks weren't being found when the primary was disconnected (for
newly-connecting clients).

svn path=/icecast/trunk/icecast/; revision=6810
2004-06-06 03:08:19 +00:00