#3570: use of socat with "tunnel" hang forever
--------------------------+-------------------------------------------------
 Reporter:  pierrem       |       Owner:  mutt-dev      
     Type:  defect        |      Status:  infoneeded_new
 Priority:  major         |   Milestone:                
Component:  mutt          |     Version:  1.5.21        
 Keywords:  tunnel socat  |  
--------------------------+-------------------------------------------------
Changes (by me):

  * status:  new => infoneeded_new


Old description:

> Using debian wheezy package mutt 1.5.21-5, and getting the same result
> with /usr/bin/mutt and /usr/bin/mutt-org
>
> using set tunnel='socat STDIO
> SOCKS4A:tor.example.com:imap.gmail.com:imaps,socksport=9100'
> gives the following output when running mutt -d 5:
>
> Connecting with "socat STDIO
> SOCKS4A:tor.example.com:imap.gmail.com:imaps,socksport=9100"...
>
> Connected to imap.gmail.com:993 on fd=42
>
> imap_cmd_step: grew buffer to 512 bytes
>
> and wait forever until I kill the socat process.
> A direct connection to the imap server works fine.
>
> For the same kind of problematic, fetchmail uses the "plugin" parameter
> with the same "socat ..." argument and succeeds in establishing a
> connection through the tor node and fetching mails from the IMAP server.
> The difference I spot is that fetchmail uses one socketpair() where mutt
> uses two pipe().
>
> When I modify the tunnel_socket_read() and tunnel_socket_write()
> functions in mutt_tunnel.c with mutt_message() to print in the debug log
> what is read from or written to the tunnel, nothing appears. It seems
> that nothing is sent through the tunnel.
>
> That would be nice if someone with a good understanding of this code
> could fix this.
>
> thanks

New description:

 Using debian wheezy package mutt 1.5.21-5, and getting the same result
 with /usr/bin/mutt and /usr/bin/mutt-org

 using set tunnel='socat STDIO
 SOCKS4A:tor.example.com:imap.gmail.com:imaps,socksport=9100'
 gives the following output when running mutt -d 5:

 Connecting with "socat STDIO
 SOCKS4A:tor.example.com:imap.gmail.com:imaps,socksport=9100"...

 Connected to imap.gmail.com:993 on fd=42

 imap_cmd_step: grew buffer to 512 bytes

 and wait forever until I kill the socat process.
 A direct connection to the imap server works fine.

 For the same kind of problematic, fetchmail uses the "plugin" parameter
 with the same "socat ..." argument and succeeds in establishing a
 connection through the tor node and fetching mails from the IMAP server.
 The difference I spot is that fetchmail uses one socketpair() where mutt
 uses two pipe().

 When I modify the tunnel_socket_read() and tunnel_socket_write() functions
 in mutt_tunnel.c with mutt_message() to print in the debug log what is
 read from or written to the tunnel, nothing appears. It seems that nothing
 is sent through the tunnel.

 That would be nice if someone with a good understanding of this code could
 fix this.

 thanks

--

Comment:

 If I'm understanding the socat man page correctly, I think the problem is
 that mutt can't do SSL over the tunnel.  I'm not sure if you can make
 socat do the SSL negotiation itself.  Mutt expects to speak the IMAP
 protocol directly over the tunnel socket.

-- 
Ticket URL: <http://dev.mutt.org/trac/ticket/3570#comment:1>
Mutt <http://www.mutt.org/>
The Mutt mail user agent

Reply via email to