diff --git a/src/ezstream.c b/src/ezstream.c index 5069b49..3be3d33 100644 --- a/src/ezstream.c +++ b/src/ezstream.c @@ -133,11 +133,6 @@ urlParse(const char *url, char **hostname, unsigned short *port, size_t hostsiz, mountsiz; const char *errstr; - if (hostname == NULL || port == NULL || mountname == NULL) { - log_alert("urlParse: bad arguments"); - abort(); - } - if (strncmp(url, "http://", strlen("http://")) != 0) { log_error("invalid : not an HTTP address"); return (0); @@ -385,11 +380,6 @@ getMetadataString(const char *format, metadata_t *mdata) { char *tmp, *str; - if (mdata == NULL) { - log_alert("getMetadataString: bad argument"); - abort(); - } - if (format == NULL) return (NULL); @@ -457,11 +447,6 @@ setMetadata(shout_t *shout, metadata_t *mdata, char **mdata_copy) const char *artist, *title; int ret = SHOUTERR_SUCCESS; - if (shout == NULL) { - log_alert("setMetadata: bad argument"); - abort(); - } - if (cfg_no_metadata_updates()) return (SHOUTERR_SUCCESS); @@ -727,11 +712,6 @@ sendStream(shout_t *shout, FILE *filepstream, const char *fileName, struct timeval timeStamp, *startTime = tv; struct timeval callTime, currentTime; - if (startTime == NULL) { - log_alert("sendStream: bad argument"); - abort(); - } - ez_gettimeofday((void *)&callTime); timeStamp.tv_sec = startTime->tv_sec; diff --git a/src/metadata.c b/src/metadata.c index ba8890d..c0870b1 100644 --- a/src/metadata.c +++ b/src/metadata.c @@ -30,6 +30,8 @@ #endif /* HAVE_VORBISFILE */ #include +#include + #include "log.h" #include "metadata.h" #include "util.h" @@ -62,16 +64,16 @@ struct ID3Tag { char genre; }; -metadata_t * metadata_create(const char *); -void metadata_use_taglib(metadata_t *, FILE **); -void metadata_use_self(metadata_t *, FILE **); -void metadata_clean_md(metadata_t *); -void metadata_get_extension(char *, size_t, const char *); -char * metadata_get_name(const char *); -void metadata_process_md(metadata_t *); -void metadata_normalize_string(char **); +static metadata_t * metadata_create(const char *); +static void metadata_use_taglib(metadata_t *, FILE **); +static void metadata_use_self(metadata_t *, FILE **); +static void metadata_clean_md(metadata_t *); +static void metadata_get_extension(char *, size_t, const char *); +static char * metadata_get_name(const char *); +static void metadata_process_md(metadata_t *); +static void metadata_normalize_string(char **); -metadata_t * +static metadata_t * metadata_create(const char *filename) { metadata_t *md; @@ -83,7 +85,7 @@ metadata_create(const char *filename) return (md); } -void +static void metadata_use_taglib(metadata_t *md, FILE **filep) #ifdef HAVE_TAGLIB { @@ -92,11 +94,6 @@ metadata_use_taglib(metadata_t *md, FILE **filep) const TagLib_AudioProperties *ta; char *str; - if (md == NULL || md->filename == NULL) { - log_alert("metadata_use_taglib: bad arguments"); - abort(); - } - if (filep != NULL) fclose(*filep); @@ -149,7 +146,7 @@ metadata_use_taglib(metadata_t *md, FILE **filep) } #endif /* HAVE_TAGLIB */ -void +static void metadata_use_self(metadata_t *md, FILE **filep) #ifdef HAVE_TAGLIB { @@ -164,12 +161,6 @@ metadata_use_self(metadata_t *md, FILE **filep) char extension[25]; struct ID3Tag id3tag; - if (md == NULL || filep == NULL || *filep == NULL || - md->filename == NULL) { - log_alert("metadata_use_self: bad arguments"); - abort(); - } - metadata_clean_md(md); metadata_get_extension(extension, sizeof(extension), md->filename); @@ -244,14 +235,9 @@ metadata_use_self(metadata_t *md, FILE **filep) } #endif /* HAVE_TAGLIB */ -void +static void metadata_clean_md(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_clean_md: bad argument"); - abort(); - } - if (md->string != NULL) { xfree(md->string); md->string = NULL; @@ -266,16 +252,11 @@ metadata_clean_md(metadata_t *md) } } -void +static void metadata_get_extension(char *buf, size_t siz, const char *filename) { char *p; - if (buf == NULL || siz == 0 || filename == NULL) { - log_alert("metadata_get_extension: bad arguments"); - abort(); - } - if ((p = strrchr(filename, '.')) != NULL) strlcpy(buf, p, siz); else @@ -284,17 +265,12 @@ metadata_get_extension(char *buf, size_t siz, const char *filename) *p = tolower((int)*p); } -char * +static char * metadata_get_name(const char *file) { char *filename = xstrdup(file); char *p1, *p2, *name; - if (file == NULL) { - log_alert("metadata_get_name: bad arguments"); - abort(); - } - if ((p1 = basename(filename)) == NULL) { log_alert("basename: unexpected failure with input: %s", filename); @@ -313,14 +289,9 @@ metadata_get_name(const char *file) return (name); } -void +static void metadata_process_md(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_process_md: bad arguments"); - abort(); - } - if (md->string == NULL) md->string = metadata_assemble_string(md); @@ -331,7 +302,7 @@ metadata_process_md(metadata_t *md) } } -void +static void metadata_normalize_string(char **s) { char *str, *cp, *tmpstr, *tp; @@ -367,11 +338,6 @@ metadata_file(const char *filename, int normalize) { metadata_t *md; - if (filename == NULL || strlen(filename) == 0) { - log_alert("metadata_file: bad arguments"); - abort(); - } - md = metadata_create(filename); if (!metadata_file_update(md)) { metadata_free(&md); @@ -393,11 +359,6 @@ metadata_program(const char *program, int normalize) FILE *filep; #endif - if (program == NULL || strlen(program) == 0) { - log_alert("metadata_program: bad arguments"); - abort(); - } - md = metadata_create(program); md->program = 1; md->string = xstrdup(""); @@ -456,15 +417,7 @@ metadata_file_update(metadata_t *md) { FILE *filep; - if (md == NULL) { - log_alert("metadata_file_update: bad argument"); - abort(); - } - - if (md->program) { - log_alert("metadata_file_update: called with program handle"); - abort(); - } + assert(!md->program); if ((filep = fopen(md->filename, "rb")) == NULL) { log_error("%s: %s", md->filename, strerror(errno)); @@ -489,15 +442,7 @@ metadata_program_update(metadata_t *md, enum metadata_request md_req) char buf[METADATA_MAX + 1]; char command[PATH_MAX + sizeof(" artist")]; - if (md == NULL) { - log_alert("metadata_program_update: bad argument"); - abort(); - } - - if (!md->program) { - log_alert("metadata_program_update: called with file handle"); - abort(); - } + assert(md->program); switch (md_req) { case METADATA_ALL: @@ -600,27 +545,13 @@ metadata_program_update(metadata_t *md, enum metadata_request md_req) const char * metadata_get_string(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_get_string: bad argument"); - abort(); - } - - if (md->string == NULL) { - log_alert("metadata_get_string: md->string is NULL"); - abort(); - } - + assert(md->string); return (md->string); } const char * metadata_get_artist(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_get_artist: bad argument"); - abort(); - } - if (md->artist == NULL) return (blankString); else @@ -630,11 +561,6 @@ metadata_get_artist(metadata_t *md) const char * metadata_get_title(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_get_title: bad argument"); - abort(); - } - if (md->title == NULL) return (blankString); else @@ -644,11 +570,6 @@ metadata_get_title(metadata_t *md) const char * metadata_get_filename(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_get_filename: bad argument"); - abort(); - } - if (md->filename == NULL) /* Should never happen: */ return (blankString); @@ -659,11 +580,6 @@ metadata_get_filename(metadata_t *md) int metadata_get_length(metadata_t *md) { - if (md == NULL) { - log_alert("metadata_get_length: bad argument"); - abort(); - } - return (md->songLen); } @@ -673,11 +589,6 @@ metadata_assemble_string(metadata_t *md) size_t len; char *str; - if (md == NULL) { - log_alert("metadata_assemble_string: bad argument"); - abort(); - } - if (md->artist == NULL && md->title == NULL && md->program == 0) return (metadata_get_name(md->filename)); diff --git a/src/playlist.c b/src/playlist.c index e8765d2..845fc95 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -39,12 +39,12 @@ struct playlist { char *prog_track; }; -playlist_t * playlist_create(const char *); -int playlist_add(playlist_t *, const char *); -unsigned int playlist_random(void); -const char * playlist_run_program(playlist_t *); +static playlist_t * playlist_create(const char *); +static int playlist_add(playlist_t *, const char *); +static unsigned int playlist_random(void); +static const char * playlist_run_program(playlist_t *); -playlist_t * +static playlist_t * playlist_create(const char *filename) { playlist_t *pl; @@ -55,16 +55,11 @@ playlist_create(const char *filename) return (pl); } -int +static int playlist_add(playlist_t *pl, const char *entry) { size_t num; - if (pl == NULL || entry == NULL) { - log_alert("playlist_add: bad arguments"); - abort(); - } - num = pl->num + 1; if (pl->size == 0) { @@ -88,7 +83,7 @@ playlist_add(playlist_t *pl, const char *entry) return (1); } -unsigned int +static unsigned int playlist_random(void) { unsigned int ret = 0; @@ -104,6 +99,63 @@ playlist_random(void) return (ret); } +static const char * +playlist_run_program(playlist_t *pl) +{ + FILE *filep; + char buf[PATH_MAX]; + + if (!pl->program) + return (NULL); + + fflush(NULL); + errno = 0; + log_debug("running command: %s", pl->filename); + if ((filep = popen(pl->filename, "r")) == NULL) { + /* popen() does not set errno reliably ... */ + if (errno) + log_error("execution error: %s: %s", pl->filename, + strerror(errno)); + else + log_error("execution error: %s", pl->filename); + return (NULL); + } + + if (fgets(buf, (int)sizeof(buf), filep) == NULL) { + int errnum = errno; + + pclose(filep); + + if (ferror(filep)) { + log_alert("%s: output read error: %s", pl->filename, + strerror(errnum)); + exit(1); + } + + /* No output (end of playlist.) */ + return (NULL); + } + + pclose(filep); + + if (strlen(buf) == sizeof(buf) - 1) { + log_error("%s: output too long", pl->filename); + return (NULL); + } + + buf[strcspn(buf, "\n")] = '\0'; + buf[strcspn(buf, "\r")] = '\0'; + if (buf[0] == '\0') + /* Empty line (end of playlist.) */ + return (NULL); + + if (pl->prog_track != NULL) + xfree(pl->prog_track); + pl->prog_track = xstrdup(buf); + + return ((const char *)pl->prog_track); +} + void playlist_init(void) { @@ -279,11 +331,6 @@ playlist_free(playlist_t **pl_p) const char * playlist_get_next(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_get_next: bad argument"); - abort(); - } - if (pl->program) return (playlist_run_program(pl)); @@ -296,11 +343,6 @@ playlist_get_next(playlist_t *pl) const char * playlist_peek_next(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_peek_next: bad argument"); - abort(); - } - if (pl->program || pl->num == 0) return (NULL); @@ -310,11 +352,6 @@ playlist_peek_next(playlist_t *pl) void playlist_skip_next(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_skip_next: bad argument"); - abort(); - } - if (pl->program || pl->num == 0) return; @@ -325,11 +362,6 @@ playlist_skip_next(playlist_t *pl) unsigned long playlist_get_num_items(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_get_position: bad argument"); - abort(); - } - if (pl->program) return (0); @@ -339,11 +371,6 @@ playlist_get_num_items(playlist_t *pl) unsigned long playlist_get_position(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_get_position: bad argument"); - abort(); - } - if (pl->program) return (0); @@ -353,11 +380,6 @@ playlist_get_position(playlist_t *pl) int playlist_set_position(playlist_t *pl, unsigned long idx) { - if (pl == NULL) { - log_alert("playlist_set_position: bad argument"); - abort(); - } - if (pl->program || idx > pl->num - 1) return (0); @@ -371,11 +393,6 @@ playlist_goto_entry(playlist_t *pl, const char *entry) { unsigned long i; - if (pl == NULL || entry == NULL) { - log_alert("playlist_goto_entry: bad arguments"); - abort(); - } - if (pl->program) return (0); @@ -392,11 +409,6 @@ playlist_goto_entry(playlist_t *pl, const char *entry) void playlist_rewind(playlist_t *pl) { - if (pl == NULL) { - log_alert("playlist_rewind: bad argument"); - abort(); - } - if (pl->program) return; @@ -408,11 +420,6 @@ playlist_reread(playlist_t **plist) { playlist_t *new_pl, *pl; - if (plist == NULL || *plist == NULL) { - log_alert("playlist_reread: bad argument"); - abort(); - } - pl = *plist; if (pl->program) @@ -436,11 +443,6 @@ playlist_shuffle(playlist_t *pl) size_t d, i, range; char *temp; - if (pl == NULL) { - log_alert("playlist_shuffle: bad argument"); - abort(); - } - if (pl->program || pl->num < 2) return; @@ -466,65 +468,3 @@ playlist_shuffle(playlist_t *pl) pl->list[i] = temp; } } - -const char * -playlist_run_program(playlist_t *pl) -{ - FILE *filep; - char buf[PATH_MAX]; - - if (pl == NULL) { - log_alert("playlist_run_program: bad argument"); - abort(); - } - - if (!pl->program) - return (NULL); - - fflush(NULL); - errno = 0; - log_debug("running command: %s", pl->filename); - if ((filep = popen(pl->filename, "r")) == NULL) { - /* popen() does not set errno reliably ... */ - if (errno) - log_error("execution error: %s: %s", pl->filename, - strerror(errno)); - else - log_error("execution error: %s", pl->filename); - return (NULL); - } - - if (fgets(buf, (int)sizeof(buf), filep) == NULL) { - int errnum = errno; - - pclose(filep); - - if (ferror(filep)) { - log_alert("%s: output read error: %s", pl->filename, - strerror(errnum)); - exit(1); - } - - /* No output (end of playlist.) */ - return (NULL); - } - - pclose(filep); - - if (strlen(buf) == sizeof(buf) - 1) { - log_error("%s: output too long", pl->filename); - return (NULL); - } - - buf[strcspn(buf, "\n")] = '\0'; - buf[strcspn(buf, "\r")] = '\0'; - if (buf[0] == '\0') - /* Empty line (end of playlist.) */ - return (NULL); - - if (pl->prog_track != NULL) - xfree(pl->prog_track); - pl->prog_track = xstrdup(buf); - - return ((const char *)pl->prog_track); -}