git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git send-email doesn't work with IPv6 and STARTTLS
@ 2014-04-30 19:43 Matthias-Christian Ott
  2014-05-01 18:05 ` Jonathan Nieder
  0 siblings, 1 reply; 5+ messages in thread
From: Matthias-Christian Ott @ 2014-04-30 19:43 UTC (permalink / raw)
  To: git

$ git --version
git version 1.8.5.5

git send-email uses Net::SMTP connections that use STARTTLS. Net::SMTP
does not support IPv6. I patched Net:SMTP to use IO::Socket::INET6 and
it worked.

- Matthias-Christian Ott

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git send-email doesn't work with IPv6 and STARTTLS
  2014-04-30 19:43 git send-email doesn't work with IPv6 and STARTTLS Matthias-Christian Ott
@ 2014-05-01 18:05 ` Jonathan Nieder
  2014-05-01 20:44   ` Matthias-Christian Ott
  2014-05-01 20:48   ` Steffen Ullrich
  0 siblings, 2 replies; 5+ messages in thread
From: Jonathan Nieder @ 2014-05-01 18:05 UTC (permalink / raw)
  To: Matthias-Christian Ott; +Cc: git, Steffen_Ullrich

Hi,

Matthias-Christian Ott wrote[1]:

> git send-email uses Net::SMTP connections that use STARTTLS. Net::SMTP
> does not support IPv6. I patched Net:SMTP to use IO::Socket::INET6 and
> it worked.

Thanks for reporting.

 1. What version of Net::SMTP do you use?

 2. Would you be willing to contribute your patch to Net::SMTP upstream,
    for example by mailing it to bug-libnet@rt.cpan.org with
    the string "[rt.cpan.org #93823]" somewhere in the subject line[2]?

Hope that helps,
Jonathan

[1] http://thread.gmane.org/gmane.comp.version-control.git/247769
[2] https://rt.cpan.org/Public/Bug/Display.html?id=93823
https://rt.cpan.org/NoAuth/RT/CPAN/Usage.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git send-email doesn't work with IPv6 and STARTTLS
  2014-05-01 18:05 ` Jonathan Nieder
@ 2014-05-01 20:44   ` Matthias-Christian Ott
  2014-05-01 20:48   ` Steffen Ullrich
  1 sibling, 0 replies; 5+ messages in thread
From: Matthias-Christian Ott @ 2014-05-01 20:44 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: git, Steffen_Ullrich

On 05/01/14 20:05, Jonathan Nieder wrote:
> Hi,

Hi,

> Matthias-Christian Ott wrote[1]:
> 
>> git send-email uses Net::SMTP connections that use STARTTLS. Net::SMTP
>> does not support IPv6. I patched Net:SMTP to use IO::Socket::INET6 and
>> it worked.
> 
> Thanks for reporting.
> 
>  1. What version of Net::SMTP do you use?

Included in Perl:

Summary of my perl5 (revision 5 version 16 subversion 3) configuration:

  Platform:
    [...]
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    [...]
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    [...]
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    [...]
  Dynamic Linking:
    [...]


Characteristics of this binary (from libperl):
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
  Locally applied patches:
	gentoo/EUMM-RUNPATH - https://bugs.gentoo.org/105054
cpan/ExtUtils-MakeMaker: drop $PORTAGE_TMPDIR from LD_RUN_PATH
	gentoo/EUMM_delete_packlist - Don't install .packlist or perllocal.pod
for perl or vendor
	gentoo/config_over - Remove -rpath and append LDFLAGS to lddlflags
	gentoo/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for
modules installed from CPAN.
	gentoo/cpanplus_definstalldirs - Configure CPANPLUS to use the site
directories by default.
	gentoo/create_libperl_soname - https://bugs.gentoo.org/286840 Set
libperl soname
	gentoo/drop_fstack_protector - https://bugs.gentoo.org/348557 Don't
force -fstack-protector on everyone.
	gentoo/enc2xs - https://bugs.gentoo.org/338802 Tweak enc2xs to ignore
missing @INC directories
	gentoo/mod_paths - Add /etc/perl to @INC
	gentoo/patchlevel - List packaged patches for perl-5.16.3(#1) in
patchlevel.h
	gentoo/aix_soname - aix gcc detection and shared library soname support
	gentoo/solaris-relocation - Fix lddlflags for solaris
	gentoo/opensolars_headers - Add headers for opensolaris
	gentoo/cleanup-paths - Cleanup PATH and shrpenv
	gentoo/usr_local - Remove /usr/local paths
	gentoo/hints_hpux - Fix hpux hints
	gentoo/darwin-cc-ld - https://bugs.gentoo.org/297751 darwin: Use $CC to
link
	gentoo/mint - [perl #89502] Mint fixes
	gentoo/interix - Fix interix hints
	fixes/maketext-code-execution - [1735f6f] http://bugs.gentoo.org/448632
Fix misparsing of maketext strings.
	fixes/cgi-cr-escaping - https://bugs.gentoo.org/443446 CR escaping for
P3P and Set-Cookie headers
	debian/cpan-missing-site-dirs - https://bugs.gentoo.org/422981 Fix
CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable

[...]

>  2. Would you be willing to contribute your patch to Net::SMTP upstream,
>     for example by mailing it to bug-libnet@rt.cpan.org with
>     the string "[rt.cpan.org #93823]" somewhere in the subject line[2]?

I just did s/INET/INET6/g. I don't know Perl, so I guess Seffen Ullrich
could help here more than I can.

Regards
Matthias-Christian

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git send-email doesn't work with IPv6 and STARTTLS
  2014-05-01 18:05 ` Jonathan Nieder
  2014-05-01 20:44   ` Matthias-Christian Ott
@ 2014-05-01 20:48   ` Steffen Ullrich
  2014-05-01 20:55     ` Jonathan Nieder
  1 sibling, 1 reply; 5+ messages in thread
From: Steffen Ullrich @ 2014-05-01 20:48 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: Matthias-Christian Ott, git


Hi,

Net::SMTP does neither supports SSL nor IPv6.

git-send-mail does not use Net::SMTP directly for SSL support, but:
- for direct connections (port 465) it uses Net::SMTP::SSL which just
  replaces the superclass if Net::SMTP with IO::Socket::SSL and thus
  implicitly supports IPv6 (because IO::Socket::SSL does)
- for plain connections with SSL upgrade git-send-mail uses Net::SMTP for
  the initial connect and then does Net::SMTP::SSL->start_SSL (e.g.
  inherited from IO::Socket::SSL) to upgrade the socket to SSL.

The problem here is that Net::SMTP does not support IPv6, but this
should be solvable by using Net::INETGlue::INET_is_INET6 before loading
Net::SMTP.

But all these tricks are just workarounds for missing IPv6 and SSL support
directly in the Net::SMTP, Net::FTP and Net::POP3.
I therefore repeat my proposal from RT#93823 (no response yet) to add
transparent support for IPv6 and SSL into these modules. By transparent I
mean that the features are available if the necessary modules are installed
(e.g. IO::Socket::SSL for SSL and IO::Socket::INET6 or IO::Socket::IP for
IPv6), but that it works like before if they are not installed.

I don't have these patches yet, but most of the necessary code is already
there in Net::SSLGlue and Net::INET6Glue.
Would you accept and incorporate such patches?

Regards,
Steffen

On Thu, May 01, 2014 at 11:05:46AM -0700, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Hi,
> 
> Matthias-Christian Ott wrote[1]:
> 
> > git send-email uses Net::SMTP connections that use STARTTLS. Net::SMTP
> > does not support IPv6. I patched Net:SMTP to use IO::Socket::INET6 and
> > it worked.
> 
> Thanks for reporting.
> 
>  1. What version of Net::SMTP do you use?
> 
>  2. Would you be willing to contribute your patch to Net::SMTP upstream,
>     for example by mailing it to bug-libnet@rt.cpan.org with
>     the string "[rt.cpan.org #93823]" somewhere in the subject line[2]?
> 
> Hope that helps,
> Jonathan
> 
> [1] http://thread.gmane.org/gmane.comp.version-control.git/247769
> [2] https://rt.cpan.org/Public/Bug/Display.html?id=93823
> https://rt.cpan.org/NoAuth/RT/CPAN/Usage.html

-- 
genua
Gesellschaft fuer Netzwerk- und Unix-Administration mbH
Domagkstrasse 7, 85551 Kirchheim bei Muenchen
tel +49 89 991950-0, fax -999, www.genua.de
Geschaeftsfuehrer: Dr. Magnus Harlander, Dr. Michaela Harlander,
Bernhard Schneck. Amtsgericht Muenchen HRB 98238

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git send-email doesn't work with IPv6 and STARTTLS
  2014-05-01 20:48   ` Steffen Ullrich
