From 3c18e3051dfdb5591afc18562e9d9da987a5945e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 26 Sep 2016 19:53:04 +0200 Subject: libbb: make xmalloc_sockaddr2dotted use NI_NUMERICSCOPE Gives "mount -t cifs //fe80::6a05:caff:fe3e:dbf5%eth0/test test" a chance to work: mount must pass "ip=numeric_IPv6%numeric_iface_id" in the omunt option string. Currently, it does not. Signed-off-by: Denys Vlasenko --- util-linux/mount.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'util-linux/mount.c') diff --git a/util-linux/mount.c b/util-linux/mount.c index 13590ceb4..c3e91e2a6 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -1975,6 +1975,12 @@ static int singlemount(struct mntent *mp, int ignore_busy) dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa); if (ENABLE_FEATURE_CLEAN_UP) free(lsa); ip = xasprintf("ip=%s", dotted); +// Note: IPv6 scoped addresses ("name%iface", see RFC 4007) should be +// handled by libc in getnameinfo() (inside xmalloc_sockaddr2dotted_noport()). +// Currently, glibc does not support that (has no NI_NUMERICSCOPE), +// musl apparently does. This results in "ip=numericIPv6%iface_name" +// (instead of _numeric_ iface_id) with glibc. +// This probalby should be fixed in glibc, not here. if (ENABLE_FEATURE_CLEAN_UP) free(dotted); parse_mount_options(ip, &filteropts); if (ENABLE_FEATURE_CLEAN_UP) free(ip); -- cgit v1.2.3