gnump3d-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnump3d-devel] search.pm bug ?


From: Chris Tracy
Subject: Re: [Gnump3d-devel] search.pm bug ?
Date: Tue, 15 May 2007 12:57:22 -0400
User-agent: Mutt/1.5.15 (2007-04-06)

I found that the 'random directory' function was also broken for
directories that contained weird characters, such as '+'.  The HTTP
header is written out to the client and includes 'Location: /$random'
but $random was never passed through urlEncode().

I applied a similar fix to random.pm, and now it works:

$ diff random.pm.orig random.pm
525c525
<       $random= $1;
---
>       $random= urlEncode($1);

-Chris


On Mon, May 14, 2007 at 11:45:10PM -0400, Chris Tracy wrote:
> Hello,
> 
> A friend recently told me about gnump3d and I have found it
> *extremely* useful but I came across what appears to be a bug.  Here
> is a description of the problem I was having and my solution..
> 
> Any time that I would do a search, the links to the individual songs
> would be broken if there were characters in the filenames/directories
> like '+' or '~'.
> 
> For example, if I looked at the page source of the search results
> page, the URLs were not escaped/encoded.  They contained spaces
> instead of %20, and '+' instead of %2B.  So, you would click on a file
> and get a message from gnump3d saying: 
> 
> ''The requested file
> /mp3/__music/%20%2000__incoming/hip-hop/blah.mp3.m3u couldn't be
> found. Please try returning to the index.''
> 
> That directory is really called '++00__incoming', not '  00__incoming'.
> 
> It turns out that in search.pm, when the table entries for $entry are
> being built up, the URLs are built without any escaping ever being
> done.  Typically I use URI::Escape for such things, but I found that
> this functionality is performed by url.pm in gnump3d, so I have made
> the following change to search.pm to fix this behavior.  So far, it
> seems to work well in my environment:
> 
> $ diff -u ./lib/gnump3d/plugins/search.pm 
> /usr/share/perl5/gnump3d/plugins/search.pm
> --- ./lib/gnump3d/plugins/search.pm     2007-04-22 10:19:10.000000000 -0400
> +++ /usr/share/perl5/gnump3d/plugins/search.pm  2007-05-14 23:22:55.000000000 
> -0400
> @@ -424,7 +424,7 @@
> 
> 
>                             # Now build up the display line.
> -                           $entry = "<tr><td align='left'><a 
> href=\"http://$host$entry$extension$bitrate\";>$display</a></td><td 
> align='left'><a href=\"$encodedDir\">$directory</a></td></tr>\n";
> +                           $entry = "<tr><td align='left'><a 
> href=\"http://$host"; . urlEncode($entry . $extension . $bitrate) . 
> "\">$display</a></td><td align='left'><a 
> href=\"$encodedDir\">$directory</a></td></tr>\n";
> 
>                             # Add it to the output..
>                             $total .= $entry;
> 
> 
> I'm sure current search works just fine for people that do not have
> weird characters in their directories/filenames.
> 
> I'm really interested in the jukebox functionality -- I think having
> gnump3d control a stream to a local server would be another great use
> for this software.  I have accomplished something like this using zina
> + muse.  zina has a config parameter that allows you to, say, run
> mpg123 on the server.  Instead I have it put muse in the background,
> which will stream the .m3u to a local shoutcast server...(eventually
> would like this to integrate with other radio station automation
> tools..)
> 
> Thanks!
> -Chris
> 
> -- 
> Chris Tracy
> Mid-Atlantic Crossroads (MAX)
> Office phone: 301.314.6655
> GPG key: 0xB3B9C93D
> 
> 
> _______________________________________________
> Gnump3d-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnump3d-devel

-- 
Chris Tracy
Mid-Atlantic Crossroads (MAX)
Office phone: 301.314.6655
GPG key: 0xB3B9C93D




reply via email to

[Prev in Thread] Current Thread [Next in Thread]