[gvfs/gnome-3-22] smb: Fix IPv6 uri handling



commit 6145c93ecf2554304577589262de341324a093de
Author: Ondrej Holy <oholy redhat com>
Date:   Tue Nov 15 10:27:39 2016 +0100

    smb: Fix IPv6 uri handling
    
    IPv6 server includes brackets in GMountSpec, smbclient doesn't. Remove
    the brackets from the uri before usage in smbclient functions.
    
    The IPv6 uris can be consequently used in the following format (port
    isn't mandatory), e.g.:
    gvfs-mount smb://[::1]:139/
    
    https://bugzilla.gnome.org/show_bug.cgi?id=604116

 daemon/gvfsbackendsmb.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c
index cc23629..a477669 100644
--- a/daemon/gvfsbackendsmb.c
+++ b/daemon/gvfsbackendsmb.c
@@ -479,7 +479,16 @@ create_smb_uri_string (const char *server,
   GString *uri;
 
   uri = g_string_new ("smb://");
-  g_string_append_encoded (uri, server, NULL);
+
+  /* IPv6 server includes brackets in GMountSpec, smbclient doesn't */
+  if (server[0] == '[')
+    {
+      g_string_append_encoded (uri, server + 1, NULL);
+      g_string_truncate (uri, uri->len - 3);
+    }
+  else
+    g_string_append_encoded (uri, server, NULL);
+
   if (port != -1)
     g_string_append_printf (uri, ":%d", port);
   g_string_append_c (uri, '/');


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]