1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-11-03 04:17:17 -05:00
Commit Graph

1916 Commits

Author SHA1 Message Date
Michael Smith
ea47fdf504 Buffer overflows.
Requires a change to the format plugin interface - jack: if you want this
done differently, feel free to change it (or ask me to).

svn path=/trunk/httpp/; revision=3219
2002-04-05 09:28:26 +00:00
Jack Moffitt
235a2639cc Ouch. Serious bug found by Ricardo Galli.
When the cond var is signalled it will wake up a thread.  If all the
connection handler threads are handling connections, the signal will be
ignored and clients will 'pend' until another client causes the to signal
again.

We have to check to see if there are more pending connections before waiting
on the signal again.

svn path=/trunk/icecast/; revision=3178
2002-03-22 22:41:16 +00:00
Jack Moffitt
785cfefe3e Ricardo Galli found this too. We weren't setting no linger and keepalive
as we used to in icecast1.  They make things work a bit better.

svn path=/trunk/net/; revision=3177
2002-03-22 21:44:29 +00:00
Jack Moffitt
7bccdbd4f0 Fix comments (and remove old commented out code) from sock_write_bytes.
svn path=/trunk/net/; revision=3176
2002-03-22 21:24:57 +00:00
Jack Moffitt
d8559723fb We were triggering error logic when no errors had occurred. Thanks
to Ricardo Galli for finding this bug.

svn path=/trunk/icecast/; revision=3175
2002-03-22 21:18:03 +00:00
Jack Moffitt
06fb100e10 Add error == 0 to recoverable error numbers. Patch from Ricardo Galli.
Minor style fixes.

svn path=/trunk/net/; revision=3174
2002-03-22 21:09:36 +00:00
Jack Moffitt
39635122a5 win32 patches from Ed
svn path=/trunk/icecast/; revision=3123
2002-03-05 23:59:38 +00:00
Michael Smith
cb9de1ee2a Comment audio/mpeg out until it gets implemented, to avoid segfaults.
svn path=/trunk/icecast/; revision=3076
2002-02-19 22:01:51 +00:00
Jack Moffitt
1a3824ff89 Replace the placeholder with the real license.
svn path=/trunk/icecast/; revision=3046
2002-02-14 00:58:04 +00:00
Jack Moffitt
3807800d82 Fix race condition on thread shutdown.
svn path=/trunk/icecast/; revision=3045
2002-02-14 00:41:57 +00:00
Jack Moffitt
12cbc0a29d Shut down the stats_connection and stats_callback threads cleanly when
stats_shutdown() is called.

svn path=/trunk/icecast/; revision=3044
2002-02-14 00:28:41 +00:00
Michael Smith
cb398ff41c Bunch of fixes:
- connections are now matched to format plugins based on content-type headers,
   and are rejected if there isn't a format handler for that content-type, or
   there is no content-type at all.
 - format_vorbis now handles pages with granulepos of -1 in the headers
   correctly (this happens if the headers are fairly large, because of
   many comments, for example).
 - various #include fixes.
 - buffer overflow in httpp.c fixed.

svn path=/trunk/avl/; revision=3042
2002-02-11 09:11:18 +00:00
Jack Moffitt
4cc0705134 Minor cleanup of 'static' functions.
Fixed usage bug where usage wasn't getting displayed properly.

svn path=/trunk/icecast/; revision=3034
2002-02-08 03:59:17 +00:00
Jack Moffitt
7927f1d31f More win32 fixes.
svn path=/trunk/icecast/; revision=3033
2002-02-08 03:51:19 +00:00
Jack Moffitt
4327a10e45 minor build fixes for win32 courtesy of Oddsock
svn path=/trunk/icecast/; revision=3029
2002-02-07 01:04:09 +00:00
Jack Moffitt
ab0f4cdda8 Factor out common code in stats.c.
svn path=/trunk/icecast/; revision=3027
2002-02-06 07:52:09 +00:00
Jack Moffitt
4144bb05fb A very slightly modified version of oddsocks function to support gui
stats updates.  Basically stats_connection() was copied to
stats_callback() (i should probably factor out some of the code here!)
with the change that instead of sending stats to a socket, it sends the
event to a callback function.

svn path=/trunk/icecast/; revision=3026
2002-02-06 06:11:03 +00:00
Jack Moffitt
c7aa89cf26 Two things:
1) vorbis tags (ARTIST and TITLE) now appear in the stats.  Oddsock did
the first cut of this.

