initialized (the first time it was NULL). After the server is restarted
it retained a pointer to freed memory. We should have been initializing
this anyway.
svn path=/trunk/icecast/; revision=3220
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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