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

406 Commits

Author SHA1 Message Date
oddsock
dd6af7e848 - force touches when vorbis metadata changes
svn path=/trunk/icecast/; revision=5008
2003-06-26 13:31:38 +00:00
oddsock
428c1f1f36 - force touches when mp3 metadata is updated via admin interface
svn path=/trunk/icecast/; revision=5007
2003-06-26 13:31:17 +00:00
Karl Heyes
f2e1bc2419 handle error returned from listening sockets, can cause busy looping
svn path=/trunk/icecast/; revision=4986
2003-06-20 18:50:24 +00:00
Karl Heyes
ea2dc4a67f ermmm, let's use the right operator.
svn path=/trunk/httpp/; revision=4963
2003-06-18 15:52:25 +00:00
Karl Heyes
032ad5d9ff minor cleanup, removes compiler warning, makes it static, and doesn't
re-evaluate string length each time.

svn path=/trunk/httpp/; revision=4961
2003-06-18 11:13:11 +00:00
Karl Heyes
a4d20515f1 remove file descriptor leak when IPv6 is being used.
svn path=/trunk/net/; revision=4960
2003-06-18 11:05:49 +00:00
brendan
e49e587c01 gcc 3.3 warns: dereferencing type-punned pointer will break strict-aliasing rules
svn path=/trunk/httpp/; revision=4906
2003-06-09 22:30:09 +00:00
Karl Heyes
b41664426c Lets put this in the right place.
svn path=/trunk/net/; revision=4889
2003-06-06 11:19:50 +00:00
Karl Heyes
b4cdad000d Another net change, making it more bullet-proof, before could silently miss
data. so now we allocate enough space for the write to succeed fully.

svn path=/trunk/icecast/; revision=4888
2003-06-06 00:05:19 +00:00
brendan
57f344b1e3 whoops
svn path=/trunk/net/; revision=4887
2003-06-05 19:18:00 +00:00
brendan
7fce0b586b Karl's sys/select.h patch for fbsd. It must be under another std include on
OS X for some reason.

svn path=/trunk/net/; revision=4886
2003-06-05 19:02:36 +00:00
brendan
6431c0c6a9 Karl's patch for freebsd, minus the sys/select.h test which breaks on OS X.
Also enables IPV6 in libshout!

svn path=/trunk/httpp/; revision=4884
2003-06-05 17:09:12 +00:00
oddsock
a8d602fe33 fixed check for regular file type in win32-specific code
svn path=/trunk/icecast/; revision=4879
2003-06-05 04:15:58 +00:00
brendan
47cef92fcc Karl's patch for a namespace collision he reports on some BSD systems.
svn path=/trunk/net/; revision=4861
2003-06-03 18:29:23 +00:00
Michael Smith
9e8e9a5024 Fix some function comments, sock_write_string() and sock_write may NOT be
called with a non-blocking socket

svn path=/trunk/net/; revision=4845
2003-05-29 12:18:04 +00:00
brendan
494f8fc2b6 Fix curl version test.
YP is enabled by default but automatically turned off if the curl test fails
(unless --enable-yp is explicitly passed to configure, in which case configure
will fail if the curl test fails).

svn path=/trunk/icecast/; revision=4831
2003-05-28 15:04:53 +00:00
Michael Smith
018d0a2700 Fix lots of warnings in new admin stuff - primarily wrong types in printf
format strings.

svn path=/trunk/icecast/; revision=4830
2003-05-28 13:43:48 +00:00
oddsock
8f84c0188a some win32-isms
and a bad free that valgrind yelled at me about

svn path=/trunk/icecast/; revision=4711
2003-05-15 23:19:57 +00:00
oddsock
27c0af2b1d infrastructure for new web-based admin interface
new config option <adminroot>

restructured code a bit in admin.c for a bit better extendability

svn path=/trunk/icecast/; revision=4708
2003-05-15 21:03:32 +00:00
Michael Smith
8527ed7b43 Implementation of aliases contributed by Paul Donohue <icecast@TopQuark.net>
svn path=/trunk/icecast/; revision=4629
2003-04-23 12:44:29 +00:00
Michael Smith
5c5155b8d9 Only consider a path a candidate for file-serving if it exists AND is a normal
file (not a directory, etc.)

svn path=/trunk/icecast/; revision=4616
2003-04-18 14:59:26 +00:00
oddsock
0a1ba85795 printf to stdout not valid with our win32 binary, so lets now use something that will work on win32. note that these should only be used up to the point at which logging is started, then everything should go there.
also added a new stat to represent what is currently being sent to the yp server as "what's playing"

svn path=/trunk/icecast/; revision=4613
2003-04-17 03:23:18 +00:00
Karl Heyes
9431588c99 admin.h is needed for the tarball or else it will fail to compile icecast
svn path=/trunk/icecast/; revision=4612
2003-04-17 01:03:32 +00:00
oddsock
2c2576ed4e - fixed alot of yp logic. timeouts now work properly so the tolerance of
the unavailability of yp servers is much much better now.

- new icecast config option <yp-url-timeout> to specify the timeout

- url encoding is now fixed so that the yp data is formatted much nicer (and is correct :))

- added url encoding for some fields that were not url-encoded

- modified util_dict_urlencode() to not url-encode the key (still does the value)

