From 2032a1914d72e4de89280e179c782566cafc163a Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Thu, 25 Jun 2009 07:27:25 -0400 Subject: [PATCH] mount.cifs: add support for sending IPv6 scope ID to kernel When getaddrinfo returns an IPv6 address with a non-zero scope_id, send that to the kernel appended to the address with a '%' delimiter. This allows people to mount servers via their link-local IPv6 addresses (given a kernel that understands this address format, of course). Signed-off-by: Jeff Layton --- client/mount.cifs.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/client/mount.cifs.c b/client/mount.cifs.c index 97144a0..db05665 100644 --- a/client/mount.cifs.c +++ b/client/mount.cifs.c @@ -1562,6 +1562,14 @@ mount_retry: } } + if (addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) { + strlcat(options, "%", options_size); + current_len = strnlen(options, options_size); + optionstail = options + current_len; + snprintf(optionstail, options_size - current_len, "%u", + addr6->sin6_scope_id); + } + if (!fakemnt && mount(dev_name, mountpoint, "cifs", flags, options)) { switch (errno) { case ECONNREFUSED: -- 1.5.5.6