8 our @EXPORT = qw(ng_parse_uri ng_parse_menu ng_parse_response);
11 my $uri = $_[0] || '';
12 $uri =~ s/gopher:\/\///;
14 my ($long_host, $selector) = split /\//, $uri;
15 my ($host, $port) = split /:/, $long_host;
16 $port = $port || 32070; # default port
18 return ($host, $port, $selector);
22 my ($data, $host, $port) = @_;
23 my @items = split /\r\n/, $data;
27 my ($combined, $selector, $_host, $_port) = split /\t/;
28 my $type = substr $combined, 0, 1;
29 my $name = substr $combined, 1;
31 if (!$_port || !($_port =~ /\d+/)) { $_port = 0; }
35 'selector' => $selector,
36 'host' => ($_host ?
$_host : $host),
37 'port' => ($_port ?
int($_port) : $port),
44 sub ng_parse_response
{
47 my $mimetype = 'unknown';
48 if ($data =~ /(\d+)\t(.+)\r/) {
53 return ($size, $mimetype, $data);