- new curl option (CURLOPT_NOSIGNAL) which prevents curl from using signals when
  timeouts are hit.  This new option needs curl 7.10 at least.

svn path=/trunk/icecast/; revision=4603
2003-04-11 03:00:24 +00:00
Michael Smith
801ab0bc3e What was I on when I wrote this? oddsock pointed out that util_url_escape()
was chronically broken

svn path=/trunk/icecast/; revision=4602
2003-04-10 14:28:02 +00:00
Michael Smith
2cb0db8e80 Don't pass 0x1 as a pointer to a syscall. oops.
svn path=/trunk/net/; revision=4593
2003-04-08 12:09:57 +00:00
Michael Smith
81cd2d50f5 Implement killsource admin command, to kill sources. Doesn't always do much,
ices (as an example) will auto-reconnect.

svn path=/trunk/icecast/; revision=4571
2003-03-31 12:54:44 +00:00
Michael Smith
ed019c0cd6 Remove locking from refbuf: we used a single global lock for all of them, which
caused significant lock contention with many sources. Further, a single refbuf
is never used by more than one source (and hence one thread), so the locking
was unneeded.

Fix a nasty bug in source.c:_compare_clients() - was casting a void pointer
to the wrong type, and hence all the tree-maintaince comparisons were totally
wrong (but due to the exact nature of the bug this wasn't causing any active
problems until...)

Add another admin command to kill a client - remove it using an id. Note that
many clients will do auto-reconnect, so this may not be sufficient on its own,
we might need a ban (possibly temporary) function.

svn path=/trunk/icecast/; revision=4569
2003-03-30 13:52:27 +00:00
brendan
8651aabcbb First crack at making YP/curl optional.
svn path=/trunk/icecast/; revision=4552
2003-03-27 17:10:14 +00:00
Karl Heyes
8c866378d8 Add package wide CFLAGS, typically used for the pthread options
svn path=/trunk/log/; revision=4543
2003-03-26 22:13:54 +00:00
Karl Heyes
18c2baad5a tabs needed for Makefile
svn path=/trunk/log/; revision=4521
2003-03-21 23:54:09 +00:00
Michael Smith
ca6a611be4 Fix ordering of some calls in source shutdown, silly bug.
Remove wrong comment.

svn path=/trunk/icecast/; revision=4513
2003-03-19 07:59:32 +00:00
Michael Smith
35e22a005a Fix lack of null terminator in audio info/stats stuff.
svn path=/trunk/icecast/; revision=4512
2003-03-19 07:55:42 +00:00
Karl Heyes
0b1a75fd31 better fix for cases with missing inet_aton
svn path=/trunk/net/; revision=4500
2003-03-17 16:47:20 +00:00
Michael Smith
3b2df1d0d9 Brendan was getting pissed off about inconsistent indentation styles.
Convert all tabs to 4 spaces. All code must now use 4 space indents.

svn path=/trunk/avl/; revision=4492
2003-03-15 02:10:19 +00:00
Michael Smith
bd9c2383c5 Bugfix: source shutdown did things in the wrong order, could lead to clients
ending up connecting to a source which didn't exist.

Add 'moveclients' admin command to move all clients from one source to
another (without shutting the old source down)

svn path=/trunk/icecast/; revision=4489
2003-03-14 07:59:58 +00:00
brendan
1198cbb982 Typo (no sleeping between select()s waiting for connections)
svn path=/trunk/icecast/; revision=4478
2003-03-12 05:40:45 +00:00
Karl Heyes
a3268b8d2f avoid freeing a thread structure a second time.
svn path=/trunk/thread/; revision=4477
2003-03-12 03:59:55 +00:00
Michael Smith
596922217b Fix relay stream listing. Remove seperate relay password, there's no
need for it.

svn path=/trunk/icecast/; revision=4464
2003-03-10 22:20:16 +00:00
Karl Heyes
df4431766a reduce include file namespace clutter for libshout and the associated
smaller libs.

svn path=/trunk/avl/; revision=4456
2003-03-09 22:56:46 +00:00
Michael Smith
0d40f034d2 Listing of current mountpoints in admin interface.
svn path=/trunk/icecast/; revision=4455
2003-03-09 14:12:24 +00:00
Michael Smith
eba22526aa Support listening on multiple sockets.
svn path=/trunk/icecast/; revision=4454
2003-03-09 11:27:06 +00:00
Karl Heyes
5565b331da include the automake config.h file if the application defines one
svn path=/trunk/avl/; revision=4450
2003-03-08 16:05:38 +00:00
Michael Smith
a3716577ec Check the right variable for password in icy logins
svn path=/trunk/icecast/; revision=4447
2003-03-08 05:38:52 +00:00
Michael Smith
8c750aaee4 Set another parameter in the icy protocol parse that logging expects
svn path=/trunk/httpp/; revision=4446
2003-03-08 05:27:17 +00:00
Michael Smith
e921a67bd1 create /icy_0 (and incrementing numbers) for incoming icy protocol connections
if the / mountpoint is taken

svn path=/trunk/icecast/; revision=4445
2003-03-08 05:02:13 +00:00
Michael Smith
b2b618c62f Added support for shoutcast login protocol (ewww...)
svn path=/trunk/httpp/; revision=4444
2003-03-08 04:57:02 +00:00
Karl Heyes
8682dba672 more on the XIPH_CFLAGS. For the smaller libs like thread etc put any
passed flags into the compiling rules.  Also configure in libshout now
sets up the XIPH_CFLAGS