2) stats bug fixed.  if a stats value was NULL a segfault occurred.
strdup(NULL) is fun!

svn path=/trunk/icecast/; revision=3024
2002-02-04 07:08:52 +00:00
Michael Smith
0512d524e4 Allow logging to go to stderr instead of to a file, if the user so chooses
(example configs turn this off, to leave behaviour as it was).

svn path=/trunk/log/; revision=3008
2002-01-29 09:20:28 +00:00
Jack Moffitt
34c6203669 Add a source-timeout config option and implement it. This prevents lame
sources from sticking around way too long.  Default is 10 seconds.

svn path=/trunk/icecast/; revision=2968
2002-01-21 04:28:30 +00:00
Jack Moffitt
4d079ba4cc Make it log to a file when the source gets disconnected
svn path=/trunk/icecast/; revision=2967
2002-01-21 03:56:16 +00:00
Jack Moffitt
b7a114a191 Fix a stupid but that Oddsock and Ciaran both found. When sources log in
we weren't checking to see if the mountpoint was already taken.  Since
the mountpoint was the key in the avl tree, bad things happened.

svn path=/trunk/icecast/; revision=2966
2002-01-21 03:10:37 +00:00
Jack Moffitt
6c0132596f Thanks to Ciaran for realizing that we werne't freeing the format plugins
memory on source exits.  This caused a small but noticable memory leak.

The fix was to add a new method to the format_plugin object -
free_plugin() - and have the source thread call this on shutdown.

svn path=/trunk/icecast/; revision=2946
2002-01-05 00:29:27 +00:00
Jack Moffitt
cbbdb5fc49 Ciaran found this bug. We only ever set tv_usec, but for bitrates around
32 and lower, this will set tv_usec to > 1 second, which wrong.  So we
do it the right way, and put seconds in tv_sec.

svn path=/trunk/timing/; revision=2507
2001-12-09 08:31:20 +00:00
Michael Smith
d22bb9a528 Major stability fixes, to make things work better on bad input. Stops some
memory leaks too, I think.

svn path=/trunk/log/; revision=2326
2001-11-10 04:47:25 +00:00
Jack Moffitt
3eac17e81e Fix for x86 Solaris.
svn path=/trunk/m4/; revision=2275
2001-10-29 16:02:13 +00:00
Jack Moffitt
67bca910f2 Another fix. -mv8 is a Sparc-only option, and gcc will barf if you use it
on x86.

svn path=/trunk/icecast/; revision=2273
2001-10-29 15:53:28 +00:00
Jack Moffitt
7e1f046d0b One more try at this.
svn path=/trunk/icecast/; revision=2271
2001-10-29 15:32:39 +00:00
Jack Moffitt
bb4ea2070f Does this fix x86 Solaris?
svn path=/trunk/icecast/; revision=2269
2001-10-29 15:02:54 +00:00
Jack Moffitt
0b7adda391 Fix SUN_LIBS to apply to x86 Solaris boxen. Who knew someone
actually used x86 Solaris :)

svn path=/trunk/icecast/; revision=2266
2001-10-29 14:55:08 +00:00
Jack Moffitt
c15a877085 Fix broken CFLAGS handling.
svn path=/trunk/icecast/; revision=2238
2001-10-21 16:13:02 +00:00
Jack Moffitt
c9fa9cd040 Fix lib handling.
svn path=/trunk/icecast/; revision=2235
2001-10-21 15:25:45 +00:00
Jack Moffitt
6b116e8b96 AC_CHECK_FUNC is stupid. It needs the LIBS set already, and you can't pass
in a set of libs to use.  So we save/restore for the call.

svn path=/trunk/icecast/; revision=2233
2001-10-21 15:12:23 +00:00
Jack Moffitt
71da57a472 Update AM_PATH_SHOUT macro.
svn path=/trunk/m4/; revision=2231
2001-10-21 14:34:14 +00:00
Jack Moffitt
9cef32cac2 A few configure.in fixes.
* -D_REENTRANT probably needed on all platforms.  Let's not limit it to
  Linux and Solaris.

* AM_PATH_OGG|VORBIS had a slight bug.  We shouldn't update the LIBS until
  after we've detected anything.  Thanks to Michael Pruett <michael@68k.org>
  for finding this.

