[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#26501: [PATCH 1/1] gnu: mutt: Update to 1.8.1.
From: |
Ludovic Courtès |
Subject: |
bug#26501: [PATCH 1/1] gnu: mutt: Update to 1.8.1. |
Date: |
Tue, 18 Apr 2017 10:08:57 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Leo Famulari <address@hidden> skribis:
> On Mon, Apr 17, 2017 at 11:22:17PM +0200, Ludovic Courtès wrote:
>> Leo Famulari <address@hidden> skribis:
>>
>> > On Sun, Apr 16, 2017 at 11:57:25AM +0200, Ludovic Courtès wrote:
>> >> Leo Famulari <address@hidden> skribis:
>> >> >> (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
>> >> >> version ".tar.gz"))
>> >> >
>> >> > I found that Guix's FTP client is having trouble with this URL. It hangs
>> >> > until it times out; other clients like wget and Firefox work fine.
>> >>
>> >> I can’t reproduce this problem with Guix master (‘guix download’) and
>> >> Guile 2.2 or 2.0. Do you have more details?
>> >
>> > Strace shows it hangs here:
>> >
>> > [pid 4066] connect(13, {sa_family=AF_INET6, sin6_port=htons(60512),
>> > inet_pton(AF_INET6, "2600:3402:200:227::2", &sin6_addr),
>> > sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28
>> >
>> > When I disable IPv6, it works. I can use other FTP clients over IPv6 to
>> > download this file.
>>
>> And what does strace give for those other FTP clients? The port number
>> looks fishy.
>
> I'm out of my depth, but here is what I believe is the relevant portion
> of the strace output while using wget (full strace log attached):
>
> connect(3, {sa_family=AF_INET, sin_port=htons(0),
> sin_addr=inet_addr("140.211.166.134")}, 16) = -1 ENETUNREACH (Network is
> unreachable)
> close(3) = 0
> socket(AF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
> connect(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6,
> "2600:3402:200:227::2", &sin6_addr), sin6_flowinfo=htonl(0),
> sin6_scope_id=0}, 28) = 0
> getsockname(3, {sa_family=AF_INET6, sin6_port=htons(59772),
> inet_pton(AF_INET6, "2601:47:4101:9916:2d39:1eca:471f:95be", &sin6_addr),
> sin6_flowinfo=htonl(0), sin6_scope_id=0}, [28]) = 0
> connect(3, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16)
> = 0
> connect(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6,
> "2600:3404:200:237::2", &sin6_addr), sin6_flowinfo=htonl(0),
> sin6_scope_id=0}, 28) = 0
> getsockname(3, {sa_family=AF_INET6, sin6_port=htons(33848),
> inet_pton(AF_INET6, "2601:47:4101:9916:2d39:1eca:471f:95be", &sin6_addr),
> sin6_flowinfo=htonl(0), sin6_scope_id=0}, [28]) = 0
> connect(3, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16)
> = 0
> connect(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6,
> "2605:bc80:3010::134", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0},
> 28) = 0
> getsockname(3, {sa_family=AF_INET6, sin6_port=htons(55724),
> inet_pton(AF_INET6, "2601:47:4101:9916:2d39:1eca:471f:95be", &sin6_addr),
> sin6_flowinfo=htonl(0), sin6_scope_id=0}, [28]) = 0
Weird, could you try this at the Guile REPL?
--8<---------------cut here---------------start------------->8---
scheme@(guix ftp-client)> ,use(srfi srfi-1)
scheme@(guix ftp-client)> (filter (lambda (ai)
(= AF_INET6 (addrinfo:fam ai)))
(getaddrinfo "ftp.mutt.org" "ftp"))
$12 = (#(0 10 1 6 #(10 50511718684201498269534063486220369922 21 0 0) #f) #(0
10 1 6 #(10 50511718842657823593210643852661096450 21 0 0) #f) #(0 10 1 6 #(10
50540448573204388932900632194751398196 21 0 0) #f))
scheme@(guix ftp-client)> (map (compose sockaddr:port addrinfo:addr) $12)
$13 = (21 21 21)
--8<---------------cut here---------------end--------------->8---
Here I get port 21 every time. If I connect to the first one, I get:
connect(14, {sa_family=AF_INET6, sin6_port=htons(21), inet_pton(AF_INET6,
"2600:3402:200:227::2", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0},
28) = -1 ENETUNREACH (Network is unreachable)
… which is as expected (well, no IPv6 here, but the arguments to
‘connect’ look good.)
Thanks,
Ludo’.