Ignore a stale agent socket.
authorWerner Koch <wk@gnupg.org>
Mon, 26 Apr 2010 14:51:38 +0000 (14:51 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 26 Apr 2010 14:51:38 +0000 (14:51 +0000)
agent/ChangeLog
agent/gpg-agent.c

index 6611a35..176f4fa 100644 (file)
@@ -1,3 +1,7 @@
+2010-04-26  Werner Koch  <wk@g10code.com>
+
+       * gpg-agent.c (create_server_socket) [W32]: Also check for EEXIST.
+
 2010-04-19  Werner Koch  <wk@g10code.com>
 
        * pksign.c (get_dsa_qbits, do_encode_dsa): New.
index aa0a407..e30adb4 100644 (file)
@@ -1493,7 +1493,15 @@ create_server_socket (char *name, int is_ssh, assuan_sock_nonce_t *nonce)
   strcpy (serv_addr->sun_path, name);
   len = SUN_LEN (serv_addr);
   rc = assuan_sock_bind (fd, (struct sockaddr*) serv_addr, len);
-  if (use_standard_socket && rc == -1 && errno == EADDRINUSE)
+
+  /* Our error code mapping on W32CE returns EEXIST thus we also test
+     for this. */
+  if (use_standard_socket && rc == -1 
+      && (errno == EADDRINUSE
+#ifdef HAVE_W32_SYSTEM
+          || errno == EEXIST
+#endif
+          ))
     {
       /* Check whether a gpg-agent is already running on the standard
          socket.  We do this test only if this is not the ssh socket.