aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/auth/ssh-agent.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/cmd/auth/ssh-agent.c b/src/cmd/auth/ssh-agent.c
index ee223038..f8ded13d 100644
--- a/src/cmd/auth/ssh-agent.c
+++ b/src/cmd/auth/ssh-agent.c
@@ -93,7 +93,7 @@ void
threadmain(int argc, char **argv)
{
int fd, pid, export, dotextlist;
- char dir[100];
+ char dir[100], *ns;
char sock[200], addr[200];
uvlong x;
@@ -129,13 +129,17 @@ threadmain(int argc, char **argv)
if(dotextlist)
listkeystext();
- x = ((uvlong)fastrand()<<32) | fastrand();
- x ^= ((uvlong)fastrand()<<32) | fastrand();
- snprint(dir, sizeof dir, "/tmp/ssh-%llux", x);
- if((fd = create(dir, OREAD, DMDIR|0700)) < 0)
- sysfatal("mkdir %s: %r", dir);
- close(fd);
- snprint(sock, sizeof sock, "%s/agent.%d", dir, pid);
+ ns = getns();
+ snprint(sock, sizeof sock, "%s/ssh-agent.socket", ns);
+ if(0){
+ x = ((uvlong)fastrand()<<32) | fastrand();
+ x ^= ((uvlong)fastrand()<<32) | fastrand();
+ snprint(dir, sizeof dir, "/tmp/ssh-%llux", x);
+ if((fd = create(dir, OREAD, DMDIR|0700)) < 0)
+ sysfatal("mkdir %s: %r", dir);
+ close(fd);
+ snprint(sock, sizeof sock, "%s/agent.%d", dir, pid);
+ }
snprint(addr, sizeof addr, "unix!%s", sock);
if((afd = announce(addr, adir)) < 0)