BarryServer : Git

All the code for all my projects
// BarryServer : Git / OrionUserland / commit / 2e110925c3be315a94bfbf15cecbdaa0746bfe32 / login

// Related

OrionUserland

Barry Using POSIX names in structs 2e11092 (3 years, 3 months ago)
diff --git a/login/main.c b/login/main.c
index d1bfd55..292901a 100644
--- a/login/main.c
+++ b/login/main.c
@@ -34,7 +34,7 @@ main(int argc, char *argv[])
 		if (sz < 1)
 			continue;
 
-		pwd = getpwname(input);
+		pwd = getpwnam(input);
 		if (!pwd)
 			continue;
 
@@ -42,7 +42,7 @@ main(int argc, char *argv[])
 		memset(input, 0, 1024);
 		ioctl(STDIN_FILENO, TCGETS, &tcold);
 		memcpy(&tcnew, &tcold, sizeof(Termios));
-		tcnew.lflag &= ~ECHO;
+		tcnew.c_lflag &= ~ECHO;
 		ioctl(STDIN_FILENO, TCSETS, &tcnew);
 #ifdef MANUAL_LOGIN
 		sz = read(STDIN_FILENO, input, 1024);
@@ -56,19 +56,20 @@ main(int argc, char *argv[])
 			continue;
 		ioctl(STDIN_FILENO, TCSETS, &tcold);
 
-		if (!strcmp(input, pwd->password))
+		if (!strcmp(input, pwd->pw_passwd))
 			break;
 		printf("Login incorrect\n");
 	}
 	printf("\n");
 
 	dbgprintf("Authenticating \"%s\" (%d:%d) -> \"%s\" @ \"%s\"",
-	          pwd->username, pwd->uid, pwd->gid, pwd->shell, pwd->homedir);
-	chdir(pwd->homedir);
-	setuid(pwd->uid);
-	setgid(pwd->gid);
+	          pwd->pw_name, pwd->pw_uid, pwd->pw_gid, pwd->pw_shell,
+	          pwd->pw_dir);
+	chdir(pwd->pw_dir);
+	setuid(pwd->pw_uid);
+	setgid(pwd->pw_gid);
 	char *v[] = { "sh", NULL };
-	execve(pwd->shell, v, NULL);
+	execve(pwd->pw_shell, v, NULL);
 
 	return 0;
 }