9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] [PATCH] add -u flag to 9pfuse to set uname.
@ 2025-11-10 22:15 Danny Wilkins via 9fans
  0 siblings, 0 replies; only message in thread
From: Danny Wilkins via 9fans @ 2025-11-10 22:15 UTC (permalink / raw)
  To: 9fans; +Cc: Danny Wilkins

---
 src/cmd/9pfuse/main.c | 15 ++++++++++-----
 src/lib9pclient/fs.c  |  5 +++--
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/cmd/9pfuse/main.c b/src/cmd/9pfuse/main.c
index ca9f3872..bc76b16d 100644
--- a/src/cmd/9pfuse/main.c
+++ b/src/cmd/9pfuse/main.c
@@ -61,6 +61,7 @@
 
 int debug;
 char *aname = "";
+char *uname = "";
 void fusedispatch(void*);
 Channel *fusechan;
 
@@ -85,12 +86,12 @@ double entrytimeout = 1.0;
 
 CFsys *fsys;
 CFid *fsysroot;
-void init9p(char*, char*);
+void init9p(char*, char*, char*);
 
 void
 usage(void)
 {
-	fprint(2, "usage: 9pfuse [-D] [-A attrtimeout] [-a aname] address mtpt\n");
+	fprint(2, "usage: 9pfuse [-D] [-A attrtimeout] [-a aname] [-u uname] address mtpt\n");
 	exit(1);
 }
 
@@ -106,6 +107,7 @@ threadmaybackground(void)
 void
 threadmain(int argc, char **argv)
 {
+	uname = getuser();
 	ARGBEGIN{
 	case 'D':
 		chatty9pclient++;
@@ -117,6 +119,9 @@ threadmain(int argc, char **argv)
 	case 'a':
 		aname = EARGF(usage());
 		break;
+	case 'u':
+		uname = EARGF(usage());
+		break;
 	default:
 		usage();
 	}ARGEND
@@ -131,7 +136,7 @@ threadmain(int argc, char **argv)
 
 	setsid();	/* won't be able to use console, but can't be interrupted */
 
-	init9p(argv[0], aname);
+	init9p(argv[0], aname, uname);
 	initfuse(argv[1]);
 
 	fusechan = chancreate(sizeof(void*), 0);
@@ -160,7 +165,7 @@ fusereader(void *v)
 }
 
 void
-init9p(char *addr, char *spec)
+init9p(char *addr, char *spec, char *uname)
 {
 	int fd;
 
@@ -170,7 +175,7 @@ init9p(char *addr, char *spec)
 		if((fd = dial(netmkaddr(addr, "tcp", "564"), nil, nil, nil)) < 0)
 			sysfatal("dial %s: %r", addr);
 	proccreate(watchfd, (void*)(uintptr)fd, STACK);
-	if((fsys = fsmount(fd, spec)) == nil)
+	if((fsys = fsmount(fd, spec, uname)) == nil)
 		sysfatal("fsmount: %r");
 	fsysroot = fsroot(fsys);
 }
diff --git a/src/lib9pclient/fs.c b/src/lib9pclient/fs.c
index f1b9b085..0088375e 100644
--- a/src/lib9pclient/fs.c
+++ b/src/lib9pclient/fs.c
@@ -66,8 +66,9 @@ fsroot(CFsys *fs)
 	return fs->root;
 }
 
+
 CFsys*
-fsmount(int fd, char *aname)
+fsmount(int fd, char *aname, char *uname)
 {
 	CFsys *fs;
 	CFid *fid;
@@ -76,7 +77,7 @@ fsmount(int fd, char *aname)
 	if(fs == nil)
 		return nil;
 
-	if((fid = fsattach(fs, nil, getuser(), aname)) == nil){
+	if((fid = fsattach(fs, nil, uname, aname)) == nil){
 		_fsunmount(fs);
 		return nil;
 	}
-- 
2.46.4


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-11-10 22:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-10 22:15 [9fans] [PATCH] add -u flag to 9pfuse to set uname Danny Wilkins via 9fans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).