Commit Graph

51 Commits

Author SHA1 Message Date
J. Alexander Treuman
9bdb0b0df2 Adding support for seeking HTTP streams.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5159 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 19:57:28 +00:00
Eric Wong
90847fc881 Replace strdup and {c,re,m}alloc with x* variants to check for OOM errors
I'm checking for zero-size allocations and assert()-ing them,
so we can more easily get backtraces and debug problems, but we'll
also allow -DNDEBUG people to live on the edge if they wish.

We do not rely on errno when checking for OOM errors because
some implementations of malloc do not set it, and malloc
is commonly overridden by userspace wrappers.

I've spent some time looking through the source and didn't find any
obvious places where we would explicitly allocate 0 bytes, so we
shouldn't trip any of those assertions.

We also avoid allocating zero bytes because C libraries don't
handle this consistently (some return NULL, some not); and it's
dangerous either way.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:57 +00:00
Eric Wong
263a9d583a remove clumsy strncpy use
strncpy isn't really safe because it doesn't guarantee null termination,
and we have had to work around it in several places.
strlcpy (from OpenBSD) isn't great, either because it often leaves
errors going unchecked (by truncating strings).

So we'll add the pathcpy_trunc() function with is basically strlcpy
with a hardcoded MAXPATHLEN as the limit, and we'll acknowledge
truncation since we only work on paths and MAXPATHLEN should be
set correctly by the system headers[1].

file-specific notes:

inputStream_http:
eyeballing the changes here, it seems to look alright but I
haven't actually tested it myself.

ls:
don't even bother printing a file if the filename is too long
(and when is it ever?) since we won't be able to read it anyways.

metadataChunk:
it's only metadata, and it's only for showin the user, so truncating
it here souldn't be a big issue.
memset to zero in init is unecessary, so lets not waste cycles

[1] - If the system headers are screwed up, then we're majorly
screwed regardless of what we do :x

git-svn-id: https://svn.musicpd.org/mpd/trunk@4491 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 10:31:41 +00:00
Avuton Olrich
00e67be7c9 Add mpd-indent.sh
Add a few new options for indent to try to make
things a bit cleaner

git-svn-id: https://svn.musicpd.org/mpd/trunk@4411 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20 18:53:56 +00:00
Avuton Olrich
29a25b9933 Add mpd-indent.sh
Indent the entire tree, hopefully we can keep
it indented.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20 16:02:40 +00:00
Eric Wong
a234780aab sparse: ANSI-fy function declarations
These are just warnings from sparse, but it makes the output
easier to read.  I ran this through a quick perl script, but
of course verified the output by looking at the diff and making
sure the thing still compiles.

here's the quick perl script I wrote to generate this patch:
----------- 8< -----------
use Tie::File;
defined(my $pid = open my $fh, '-|') or die $!;
if (!$pid) {
open STDERR, '>&STDOUT' or die $!;
exec 'sparse', @ARGV or die $!;
}
my $na = 'warning: non-ANSI function declaration of function';
while (<$fh>) {
print STDERR $_;
if (/^(.+?\.[ch]):(\d+):(\d+): $na '(\w+)'/o) {
my ($f, $l, $pos, $func) = ($1, $2, $3, $4);
$l--;
tie my @x, 'Tie::File', $f or die "$!: $f";
print '-', $x[$l], "\n";
$x[$l] =~ s/\b($func\s*)\(\s*\)/$1(void)/;
print '+', $x[$l], "\n";
untie @x;
}
}

git-svn-id: https://svn.musicpd.org/mpd/trunk@4378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-17 00:15:34 +00:00
J. Alexander Treuman
2fa7125cce Change shank's email address
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 19:37:45 +00:00
Avuton Olrich
a37348a74f Huge header update, update the copyright and add
the GPL header where necessary