svn path=/trunk/avl/; revision=4439
2003-03-08 00:46:59 +00:00
Michael Smith
b520eb3272 Implement listing of all currently connected clients on a mountpoint
svn path=/trunk/icecast/; revision=4434
2003-03-07 14:57:36 +00:00
Michael Smith
d1e8e7bfb7 Send a user-agent header on normal relay requests as well.
svn path=/trunk/icecast/; revision=4417
2003-03-06 14:52:09 +00:00
Michael Smith
f8783aedac Check admin password against the correct username
svn path=/trunk/icecast/; revision=4416
2003-03-06 14:46:33 +00:00
Michael Smith
a79f0b6cae Split admin stuff out into a seperate file, add various utility functions there.
rename util_url_escape to util_url_unescape, and write a util_escape function
that actually DOES escape things. Fix all the callers of the function to call
the correct one of these two.

svn path=/trunk/icecast/; revision=4414
2003-03-06 14:17:33 +00:00
brendan
45c5bff8bb BitKeeper go bye-bye
Whoops, broke thread include path

svn path=/trunk/net/; revision=4413
2003-03-06 05:56:03 +00:00
brendan
3274bc38d4 Require NO_THREAD to be defined to turn off locking in avl and net
According to Karl, defining nops with do{}while(0) is a la mode.

svn path=/trunk/avl/; revision=4412
2003-03-06 02:35:12 +00:00
brendan
cbfe325c2f Use gnu archive ACX_PTHREAD macro to figure out how to compile thread support.
Also make it possible to build libshout without threads, albeit without locking
in the resolver or avl trees.
New option --disable-pthread too.

svn path=/trunk/avl/; revision=4411
2003-03-06 01:55:20 +00:00
brendan
f5059c261e rwlocks were not getting destroyed when avl nodes or trees were freed.
avl.h already includes thread.h

svn path=/trunk/avl/; revision=4410
2003-03-06 00:59:41 +00:00
brendan
ea307d20f7 Remove some namespace pollution
svn path=/trunk/thread/; revision=4409
2003-03-05 19:52:10 +00:00
Michael Smith
d13ebde7a3 Allow rereading config files.
Lots of new locking happening so that it's safe to have the config file
disappear under the rest of the program

Does NOT affect currently-running sources at the moment

svn path=/trunk/icecast/; revision=4406
2003-03-05 13:03:35 +00:00
Michael Smith
4c08a155c7 Make various thread structures omit the bits only used in debug mode.
Some of these are pretty heavily used, so saving 10-20 bytes each can be
quite significant.

No functional differences.

svn path=/trunk/thread/; revision=4401
2003-03-04 15:31:34 +00:00
Michael Smith
fc4f7f2435 doh! This one compiles.
svn path=/trunk/icecast/; revision=4398
2003-03-03 13:09:47 +00:00
Michael Smith
823c5e23c0 Fix buffer-queue length handling (was missing from refbuf_queue_add, which it
used as well as refbuf_queue_insert).

svn path=/trunk/icecast/; revision=4397
2003-03-03 13:04:34 +00:00
Michael Smith
5252a14068 Fix various minor bugs in per-mountpoint configs.
svn path=/trunk/icecast/; revision=4385
2003-03-02 10:36:24 +00:00
Michael Smith
c359faf1de More features:
-- per mountpoint listener maxima
  -- static configuration of mountpoint fallbacks
  -- stream dumping (write incoming stream to disk)

Fixed some warnings that other people introduced.

svn path=/trunk/icecast/; revision=4383
2003-03-02 10:13:59 +00:00
oddsock
1d84364c5a win32 doesn't support line buffering with setvbuf() properly, so for win32
lets just set it to no-buffering for logs.

svn path=/trunk/log/; revision=4381
2003-02-27 03:02:30 +00:00
oddsock
ce167cc6bb whoops...stats can't have spaces in them, since XML can't have spaces in the tags
also, handle case where a client sends a bad ice-audio-info string (variable but no value)

svn path=/trunk/icecast/; revision=4380
2003-02-27 03:01:12 +00:00
oddsock
1658f1717e added parsing of new icy-audio-info header which will be used to
communicate things like samplerate/quality/number of channels to
icecast2. This info will be then forwarded to the yp servers for
better stream info.

also factored out some logic in source_main into common functions

added a few new routines into util.c (taken from Brendan's
updates to libshout)

svn path=/trunk/icecast/; revision=4379
2003-02-26 23:52:23 +00:00
Michael Smith
680e56bf7b mp3 metadata relaying now works (lots of bugs fixed)
svn path=/trunk/icecast/; revision=4366
2003-02-25 09:40:34 +00:00
Michael Smith
47b1d160ae Commit fix for segfault in buffer length handling code.
svn path=/trunk/icecast/; revision=4365
2003-02-24 14:56:49 +00:00
Michael Smith
5019130d27 Max queue length for clients is now
a) based on total bytes in queue, not total number of buffers in queue
    b) configurable (defaults to 100 kB)

mp3 metadata relaying (inline). Untested.

