* Install the signal handler as late as possible.
* Add new command line options: -v (verbose, use twice for even more verbose
output) and -q (quiet, redirect standard error output from external de-/
encoders to /dev/null.)
* It is now an error to supply more than one -c parameter. This prevents
unexpected results.
* Add a stern warning when ezstream is running as root. Just Don't Do It.
Leaving the configfile writeable to others by accident could mean instant
root compromise.
* Before handing the config file over to libxml, try to open it ourselves
first. The error message from strerror() is a lot more helpful than the
cryption I/O error printed by libxml.
* Don't preallocate memory for urlParse().
* Fix command line error messages, they seem to be for a different program
than Ezstream.
* More terse libshout error messages, just print which function failed.
I consider these errors of questionable value for an end user, but at least
a knowledgeable one will know instantly what went wrong.
* Case insensitive matching of playlist file extensions.
* Print the address, port and mountpoint that Ezstream is actually trying to
connect to, instead of what the user supplied. That should make it easier
to spot reasons for connect failures (e.g. typos.)
Changes in urlParse():
* Let urlParse() allocate memory for hostname and mountpoint, as it knows
how much memory is actually required.
* Fix a buffer overflow of the tmpPort buffer by adding checks and using safe
string functions.
* Let the caller print an error message, instead of having the same printf()
twice in urlParse().
The streamPlaylist() function has been rewritten to use the new playlist_*()
routines. Apart from the added playlist shuffle feature no functional change.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12552 0101bb08-14d6-0310-b084-bc0e0c8e3800
* License reference and various #include cleanups and additions that are
required later.
* Add new usage() and usageHelp() functions (which already contain what's
to come.) Move them close to main() where getopt() is called.
* New signal handler, which now no longer uses printf(). printf() is not safe
to use in signal handlers. Use volatile sig_atomic_t types instead of ints
as flags to set in the handler.
* Formatting and const'ifying of WIN32-basename() and strrcmp(). Rearrange
them so that the actual "worker functions" are grouped together.
* Add function prototypes for those that are already up-to-date.
* Rename ReplaceString() to replaceString() for consistency with other
function names in Ezstream.
* Prepare for portable *__progname usage.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12550 0101bb08-14d6-0310-b084-bc0e0c8e3800
cumbersome to merge separately. They are:
* The usual formatting nitpickings.
* Don't leak memory in case of duplicate entries. Instead make it an error
and print a helpful error message, with config file line number, to the
user.
* Replace the manual cast to (const xmlChar *) with libxml2's BAD_CAST.
There probably won't be any UTF8 support in Ezstream any time soon ...
* Remove redundant strlen() check - xmlNodeListGetString() never returns
an empty string if (cur->xmlChildrenNode != NULL).
* Use xstrdup() instead of malloc() + memset() + strcpy().
* Ensure that boolean configration options are always either 1 or 0.
* Ensure that path names given via <filename /> do not exceed PATH_MAX.
* Add <shuffle /> configuration option for playlist shuffling.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12549 0101bb08-14d6-0310-b084-bc0e0c8e3800
reference, remove prototype of nonexistent getMetadataGrabber() function, and
do some formatting.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12543 0101bb08-14d6-0310-b084-bc0e0c8e3800
autoconf-2.61 for it and remove the annoying _GNU_SOURCE and _XOPEN_SOURCE ...
dung. Autoconf takes care of this, and even checks for more useful stuff for
us.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12537 0101bb08-14d6-0310-b084-bc0e0c8e3800
checks as well: AC_PROG_CC and AC_HEADER_STDC are automatically checked in
packages written in C, no need to do it twice. This shaves a lot off configure
runtime.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12535 0101bb08-14d6-0310-b084-bc0e0c8e3800
Makefile.am. Also let "make clean" clean up coredumps and editor backup files.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12527 0101bb08-14d6-0310-b084-bc0e0c8e3800
number and shifting blame to me. This should keep most of the history in my
local CVS repository. There may be temporary breakages where it doesn't build
or package until I'm done.
git-svn-id: https://svn.xiph.org/trunk/ezstream@12521 0101bb08-14d6-0310-b084-bc0e0c8e3800
fixed a buffer overflow on large id3tags
use pclose for popen'd file handles
git-svn-id: https://svn.xiph.org/trunk/ezstream@10589 0101bb08-14d6-0310-b084-bc0e0c8e3800