Blob Blame History Raw
From 370694b36f1ed6f26554ccc740da3b3e92aafded Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter@fedoraproject.org>
Date: Fri, 17 Aug 2012 08:52:25 -0500
Subject: [PATCH] only print debug message if no pkcs11 socket

This is to handle the case of running gnome-keyring in environments
not matching GNOME;Unity and avoid needless
WARNING: couldn't connect to: /tmp/keyring-SqfLpI/pkcs11
type errors

https://bugzilla.gnome.org/show_bug.cgi?id=665961
---
 pkcs11/rpc-layer/gkm-rpc-module.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/pkcs11/rpc-layer/gkm-rpc-module.c b/pkcs11/rpc-layer/gkm-rpc-module.c
index 240fd83..1b11d96 100644
--- a/pkcs11/rpc-layer/gkm-rpc-module.c
+++ b/pkcs11/rpc-layer/gkm-rpc-module.c
@@ -251,8 +251,13 @@ call_connect (CallState *cs)
 
 	if (connect (sock, (struct sockaddr*) &addr, sizeof (addr)) < 0) {
 		close (sock);
-		warning (("couldn't connect to: %s: %s", pkcs11_socket_path, strerror (errno)));
-		return CKR_DEVICE_ERROR;
+		if (errno == ENOENT) {
+			debug (("couldn't connect to: %s: %s", pkcs11_socket_path, strerror (errno)));
+			return CKR_DEVICE_REMOVED;
+		} else {
+			warning (("couldn't connect to: %s: %s", pkcs11_socket_path, strerror (errno)));
+			return CKR_DEVICE_ERROR;
+		}
 	}
 
 	if (egg_unix_credentials_write (sock) < 0) {
@@ -1208,6 +1213,10 @@ rpc_C_Initialize (CK_VOID_PTR init_args)
 				if (ret == CKR_OK)
 					ret = call_run (cs);
 				call_done (cs, ret);
+
+			/* No daemon available */
+			} else if (ret == CKR_DEVICE_REMOVED) {
+				ret = CKR_OK;
 			}
 		}
 
@@ -1248,8 +1257,13 @@ rpc_C_Finalize (CK_VOID_PTR reserved)
 				if (ret == CKR_OK)
 					ret = call_run (cs);
 				call_done (cs, ret);
+
+			/* No daemon available */
+			} else if (ret == CKR_DEVICE_REMOVED) {
+				ret = CKR_OK;
 			}
 
+
 			if (ret != CKR_OK)
 				warning (("finalizing the daemon returned an error: %d", ret));
 		}
-- 
1.7.12.1