summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--daemon/gvfsbackendnetwork.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f03bb7b2..bf3f90df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-28 A. Walton <awalton@svn.gnome.org>
+
+ * daemon/gvfsbackendnetwork.c: (recompute_files):
+ Fixup DNS-SD exposed links to actually link to the service provided.
+
2008-02-28 Christian Kellner <gicmo@gnome.org>
* daemon/gvfsbackenddav.c (g_vfs_backend_dav_init):
diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c
index 00207aef..6aa69760 100644
--- a/daemon/gvfsbackendnetwork.c
+++ b/daemon/gvfsbackendnetwork.c
@@ -47,6 +47,8 @@
#define PATH_GCONF_GVFS_DNS_SD_DISPLAY_LOCAL "/system/dns_sd/display_local"
#define PATH_GCONF_GVFS_DNS_SD_EXTRA_DOMAINS "/system/dns_sd/extra_domains"
+#define NETWORK_FILE_ATTRIBUTES "standard::name,standard::display-name,standard::target-uri"
+
typedef struct {
char *file_name;
char *display_name;
@@ -299,7 +301,7 @@ recompute_files (GVfsBackendNetwork *backend)
/* children of current workgroup */
enumer = g_file_enumerate_children (server_file,
- "standard::name,standard::display-name",
+ NETWORK_FILE_ATTRIBUTES,
G_FILE_QUERY_INFO_NONE,
NULL, NULL);
if (enumer != NULL)
@@ -357,7 +359,7 @@ recompute_files (GVfsBackendNetwork *backend)
{
/* "merged": add local domains to network:/// */
enumer = g_file_enumerate_children (server_file,
- "standard::name,standard::display-name",
+ NETWORK_FILE_ATTRIBUTES,
G_FILE_QUERY_INFO_NONE,
NULL, NULL);
if (enumer != NULL)
@@ -366,7 +368,8 @@ recompute_files (GVfsBackendNetwork *backend)
while (info != NULL)
{
file_name = g_strconcat("dnssd-domain-", g_file_info_get_name (info), NULL);
- link_uri = g_strconcat("dns-sd://local/", g_file_info_get_name (info), NULL);
+ link_uri = g_strdup(g_file_info_get_attribute_string (info,
+ "standard::target-uri"));
file = network_file_new (file_name,
g_file_info_get_display_name (info),
link_uri,