From 135338af9a141d609e07e42208b9104465346ae4 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 25 Aug 2010 18:23:26 -0700 Subject: launchd: Properly support launchd sockets in xauth What we had in place before was a hack that always used ':0'. This change results in the bundle id being used to differentiate different connections. Signed-off-by: Jeremy Huddleston --- gethost.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gethost.c') diff --git a/gethost.c b/gethost.c index 3bfdb39..6b36340 100644 --- a/gethost.c +++ b/gethost.c @@ -280,7 +280,22 @@ struct addrlist *get_address_info ( src = buf; len = strlen (buf); } - } else { + } else if(prefix == 0 && (strncmp (fulldpyname, "/tmp/launch", 11) == 0)) { + /* Use the bundle id (part preceding : in the basename) as our src id */ + char *c; + strlcpy(buf, strrchr(fulldpyname, '/') + 1, sizeof(buf)); + c = strchr(buf, ':'); + + /* In the legacy case with no bundle id, use the full path */ + if(c == buf) { + src = fulldpyname; + } else { + *c = '\0'; + src = buf; + } + + len = strlen(src); + } else { src = fulldpyname; len = prefix; } -- cgit v1.2.1