aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-12-20 16:03:01 +0000
committerWerner Koch <[email protected]>2004-12-20 16:03:01 +0000
commitbbada39dc11da8a61b6f9d503aa60be348ae27f6 (patch)
treed86d2bdcfceaea0f87c8148c673adfb0795a94ef
parent(assuan_init_pipe_server) [W32]: Map file (diff)
downloadlibassuan-bbada39dc11da8a61b6f9d503aa60be348ae27f6.tar.gz
libassuan-bbada39dc11da8a61b6f9d503aa60be348ae27f6.zip
(assuan_socket_connect): Allow for a
drive letter in the path.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/assuan-socket-connect.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4f4061b..d50e1c9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-20 Werner Koch <[email protected]>
+
+ * assuan-socket-connect.c (assuan_socket_connect) [W32]: Allow for
+ a drive letter in the path.
+
2004-12-19 Werner Koch <[email protected]>
* assuan-pipe-server.c (assuan_init_pipe_server) [W32]: Map file
diff --git a/src/assuan-socket-connect.c b/src/assuan-socket-connect.c
index 0a60133..75e99ac 100644
--- a/src/assuan-socket-connect.c
+++ b/src/assuan-socket-connect.c
@@ -85,6 +85,7 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
int fd;
struct sockaddr_un srvr_addr;
size_t len;
+ const char *s;
#ifdef HAVE_W32_SYSTEM
_assuan_log_printf ("%s: name =`%s'\n", __FUNCTION__, name);
@@ -95,9 +96,14 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx,
*r_ctx = NULL;
/* We require that the name starts with a slash, so that we can
- alter reuse this function for other socket types */
- if (*name != DIRSEP_C && *name != '/')
+ alter reuse this function for other socket types. To make things
+ easier we allow an optional dirver prefix. */
+ s = name;
+ if (*s && s[1] == ':')
+ s += 2;
+ if (*s != DIRSEP_C && *s != '/')
return ASSUAN_Invalid_Value;
+
if (strlen (name)+1 >= sizeof srvr_addr.sun_path)
return ASSUAN_Invalid_Value;