git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13 19:20:34 +00:00
Eric Wong
d11e19548c inputStream_http: avoid printf, use our handy macros in log.h
git-svn-id: https://svn.musicpd.org/mpd/trunk@4210 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-05-21 01:36:49 +00:00
Qball Cow
1ca85d5ec7 Applied a modified patch for bug 344, needs testing with ipv6
git-svn-id: https://svn.musicpd.org/mpd/trunk@4171 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-05-14 11:40:34 +00:00
Eric Wong
6963502213 merge with mpd/trunk up to r3925
git-svn-id: https://svn.musicpd.org/mpd/trunk@3926 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-03-16 06:52:46 +00:00
Eric Wong
89fc5da5d9 inputStream_http.c: speling fikcses
git-svn-id: https://svn.musicpd.org/mpd/trunk@3921 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-03-15 08:13:35 +00:00
Warren Dukes
b1122062de fix some parsing of http_prebuffer_size
git-svn-id: https://svn.musicpd.org/mpd/trunk@3216 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-04-17 18:51:03 +00:00
Warren Dukes
1c8b2de44b change the http identification string to package_name/package_version
git-svn-id: https://svn.musicpd.org/mpd/trunk@2896 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-01-23 03:27:53 +00:00
Warren Dukes
26e943c025 fix oss_openDevice() to match the new openDevice callback protocol (w/o a audioFormat argument)
git-svn-id: https://svn.musicpd.org/mpd/trunk@2715 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-20 14:44:01 +00:00
Warren Dukes
c104801a67 not too smart shank, forgetting to set default buffer sizes in inputStream_http
git-svn-id: https://svn.musicpd.org/mpd/trunk@2513 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-05 05:11:23 +00:00
Warren Dukes
bc3019dc69 make http buffer and prebuffer size configurable
git-svn-id: https://svn.musicpd.org/mpd/trunk@2479 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-02 18:53:38 +00:00
Warren Dukes
58dbe4bb5d merge shank-rewrite-config changes
git-svn-id: https://svn.musicpd.org/mpd/trunk@2375 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-10-28 05:14:55 +00:00
Warren Dukes
f20de32d0d fix segfault when reconnecting to icecast server, this was due to error sending metadata and not checking afterward if connection is open still
git-svn-id: https://svn.musicpd.org/mpd/trunk@2349 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-10-26 12:56:10 +00:00
Warren Dukes
61a88f1692 stream name maybe icy-name or ice-name in the http headers
git-svn-id: https://svn.musicpd.org/mpd/trunk@2339 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-10-25 20:52:28 +00:00
Warren Dukes
4951f9f809 fix bug #325
git-svn-id: https://svn.musicpd.org/mpd/trunk@2270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-10-18 14:47:29 +00:00
Warren Dukes
8205e1bbc7 fix a bug in username and password parsing in http url's
git-svn-id: https://svn.musicpd.org/mpd/trunk@1877 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-07-18 17:58:42 +00:00
Warren Dukes
3edf331543 added http authentication: http://user:passwd@host/music
git-svn-id: https://svn.musicpd.org/mpd/trunk@1872 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-07-17 13:41:31 +00:00
Warren Dukes
49455434f4 don't use fucking sprintf
git-svn-id: https://svn.musicpd.org/mpd/trunk@1596 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-21 00:48:34 +00:00
Warren Dukes
e0cbce6d38 maybe this matters ?
git-svn-id: https://svn.musicpd.org/mpd/trunk@1595 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-21 00:47:18 +00:00
Warren Dukes
fd229dae57 maybe this fixes something ?
git-svn-id: https://svn.musicpd.org/mpd/trunk@1594 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-21 00:39:08 +00:00
Warren Dukes
b7dcbb1bb3 http proxy authentication, can someone test?
git-svn-id: https://svn.musicpd.org/mpd/trunk@1590 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20 21:16:02 +00:00
Warren Dukes
ba798c5e65 http proxy mostly working, need to implement http authentication
git-svn-id: https://svn.musicpd.org/mpd/trunk@1588 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20 20:15:05 +00:00
Warren Dukes
6eb6c454be fix qball's bug, crossfading playing with funny samplerate
git-svn-id: https://svn.musicpd.org/mpd/trunk@1585 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20 17:07:13 +00:00
Warren Dukes
cbc2825a33 include sys/time.h
git-svn-id: https://svn.musicpd.org/mpd/trunk@1522 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-17 15:05:15 +00:00
Warren Dukes
051cfc228d fix bug where inputStream_httpRead was returning 0 when cnnection closed,
but data is still left in the buffer

