I have investigated this. The problem is that pygopherd interprets the 'URL:' path as a relative path as specified in [1]. The resulting path ('/ramone/URL:..') is not a valid URL path as in [2] because it does not start with 'URL:' or '/URL'. So it looks like pygopherd is doing the right thing. But the bucktooth FAQ has another entry ([3]) that explicitly mentions the usage of relative URL's in gophermaps.
For the submitter: A workaround is prepending a '/' to the path. This will always work. And note that the usage of port 80 in your example is incorrect: The host and port of a menu line should point to the local gopher server, not the remote URL server, so that it can render a redirection document for old clients. For the maintainer: Attached patch fixes this bug by explicitly checking for this case. [1]: <gopher://gopher.floodgap.com/0/buck/dbrowse%3Ffaquse%201> [2]: <gopher://quux.org/0/Archives/Mailing%20Lists/gopher/gopher.2002-02?/MBOX-MESSAGE/34> [3]: <gopher://gopher.floodgap.com/0/buck/dbrowse?faquse%205> Regards, -- Jeroen Schot
diff -ru pygopherd-2.0.18.3.orig/pygopherd/handlers/gophermap.py pygopherd-2.0.18.3/pygopherd/handlers/gophermap.py --- pygopherd-2.0.18.3.orig/pygopherd/handlers/gophermap.py 2008-03-02 22:51:01.000000000 +0100 +++ pygopherd-2.0.18.3/pygopherd/handlers/gophermap.py 2009-08-18 10:16:49.000000000 +0200 @@ -71,7 +71,7 @@ args[1] = args[0][1:] # Copy display string to selector selector = args[1] - if selector[0] != '/': # Relative link + if not selector.startswith('URL:') and selector[0] != '/': # Relative link selector = selectorbase + '/' + selector entry = gopherentry.GopherEntry(selector, self.config)
signature.asc
Description: Digital signature