Thread (7 messages) flat view 7 messages, 5 authors, 2016-06-15

Re: [PATCH/RFC] daemon.c: replace inet_ntop with getnameinfo

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:46:43

Benjamin Kramer schrieb:
git daemon has a feature called interpolated paths

If git daemon is started like this:
    git daemon --interpolated-path=%IP/%D
(the machine has two IPs: 123.123.123.123 (v4) and 2001:db8::1 (v6))
and someone clones a repository:
    git clone git://123.123.123.123/frotz
git daemon will look for the repository in the directory
`123.123.123.123/frotz'

But if git daemon listens on the IPv6 interface and someone clones a
repository:
    git clone git://2001:db8::1/frotz
Then git daemon will look for the repository in `0.0.0.0/frotz'

My patch makes it converting IPv6 addresses properly and if you the clone
in my previous example it'll now look in `2001:db8::1/frotz' (with
colons in the
directory name)
I don't particularly care about git-daemon on Windows at this time because
we don't build it anyway. But others have already had limited success, and
they might care since getnameinfo() is not available. If we did have IPv6
support on Windows, we would indeed have troubles with those path names.

But even on non-Windows, a directory name with colons does not look kosher
to me. Don't they look like PATH values? Or like remote addresses? Are
IPv6 addresses used in this way by other software?

Moreover, I think that since IPv6 addresses can have at most one '::'
abbreviation, but not in an unambiguous way, users of path-interpolation
of IPv6 addresses are at the mercy of whether and how getnameinfo() makes
use of '::'.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help