git-svn-id: https://svn.musicpd.org/mpd/trunk@1425 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-09 18:28:18 +00:00
Warren Dukes
d5f7a7745a debug code for stream name/title
git-svn-id: https://svn.musicpd.org/mpd/trunk@1415 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-09 16:32:40 +00:00
Warren Dukes
1760433061 remove metadata debugging code
git-svn-id: https://svn.musicpd.org/mpd/trunk@1378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07 20:47:00 +00:00
Warren Dukes
33a147b31e remove the initial and trailing ' from the icy StreamTitle that shoutcast
likes to insert

git-svn-id: https://svn.musicpd.org/mpd/trunk@1366 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07 05:21:55 +00:00
Warren Dukes
283e34eaae icy metadata! wahoo
still lots some debug code with print out's, so don't bitch about it!

git-svn-id: https://svn.musicpd.org/mpd/trunk@1364 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07 05:00:56 +00:00
Warren Dukes
7e78fb455c remove some debug code
git-svn-id: https://svn.musicpd.org/mpd/trunk@1282 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-01 12:53:25 +00:00
Warren Dukes
c38fcd30c7 icyName fix
git-svn-id: https://svn.musicpd.org/mpd/trunk@1271 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-01 01:28:40 +00:00
Warren Dukes
000e053ce7 icynames are now copied to title of streams
git-svn-id: https://svn.musicpd.org/mpd/trunk@1258 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 11:42:46 +00:00
Warren Dukes
fd6aa25359 mp3 and ogg plugin stuff
git-svn-id: https://svn.musicpd.org/mpd/trunk@1245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 01:21:17 +00:00
Warren Dukes
8c261f1885 put icyName debug info
git-svn-id: https://svn.musicpd.org/mpd/trunk@1151 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-24 23:45:11 +00:00
Warren Dukes
547e358796 do input buffering in while sleeping loop of sending stuff to output buffer
git-svn-id: https://svn.musicpd.org/mpd/trunk@1125 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-21 22:31:07 +00:00
Warren Dukes
0b05109416 more bug fixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1108 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-20 04:32:38 +00:00
Warren Dukes
4db5224b47 ogg stream playing! some non-blocking seek bug fixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1105 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-20 03:44:33 +00:00
Warren Dukes
3e659738ba todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@1094 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-19 17:14:11 +00:00
Warren Dukes
00fa2e38e7 disable prebuffering in the beginning for now
git-svn-id: https://svn.musicpd.org/mpd/trunk@1068 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 19:37:43 +00:00
Warren Dukes
a19a79227c streaming fixes and such, now it seems to work good, what an annoying bug
to find

git-svn-id: https://svn.musicpd.org/mpd/trunk@1066 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 19:32:05 +00:00
Warren Dukes
c51ad71efa rework stuff so that we can use mime-type of streams to detect type of file
git-svn-id: https://svn.musicpd.org/mpd/trunk@1062 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 13:13:55 +00:00
Warren Dukes
6c24180516 inputStream updates from httpTest
git-svn-id: https://svn.musicpd.org/mpd/trunk@1059 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 09:54:45 +00:00
Warren Dukes
d4c7d6df6d can parse inputStream_http can parse mime type
git-svn-id: https://svn.musicpd.org/mpd/trunk@1056 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 09:34:22 +00:00
Warren Dukes
06422f729b bug fixes for playing streams
git-svn-id: https://svn.musicpd.org/mpd/trunk@1053 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 04:04:54 +00:00