svn path=/trunk/icecast/; revision=4364
2003-02-24 13:37:15 +00:00
Michael Smith
8c14c0e0db Oops. Very broken password checking, fix from Karl Heyes.
svn path=/trunk/icecast/; revision=4358
2003-02-20 22:18:24 +00:00
Michael Smith
83b41e2beb Fix previous changes to source creation - misunderstood requirements for
unlocking rwlocks. Move more checks and some other logic into source.c

svn path=/trunk/icecast/; revision=4354
2003-02-17 13:01:37 +00:00
Michael Smith
469ac14e11 Commit some other work so it compiles again (incomplete mp3 metadata relaying)
svn path=/trunk/icecast/; revision=4353
2003-02-17 12:05:45 +00:00
Michael Smith
76fc62810e Fix a serious bug with source creation in relays when local-mount != mount,
and fix a series of locking bugs in source creation.

svn path=/trunk/icecast/; revision=4352
2003-02-17 11:56:12 +00:00
Michael Smith
008c8abbc7 Fix mp3 streaming for clients not using metadata
svn path=/trunk/icecast/; revision=4348
2003-02-14 13:39:02 +00:00
Michael Smith
5b2a7bc07a Oops. Pull a header print outside the loop so the Server: header is only
output once, not many times.

svn path=/trunk/icecast/; revision=4347
2003-02-14 13:17:38 +00:00
Michael Smith
d15952d784 Fix bad log entries from relaying.
svn path=/trunk/icecast/; revision=4346
2003-02-14 11:44:08 +00:00
Michael Smith
68aa51b6e6 Fix formatting of ip addresses so that v6 sockets are logged correctly.
svn path=/trunk/net/; revision=4345
2003-02-14 11:14:55 +00:00
Michael Smith
1644a6f718 Fix incorrect use of enum that was leading to crashes on source connect for
unknown mimetype.

svn path=/trunk/icecast/; revision=4344
2003-02-14 10:31:21 +00:00
Michael Smith
5d88044bb7 Remove comment added earlier - that version of the function is only there
for backwards compatibility, and isn't MEANT to do ipv6. Oops.

svn path=/trunk/net/; revision=4343
2003-02-13 11:51:35 +00:00
Michael Smith
b6c18398cd Better IPv6 support. Hopefully logging will work correctly now.
However, some things still won't work, notably relaying (the relay can be
ipv6, the server being relayed _from_ may not be).
I'll fix that some time soon.