svn path=/trunk/icecast/; revision=2229
2001-10-21 14:19:39 +00:00
Michael Smith
17e1289a89 configure.in: solaris requires -D_REENTRANT. What about other platforms?
source.c: fix bug in handling non-fatal errors like EAGAIN

svn path=/trunk/icecast/; revision=2225
2001-10-21 10:07:51 +00:00
Jack Moffitt
c98a76ebbd Revert stacksize stuff and changes for the thread module.
svn path=/trunk/icecast/; revision=2223
2001-10-21 02:06:08 +00:00
Jack Moffitt
1902634e50 Revert the stacksize work. It's stupid.
The original patch from Ben Laurie some years ago was needed because
FreeBSD's default stack size was < 8k and this wasn't acceptable.
Both Linux and Solaris had reasonable defaults for stacksize, or grew the
stack as needed to a reasonable size.

Testing today and consulting documentation shows that the default stack
sizes on FreeBSD, Linux, and Solaris are all acceptable.  Linux can grow
to 2MB, 32bit Solaris defaults to 1MB, 64bit Solaris defaults to 2MB, and
FreeBSD defaults to 64k.

In my opinion FreeBSD needs to get with the program and provide a
reasonable default.  64k is enough for us, but might not be for others.

svn path=/trunk/thread/; revision=2222
2001-10-21 02:04:27 +00:00
Jack Moffitt
42e869cd45 Fix icecast for changes in thread module regarding stacksize. For icecast,
the default stacksize is unchanged (8k) until further testing on Solaris
to determine if a larger value is needed.

svn path=/trunk/icecast/; revision=2221
2001-10-20 22:48:29 +00:00
Jack Moffitt
cdf8edb30c Fix header definition.
svn path=/trunk/thread/; revision=2219
2001-10-20 22:40:28 +00:00
Jack Moffitt
62384d6730 Stack size per thread needs to be configurable. Setting it on a global
bases is not enough.  ices and icecast need this to be different, and
if one is interested in tuning memory usage, one will want to alter this
per thread.

svn path=/trunk/thread/; revision=2217
2001-10-20 22:27:52 +00:00
Jack Moffitt
e88030527c Update shout.m4 to fix test for Solaris. This change has already been
propagated to ices.

svn path=/trunk/m4/; revision=2216
2001-10-20 22:10:10 +00:00
Jack Moffitt
2223ecb8c5 Forgot to add new compat.h to Makefile.am. Fixed.
svn path=/trunk/icecast/; revision=2207
2001-10-20 21:29:16 +00:00
Jack Moffitt
42688a8366 Add check for stdint.h, since Solaris doesn't have it. This is needed
on Linux for uint64_t, but Solaris defines this in sys/types.h.  Use check
where appropriate, and also add typedefs for Win32.

svn path=/trunk/icecast/; revision=2206
2001-10-20 21:28:09 +00:00
Jack Moffitt
9e6fddca93 Minor cleanup.
svn path=/trunk/log/; revision=2200
2001-10-20 16:47:01 +00:00
Jack Moffitt
b2f2356c9c Updated the TODO file.
svn path=/trunk/icecast/; revision=2198
2001-10-20 07:59:01 +00:00
Jack Moffitt
3553fce604 Thanks to Akos Maroy <darkeye@tyrell.hu> for this. These variables need to
be uppercase always in order to comply with the HTTP specification.
While not a problem internal to icecast, they were slipping into the log
files and breaking some less-than-robust parsers.

svn path=/trunk/httpp/; revision=2197
2001-10-20 07:40:09 +00:00
Jack Moffitt
632c1e57fb It's too bad we don't have a commit script that smacks me upside the head
when I do stupid things like this.

svn path=/trunk/icecast/; revision=2196
2001-10-20 06:51:29 +00:00
Jack Moffitt
8f6c02365d Win32 fixes. Look how portable this was ;) Just header stuff and some defines.
Whee!

svn path=/trunk/icecast/; revision=2195
2001-10-20 06:43:04 +00:00
Jack Moffitt
71539aa447 Win32 updates. Mostly header fixes and defines for windows. Apparently
interface is a reserved word, so we've renamed one variable.  There's
also no sethostent on win32, and Oddsock seems to think we need
DeleteCriticalSection instead of DestroyCriticalSection.  I was unable
to figure out from msdn.microsoft.com why this was, but I'll trust
Oddsock's judgement.

svn path=/trunk/net/; revision=2194
2001-10-20 05:57:28 +00:00