Browse Source

Plan 9 from Bell Labs 2003-08-26

David du Colombier 20 years ago
parent
commit
f4f58affd1

+ 4 - 4
dist/replica/plan9.db

@@ -433,7 +433,7 @@
 386/bin/upas/scanmail - 775 sys sys 1056364384 127737
 386/bin/upas/send - 775 sys sys 1057795515 189757
 386/bin/upas/smtp - 775 sys sys 1056364386 269559
-386/bin/upas/smtpd - 775 sys sys 1057795516 313560
+386/bin/upas/smtpd - 775 sys sys 1061837270 313594
 386/bin/upas/testscan - 775 sys sys 1056364389 82401
 386/bin/upas/token - 775 sys sys 1056364389 76198
 386/bin/upas/vf - 775 sys sys 1056364390 90554
@@ -6725,7 +6725,7 @@ sys/src/cmd/auth/secstore/secchk.c - 664 sys sys 1055698993 560
 sys/src/cmd/auth/secstore/secstore.c - 664 sys sys 1041890054 12213
 sys/src/cmd/auth/secstore/secstore.h - 664 sys sys 1041890053 841
 sys/src/cmd/auth/secstore/secstored.c - 664 sys sys 1034734162 8089
-sys/src/cmd/auth/secstore/secuser.c - 664 sys sys 1045504876 4367
+sys/src/cmd/auth/secstore/secuser.c - 664 sys sys 1061842567 4914
 sys/src/cmd/auth/secstore/util.c - 664 sys sys 1021579985 1498
 sys/src/cmd/auth/secureidcheck.c - 664 sys sys 1045504896 8973
 sys/src/cmd/auth/status - 775 sys sys 1015008430 738
@@ -10557,9 +10557,9 @@ sys/src/cmd/upas/smtp/rfc822.y - 664 sys sys 1018974179 12512
 sys/src/cmd/upas/smtp/rmtdns.c - 664 sys sys 1015013150 1069
 sys/src/cmd/upas/smtp/smtp.c - 664 sys sys 1049249402 18227
 sys/src/cmd/upas/smtp/smtp.h - 664 sys sys 1015013151 1038
-sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1049408234 24269
+sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1061836981 24287
 sys/src/cmd/upas/smtp/smtpd.h - 664 sys sys 1045505962 1063
-sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1043171647 6911
+sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
 sys/src/cmd/upas/smtp/spam.c - 664 sys sys 1055702858 9221
 sys/src/cmd/upas/vf - 20000000775 sys sys 1015096796 0
 sys/src/cmd/upas/vf/mkfile - 664 sys sys 1031707320 269

+ 4 - 0
dist/replica/plan9.log

@@ -13079,3 +13079,7 @@
 1061566266 0 c lib/vgadb - 664 sys sys 1061565169 27692
 1061566266 1 c sys/src/cmd/aux/vga/virge.c - 664 sys sys 1061565169 18440
 1061780481 0 c sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1061779754 18103
+1061838174 0 c 386/bin/upas/smtpd - 775 sys sys 1061837270 313594
+1061838174 1 c sys/src/cmd/upas/smtp/smtpd.c - 664 sys sys 1061836981 24287
+1061838174 2 c sys/src/cmd/upas/smtp/smtpd.y - 664 sys sys 1061836986 6949
+1061843576 0 c sys/src/cmd/auth/secstore/secuser.c - 664 sys sys 1061842567 4914

+ 25 - 1
sys/src/cmd/auth/secstore/secuser.c

@@ -9,6 +9,24 @@ int verbose;
 
 static void userinput(char *, int);
 
+static void
+ensure_exists(char *f, ulong perm)
+{
+	int fd;
+
+	if(access(f, AEXIST) >= 0)
+		return;
+	if(verbose)
+		fprint(2,"first time setup for secstore: create %s %lo\n", f, perm);
+	fd = create(f, OREAD, perm);
+	if(fd < 0){
+		fprint(2, "unable to create %s\n", f);
+		exits("secstored directories");
+	}
+	close(fd);
+}
+
+
 void
 main(int argc, char **argv)
 {
@@ -25,10 +43,16 @@ main(int argc, char **argv)
 		break;
 	}ARGEND;
 	if(argc!=1){
-		print("usage: secuser <user>\n");
+		print("usage: secuser [-v] <user>\n");
 		exits("usage");
 	}
 
+	ensure_exists(SECSTORE_DIR, DMDIR|0755L);
+	snprint(home, sizeof(home), "%s/who", SECSTORE_DIR);
+	ensure_exists(home, DMDIR|0755L);
+	snprint(home, sizeof(home), "%s/store", SECSTORE_DIR);
+	ensure_exists(home, DMDIR|0700L);
+
 	id = argv[0];
 	if(verbose)
 		fprint(2,"secuser %s\n", id);

+ 2 - 1
sys/src/cmd/upas/smtp/smtpd.c

@@ -1074,7 +1074,8 @@ auth(String *mech, String *resp)
 	if (rejectcheck())
 		goto bomb_out;
 
-	syslog(0, "smtpd", "auth(%s, %s) from %s\n", s_to_c(mech), s_to_c(resp), him);
+	syslog(0, "smtpd", "auth(%s, %s) from %s\n", s_to_c(mech),
+		resp==nil?"nil":s_to_c(resp), him);
 
 	if (authenticated) {
 	bad_sequence:

+ 1 - 1
sys/src/cmd/upas/smtp/smtpd.y

@@ -128,7 +128,7 @@ dot_string	: string			={ $$ = cat(&$1, 0, 0, 0, 0 ,0, 0); }
 		| string '.' dot_string		={ $$ = cat(&$1, &$2, &$3, 0, 0 ,0, 0); }
 		;
 
-string		: char
+string		: char	={ $$ = cat(&$1, 0, 0, 0, 0 ,0, 0); }
 		| string char	={ $$ = cat(&$1, &$2, 0, 0, 0 ,0, 0); }
 		;