summaryrefslogtreecommitdiff
path: root/daemon/gvfsafpserver.c
diff options
context:
space:
mode:
authorCarl-Anton Ingmarsson <ca.ingmarsson@gmail.com>2011-07-23 22:18:42 +0200
committerChristian Kellner <gicmo@gnome.org>2011-08-25 21:19:52 +0200
commit4158b740c9425c1b15be951ea460e93a629cbf23 (patch)
tree9791ebe8d97ae63f676752786a7704b1d93d7d6b /daemon/gvfsafpserver.c
parenta16937a25aece6576acb41c9eba42b5a4b90e64a (diff)
downloadgvfs-4158b740c9425c1b15be951ea460e93a629cbf23.tar.gz
afp: better error handling when server doesn't support anonymous login
Diffstat (limited to 'daemon/gvfsafpserver.c')
-rw-r--r--daemon/gvfsafpserver.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/daemon/gvfsafpserver.c b/daemon/gvfsafpserver.c
index 35dc5522..acafb87e 100644
--- a/daemon/gvfsafpserver.c
+++ b/daemon/gvfsafpserver.c
@@ -678,7 +678,7 @@ do_login (GVfsAfpServer *afp_serv,
if (!g_slist_find_custom (afp_serv->uams, AFP_UAM_NO_USER, g_str_equal))
{
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("AFP server %s doesn't support anonymous login"),
afp_serv->server_name);
return FALSE;
@@ -703,19 +703,23 @@ do_login (GVfsAfpServer *afp_serv,
if (res_code != AFP_RESULT_NO_ERROR)
{
- if (res_code == AFP_RESULT_USER_NOT_AUTH)
- {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
- _("AFP server %s declined anonymous login"),
- afp_serv->server_name);
- return FALSE;
- }
- else
+ switch (res_code)
{
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- _("Anonymous login to AFP server %s failed"), afp_serv->server_name);
- return FALSE;
+ case AFP_RESULT_USER_NOT_AUTH:
+ case AFP_RESULT_BAD_UAM:
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("AFP server %s doesn't support anonymous login"),
+ afp_serv->server_name);
+ break;
+
+ default:
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Anonymous login to AFP server %s failed, got error code: %d"),
+ afp_serv->server_name, res_code);
+ break;
}
+
+ return FALSE;
}
return TRUE;