svn path=/trunk/icecast/; revision=4342
2003-02-13 11:29:07 +00:00
Michael Smith
38e3bfb88f Increase buffer size for IPs so that logging works better for v6 clients.
svn path=/trunk/icecast/; revision=4341
2003-02-12 22:50:59 +00:00
Michael Smith
08ad72ffed Allow configuring local mountpoint seperately from remote mountpoint
svn path=/trunk/icecast/; revision=4340
2003-02-12 11:04:26 +00:00
Michael Smith
f3d717e908 Increase ip buffer sizes so that ipv6 has a better chance of working.
svn path=/trunk/net/; revision=4339
2003-02-12 10:58:17 +00:00
Michael Smith
9acef4801e Per mountpoint usernames, passwords, and some infrastructure for other
per-mountpoint configuration (some of these are given as examples in
the config file, but they aren't yet used).

svn path=/trunk/icecast/; revision=4338
2003-02-11 14:23:34 +00:00
Michael Smith
9f85a1e7c3 Now that it's been completely officially assigned, use application/ogg instead
of application/x-ogg

svn path=/trunk/icecast/; revision=4336
2003-02-11 12:18:22 +00:00
Michael Smith
a3ee7cf61a Sigh. And another.
svn path=/trunk/icecast/; revision=4332
2003-02-07 14:00:33 +00:00
Michael Smith
248a0874a4 Grumble. Silly gcc.
svn path=/trunk/icecast/; revision=4331
2003-02-07 13:56:33 +00:00
Michael Smith
98a6f4ef31 Free new config variables on shutdown (forgot to add this before)
svn path=/trunk/icecast/; revision=4330
2003-02-07 12:26:07 +00:00
Michael Smith
037789bc1a Add format detection workaround for icecast 1.x, which is buggy and doesn't
send a content-type header.

svn path=/trunk/icecast/; revision=4329
2003-02-07 11:56:40 +00:00
Michael Smith
8600634e68 Fix relaying. Oops.
svn path=/trunk/icecast/; revision=4328
2003-02-07 11:46:03 +00:00
Michael Smith
e3bb942ed9 Rearrange some relaying code.
Add ability to configure individual relays as well (i.e. single stream, rather
than all the streams from a server).

svn path=/trunk/icecast/; revision=4327
2003-02-07 10:53:38 +00:00
Michael Smith
9e168dc870 Lots of fixes for screwy code formatting, plus:
make streams public by default, send ice-private: 1 to make them private.
However, default config file has yp servers commented out.

A little fix for compilation on some solaris systems

Redo some config file stuff: now all the passwords are inside an element
<authentication>, (though for now they're also accepted in the old location),
and added admin username and password. Move some of the admin activities over
to using the admin passwords (admin action that affect a mountpoint use the
source password)

Fill in some (but not yet all, maybe i'll do that later) of the infrastructure
for per-mountpoint passwords.

Fix lots of headers/code so that it works properly/portably  on non-win32
systems.

svn path=/trunk/icecast/; revision=4325
2003-02-06 13:10:48 +00:00
oddsock
4865fd10d0 if there is an error on touching, then reset the sid which will force another add
svn path=/trunk/icecast/; revision=4320
2003-02-05 02:04:54 +00:00
oddsock
0fba6babb1 style changes
svn path=/trunk/icecast/; revision=4316
2003-02-02 16:48:15 +00:00
oddsock
e07080a0d8 added references to geturl.h
svn path=/trunk/icecast/; revision=4314
2003-02-02 14:33:47 +00:00
oddsock
289c58f945 many modifications in order to support yp listing..the source structure now has additional fields, which are only used by the yp listing routines
svn path=/trunk/icecast/; revision=4313
2003-02-02 14:33:17 +00:00
oddsock
f9e5bf3d07 added reference to log.h, WIN32 needed it otherwise it would fail on finding prototypes
svn path=/trunk/icecast/; revision=4312
2003-02-02 14:32:21 +00:00
oddsock
0fb743aa78 added geturl.h reference
svn path=/trunk/icecast/; revision=4311
2003-02-02 14:31:34 +00:00
oddsock
556bf3ed35 added initialization routines for curl, and also added the '-b' as a command line param...this will put icecast2 in the background
svn path=/trunk/icecast/; revision=4310
2003-02-02 14:26:54 +00:00
oddsock
a3dfee72e0 added function for retrieving specific stat values (for use by yp routines)
svn path=/trunk/icecast/; revision=4309
2003-02-02 14:25:53 +00:00
oddsock
6e16b1cca2 new configuration entries for yp listing
svn path=/trunk/icecast/; revision=4308
2003-02-02 14:24:58 +00:00
oddsock
dd177a7290 added new files for yp listing, and also added refereneces to them in Makefile.am
svn path=/trunk/icecast/; revision=4307
2003-02-02 14:24:13 +00:00
Michael Smith
6f1f4072af Fix segfault if current source didn't exist on fallback mount request.
svn path=/trunk/icecast/; revision=4292
2003-01-23 11:12:54 +00:00
brendan
ac6bd1d2e7 We weren't actually using poll at all, we were just including the header.
For portability, remove the header and the check in configure.in

svn path=/trunk/net/; revision=4283
2003-01-21 06:45:43 +00:00
Michael Smith
cefe6b8970 Bah. That'll teach me to trust the manpage... let's try something which might
be marginally more portable.

svn path=/trunk/net/; revision=4279
2003-01-19 02:46:06 +00:00
Michael Smith
0b57a33794 Fix for a couple of nasty bugs that could result in clients being incorrectly
dropped under some circumstances. Thanks to Ricardo Galli for finding this.

svn path=/trunk/icecast/; revision=4268
2003-01-18 12:30:29 +00:00
Michael Smith
1fb972cf89 And some more message fixes (this and the previous from alet@librelogiciel.com (Jerome Alet)
svn path=/trunk/icecast/; revision=4262
2003-01-18 07:39:29 +00:00
Michael Smith
6d4ef5e519 Fix a message that was talking about the wrong path
svn path=/trunk/icecast/; revision=4261
2003-01-18 07:38:18 +00:00
Michael Smith
f2d0e26fed Set TCP_NODELAY on sockets for streams and fileserving.
Adapted from a patch sent by Richard Galli

svn path=/trunk/icecast/; revision=4260
2003-01-18 07:08:00 +00:00
Michael Smith
369a4568b6 Small memory leak fixed (patch from Ricardo Galli <gallir@uib.es>)
svn path=/trunk/icecast/; revision=4259
2003-01-18 06:54:29 +00:00
Michael Smith
8f1b39e34d Fix some warnings, fix cflags.
svn path=/trunk/httpp/; revision=4258
2003-01-17 09:01:04 +00:00
brendan
4dce25a3e7 I wanted to see this variable
svn path=/trunk/icecast/; revision=4254
2003-01-16 08:07:36 +00:00
brendan
d9682b5dec Indentation again, don't mind me
svn path=/trunk/httpp/; revision=4252
2003-01-16 05:48:31 +00:00
brendan
3a0b895baa Make indentation consistent before doing other work
svn path=/trunk/httpp/; revision=4250
2003-01-15 23:46:56 +00:00
Michael Smith
c4d74c54d0 Patch for freebsd to set gcc options for pthreads correctly, from
"Nigel Weeks" <nigel@e-easy.com.au>

svn path=/trunk/icecast/; revision=4235
2003-01-13 10:48:43 +00:00
oddsock
37fb98cad7 fixed SEGV when streaming with mp3 with metadata
svn path=/trunk/icecast/; revision=4198
2003-01-01 21:21:20 +00:00
Michael Smith
d8e9eb3883 indentation fixes, and a small fix for tracking bytes sent.
svn path=/trunk/icecast/; revision=4197
2003-01-01 07:31:46 +00:00
oddsock
ba5e903735 those darn EOL chars
svn path=/trunk/icecast/; revision=4196
2002-12-31 20:15:03 +00:00
oddsock
a210e9f58f win32 compilation fixes
svn path=/trunk/icecast/; revision=4195
2002-12-31 20:07:14 +00:00
oddsock
a4d2d6a2b4 fixed mp3 metadata, now tested and working.
svn path=/trunk/icecast/; revision=4194
2002-12-31 19:48:28 +00:00
Michael Smith
11a1d83e1a New year's bonus feature:
configurable fallbacks, now working.

svn path=/trunk/icecast/; revision=4192
2002-12-31 07:49:34 +00:00
Michael Smith
ab8c8c6893 mp3 metadata complete. Still untested.
svn path=/trunk/httpp/; revision=4191
2002-12-31 06:28:39 +00:00
Michael Smith
5275ab34b9 Better file-serving, rationalisation of some paths
svn path=/trunk/icecast/; revision=4181
2002-12-30 15:42:38 +00:00
Michael Smith
3783c61e92 mountpoint fallbacks.
untested, and no interface available to configure them.

svn path=/trunk/icecast/; revision=4180
2002-12-30 15:19:46 +00:00
Michael Smith
655a786cfc Fix some minor errors.
svn path=/trunk/icecast/; revision=4179
2002-12-30 11:27:21 +00:00
Michael Smith
29bc4a13b6 More mp3 metadata work.
Untested but more or less complete.
No way to actually set the metadata yet.

svn path=/trunk/icecast/; revision=4178
2002-12-30 11:22:59 +00:00
Michael Smith
40444f4178 mp3 metadata work (incomplete)
svn path=/trunk/icecast/; revision=4177
2002-12-30 07:55:56 +00:00
Michael Smith
5890aa4f4b Fix c++-ism that gcc didn't think to warn me about
svn path=/trunk/icecast/; revision=4176
2002-12-30 01:59:03 +00:00
Michael Smith
65c0bfbba5 Fix up types after thread type rename earlier.
svn path=/trunk/icecast/; revision=4175
2002-12-29 15:46:32 +00:00
Michael Smith
d218eedf9a Plug several small memory leak, and one huge one in the xslt output code
svn path=/trunk/icecast/; revision=4174
2002-12-29 14:06:20 +00:00
Michael Smith
b8a686018f Rename thread_t to avoid problems on OS X
svn path=/trunk/thread/; revision=4170
2002-12-29 09:55:50 +00:00
Michael Smith
2e21e899c9 Minor incompatible change to relaying, to match actual protocol.
svn path=/trunk/icecast/; revision=4169
2002-12-29 09:21:32 +00:00
Michael Smith
b8e157d7d1 Add infrastructure for better/more flexible format support. Will be needed
for mp3 metadata, for example.

svn path=/trunk/icecast/; revision=4167
2002-12-29 08:10:10 +00:00
Michael Smith
b3bc17fa73 Fix compilation errors on non-windows platforms.
svn path=/trunk/net/; revision=4133
2002-12-01 02:11:07 +00:00
Michael Smith
f7ee1580ce Fix EOLs
svn path=/trunk/icecast/; revision=4132
2002-12-01 02:10:25 +00:00
oddsock
4c795ed130 win32 port updates to recent changes
svn path=/trunk/icecast/; revision=4117
2002-11-23 15:55:27 +00:00
Michael Smith
7c7fa73422 Fix a compile error.
svn path=/trunk/icecast/; revision=4115
2002-11-22 13:13:04 +00:00
Michael Smith
7b4730cbfd Karl Heyes: patches for better networking code. IPv6 support (complete? Not
sure).

svn path=/trunk/net/; revision=4114
2002-11-22 13:02:51 +00:00
Michael Smith
89bf546ad1 Lots of bugfixes contributed by Karl Heyes.
svn path=/trunk/icecast/; revision=4111
2002-11-22 13:00:44 +00:00
Michael Smith
a6edc8f631 Allow icelogin to coexist with http login. icelogin is still deprecated,
and now a warning is issued.

svn path=/trunk/icecast/; revision=3985
2002-10-10 08:50:58 +00:00
Michael Smith
b620ee918d Previous bugfix was incorrect, and made the problem worse, since it ensured
it would be triggered in certain cases, instead of merely making it dependant
on previous values written to the variable in those cases.

Fixes source disconnect on some (but very few) ogg bitstreams (the vast
majority of my files play fine)

svn path=/trunk/icecast/; revision=3978
2002-10-06 09:57:07 +00:00
Michael Smith
e0054eb3ea Fix for possible obscure bug leading to source disconnects.
svn path=/trunk/icecast/; revision=3975
2002-10-03 14:07:34 +00:00
Michael Smith
68dea2dc71 build updates.
svn path=/trunk/icecast/; revision=3945
2002-09-24 08:16:24 +00:00
Michael Smith
9940c969bd Bugfix: thread_join is often called after a thread has already exited, which it
does using thread_exit(). thread_exit() was freeing the thread structure, so
thread_join was using freed memory. Rearrange things so that if the thread
is detached, the freeing happens in thread_join instead.

svn path=/trunk/thread/; revision=3944
2002-09-24 07:09:08 +00:00
Michael Smith
08061569bd Fix an fserv crash bug if startup failed, and fix an fserv-didn't-actually-
work-at-all-in-most-circumstances bug.

svn path=/trunk/icecast/; revision=3883
2002-08-28 13:50:58 +00:00
Michael Smith
b2c59ffdd5 Fix XSLT compiler flags. patch from Thomas Vander Stichele
svn path=/trunk/icecast/; revision=3882
2002-08-28 13:00:02 +00:00
Michael Smith
07de3c2dd7 Move fserve_initialize() to later so that chroot() works right.
svn path=/trunk/icecast/; revision=3877
2002-08-25 06:12:51 +00:00
Michael Smith
e9b1e40089 Build an extension->mimetype mapping table from /etc/mime.types, use this
for sending content-type when file serving.

svn path=/trunk/icecast/; revision=3858
2002-08-18 13:38:51 +00:00
Michael Smith
0ffcdea5e1 Use select() if poll() isn't available in fserve.
svn path=/trunk/icecast/; revision=3857
2002-08-18 09:38:45 +00:00
Michael Smith
3c59c90e36 Fileserving that might actually work for > 1 user.
cleanups for the base64 decoder.

svn path=/trunk/icecast/; revision=3856
2002-08-18 08:49:25 +00:00
Michael Smith
8ce3dbb957 File serving, from the webroot.
svn path=/trunk/icecast/; revision=3852
2002-08-18 05:06:58 +00:00
Michael Smith
2aa432dc0f Use relay password (fallback to using source password if no relay-password
is set)

svn path=/trunk/icecast/; revision=3850
2002-08-17 08:32:15 +00:00
Michael Smith
14b28dd860 Fall back to using the source-password if no master-password is set.
svn path=/trunk/icecast/; revision=3849
2002-08-17 06:25:38 +00:00
Michael Smith
d54dccb8ad Fix a null terminator so that relaying can work again
svn path=/trunk/icecast/; revision=3847
2002-08-17 04:48:07 +00:00
Michael Smith
9c2d2b25fa Minor fix I forgot to commit yesterday for source data length accounting.
svn path=/trunk/icecast/; revision=3845
2002-08-17 04:35:23 +00:00
Michael Smith
f8250d8df0 Minor fixes for logging response codes correctly (hopefully)
svn path=/trunk/icecast/; revision=3840
2002-08-16 15:28:46 +00:00
Michael Smith
121720a4cc Fix relaying to work with new auth scheme.
svn path=/trunk/icecast/; revision=3838
2002-08-16 14:55:56 +00:00
Michael Smith
913ec3481a HTTP Basic source login support. The old "ice-password" method is still
available, but is deprecated and turned off by default.

svn path=/trunk/icecast/; revision=3837
2002-08-16 14:26:48 +00:00
Michael Smith
def074c801 Liberally sprinkle #ifdef THREAD_DEBUG around so libshout doesn't need to link
with it.

svn path=/trunk/thread/; revision=3835
2002-08-16 14:23:17 +00:00
Michael Smith
6f66e1b7f2 bugfixes for httpp_parse_response
svn path=/trunk/httpp/; revision=3834
2002-08-16 14:22:44 +00:00
Michael Smith
5a60e7c09d Cache-checking is case-insensitive on win32.
svn path=/trunk/icecast/; revision=3811
2002-08-13 13:53:07 +00:00
Michael Smith
b68b01f02c Cache stylesheets for transforming.
svn path=/trunk/icecast/; revision=3810
2002-08-13 12:46:45 +00:00
Michael Smith
3666660ef6 Timing fixes
svn path=/trunk/icecast/; revision=3808
2002-08-13 01:08:15 +00:00
Michael Smith
76ff92cb2f _handle_connection() cleanup, major restructuring. No feature changes.
svn path=/trunk/icecast/; revision=3807
2002-08-12 14:48:31 +00:00
Michael Smith
6e23c0f8fc Fix a bug in one of the error (404) responses.
svn path=/trunk/icecast/; revision=3806
2002-08-12 10:11:44 +00:00
Michael Smith
f349c3bf3e More path handling cleanups, and memory leak fixes.
svn path=/trunk/icecast/; revision=3804
2002-08-11 14:23:39 +00:00
Michael Smith
850cf995bf URI decoding and path normalisation pass one (stuff needed for fileserving
later on)

svn path=/trunk/icecast/; revision=3803
2002-08-11 14:00:56 +00:00
Michael Smith
bf782f0248 Decrement client connections on source termination to avoid eventual "server
is full" messages.

svn path=/trunk/icecast/; revision=3801
2002-08-11 12:15:40 +00:00
Michael Smith
84a76ac3ee status.xsl updates, better now.
Automatically create .m3u responses for any existing streams.
If /stream.ogg exists, you can now request /stream.ogg.m3u in your browser.

svn path=/trunk/icecast/; revision=3797
2002-08-10 08:01:56 +00:00
Michael Smith
e97e404904 Better error messages on some corrupt sources.
svn path=/trunk/icecast/; revision=3796
2002-08-10 04:51:11 +00:00
Michael Smith
5d06975c44 Various cleanups
svn path=/trunk/icecast/; revision=3791
2002-08-10 03:22:44 +00:00
Michael Smith
8bd8dbbe48 Another free->xmlFree change
svn path=/trunk/icecast/; revision=3785
2002-08-09 15:04:40 +00:00
Michael Smith
e42c65afa3 fix typo preventing compile
svn path=/trunk/icecast/; revision=3784
2002-08-09 15:03:32 +00:00
Michael Smith
c96ec5bab0 set default webroot dir correctly, and fix a minor memleak
svn path=/trunk/icecast/; revision=3782
2002-08-09 14:47:53 +00:00
Michael Smith
bf0f2e1414 rename transformXSLT to xslt_transform() for consistency with the rest
of the source.

svn path=/trunk/icecast/; revision=3781
2002-08-09 14:38:42 +00:00
Michael Smith
7f0230e8ea Redo memory-management in config.c so that xmlFree() is called instead of
free(), hopefully fixing win32 segfaults.

svn path=/trunk/icecast/; revision=3780
2002-08-09 14:36:12 +00:00
Michael Smith
6357936028 Various cleanups for accounting of sent bytes.
Crash bug in stats fixed.

svn path=/trunk/icecast/; revision=3779
2002-08-09 14:15:08 +00:00
Michael Smith
5dd00e7423 Fix crash when socket couldn't be bound.
svn path=/trunk/icecast/; revision=3776
2002-08-09 13:14:59 +00:00
Michael Smith
0ecb66895a Add new xslt files, which I forgot earlier
svn path=/trunk/icecast/; revision=3775
2002-08-09 08:16:51 +00:00
Michael Smith
fce9ecb952 Allow setting the log level (for the error log, not the access log) from the
config file.

svn path=/trunk/icecast/; revision=3774
2002-08-09 08:11:37 +00:00
Michael Smith
8d75eb0b4a Logging cleanups, and a config file fix.
svn path=/trunk/icecast/; revision=3773
2002-08-09 08:06:00 +00:00
Michael Smith
9b6b2afeaf oddsock's xslt stats support, slightly cleaned up
svn path=/trunk/icecast/; revision=3772
2002-08-09 06:52:07 +00:00
Michael Smith
f1dc57ae2b Cleaned up version of Ciaran Anscomb's relaying patch.
svn path=/trunk/httpp/; revision=3760
2002-08-05 14:48:04 +00:00
Michael Smith
3727b2b32c Updates for modified logging API.
svn path=/trunk/icecast/; revision=3752
2002-08-03 08:16:52 +00:00
Michael Smith
49e028cd02 Lots of patches committable now that my sound card works properly again.
logging API changed slightly (I got sick of gcc warnings about deprecated
features).

resampling (for live input, not yet for reencoding) is in there.

several patches from Karl Heyes have been incorporated.

svn path=/trunk/log/; revision=3751
2002-08-03 08:14:56 +00:00
Michael Smith
3e60ee06f6 Config fixes for when parsing fails
Don't needlessly call getsockopt() all the time (it's a system call, hence
expensive)

svn path=/trunk/icecast/; revision=3735
2002-07-31 15:00:12 +00:00
Michael Smith
59e523a023 Allow either poll or select to be used (based on whether HAVE_POLL is defined.)
Still need to make autoconf define HAVE_POLL where relevent.

svn path=/trunk/icecast/; revision=3717
2002-07-24 14:52:28 +00:00
Michael Smith
b45b6853da Send the correct mimetype on client request.
svn path=/trunk/icecast/; revision=3716
2002-07-24 13:55:12 +00:00
Michael Smith
638ccabd55 MP3 support for icecast2.
- no title/metadata support
- requires modifications to source clients.

svn path=/trunk/icecast/; revision=3713
2002-07-23 15:15:11 +00:00
Michael Smith
9cf59b280c Fix locations of headers.
svn path=/trunk/icecast/; revision=3439
2002-06-29 04:29:37 +00:00
Michael Smith
4703f764d7 fix previous fix.
svn path=/trunk/icecast/; revision=3391
2002-06-15 04:57:50 +00:00
Michael Smith
903abeb2a5 fixed crash in shutdown if startup didn't happen properly.
svn path=/trunk/icecast/; revision=3390
2002-06-15 04:54:43 +00:00
Michael Smith
8a4ae84dce Fix for evil format string vulnerability - people, don't DO THIS!
Fix from Emil Styrke <emil@lysator.liu.se>

svn path=/trunk/icecast/; revision=3341
2002-06-03 09:12:50 +00:00
Michael Smith
92bb45ddc7 missing newlines. oops.
svn path=/trunk/icecast/; revision=3319
2002-05-21 05:22:32 +00:00
Michael Smith
fd2ee075f6 Fix segfault from called log functions before log was initialised.
svn path=/trunk/icecast/; revision=3316
2002-05-21 00:35:33 +00:00
Michael Smith
9414de162b Fix potential problem which would occur if <changeuser> was set, but had
no <user> or no <group> element within it.

svn path=/trunk/icecast/; revision=3315
2002-05-21 00:05:31 +00:00
Michael Smith
86c78a6be9 chroot and setuid interacted badly in the previous version. Fixed now.
svn path=/trunk/icecast/; revision=3311
2002-05-20 13:25:31 +00:00
Michael Smith
4d884d832f Ian Kumlien's security (chroot() and setuid() patch), with some modifications.
svn path=/trunk/icecast/; revision=3302
2002-05-14 11:06:54 +00:00
Michael Smith
669cfbd02f I am an idiot.
svn path=/trunk/icecast/; revision=3292
2002-05-08 14:07:42 +00:00
Michael Smith
2ff217cb18 Minor fix to previous fix - use the right variable!
svn path=/trunk/icecast/; revision=3291
2002-05-08 14:02:02 +00:00