@ 2014-05-01 20:55     ` Jonathan Nieder
  0 siblings, 0 replies; 5+ messages in thread
From: Jonathan Nieder @ 2014-05-01 20:55 UTC (permalink / raw)
  To: Steffen Ullrich; +Cc: Matthias-Christian Ott, git

Hi,

Steffen Ullrich wrote:

> git-send-mail does not use Net::SMTP directly for SSL support, but:
> - for direct connections (port 465) it uses Net::SMTP::SSL which just
>   replaces the superclass if Net::SMTP with IO::Socket::SSL and thus
>   implicitly supports IPv6 (because IO::Socket::SSL does)
> - for plain connections with SSL upgrade git-send-mail uses Net::SMTP for
>   the initial connect and then does Net::SMTP::SSL->start_SSL (e.g.
>   inherited from IO::Socket::SSL) to upgrade the socket to SSL.
>
> The problem here is that Net::SMTP does not support IPv6, but this
> should be solvable by using Net::INETGlue::INET_is_INET6 before loading
> Net::SMTP.

Sounds like a good change, fwiw.  Even after Net::SMTP is fixed, it
would be useful as a way to make sure git works well with old versions
of Net::SMTP too.

> But all these tricks are just workarounds for missing IPv6 and SSL support
> directly in the Net::SMTP, Net::FTP and Net::POP3.
> I therefore repeat my proposal from RT#93823 (no response yet) to add
> transparent support for IPv6 and SSL into these modules. By transparent I
> mean that the features are available if the necessary modules are installed
> (e.g. IO::Socket::SSL for SSL and IO::Socket::INET6 or IO::Socket::IP for
> IPv6), but that it works like before if they are not installed.
>
> I don't have these patches yet, but most of the necessary code is already
> there in Net::SSLGlue and Net::INET6Glue.
> Would you accept and incorporate such patches?

Thanks for a kind offer.  I am not Net::SMTP upstream, but I'd be
happy to work with upstream to get such patches applied.

Thanks for your work,
Jonathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-05-01 21:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-30 19:43 git send-email doesn't work with IPv6 and STARTTLS Matthias-Christian Ott
2014-05-01 18:05 ` Jonathan Nieder
2014-05-01 20:44   ` Matthias-Christian Ott
2014-05-01 20:48   ` Steffen Ullrich
2014-05-01 20:55     ` Jonathan Nieder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).