summaryrefslogtreecommitdiff
path: root/gethost.c
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@apple.com>2010-08-25 18:23:26 -0700
committerJeremy Huddleston <jeremyhu@apple.com>2010-08-25 18:23:26 -0700
commit135338af9a141d609e07e42208b9104465346ae4 (patch)
treedb59f226a2c69cf254753d175cde5c71c6b2d373 /gethost.c
parent96ea88d3aeae710d8fc04f23151d5b669c5e8a0c (diff)
downloadxorg-app-xauth-135338af9a141d609e07e42208b9104465346ae4.tar.gz
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 <jeremyhu@apple.com>
Diffstat (limited to 'gethost.c')
-rw-r--r--gethost.c17
1 files changed, 16 insertions, 1 deletions
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;
}