cvsdist c4afb89
--- netkit-rsh-0.16/rexec/rexec.c.prompt	Mon Feb 28 16:23:33 2000
cvsdist c4afb89
+++ netkit-rsh-0.16/rexec/rexec.c	Mon Feb 28 16:49:23 2000
cvsdist c4afb89
@@ -164,12 +164,30 @@
cvsdist c4afb89
     user_name[strlen(user_name)-1] = '\0'; /* Hopefully fgets always adds
cvsdist c4afb89
 					      a newline. */
cvsdist c4afb89
     passwd = getpass("Password: ");
cvsdist c4afb89
+  } else {
cvsdist c4afb89
+
cvsdist c4afb89
+    if ( user_name == NULL )
cvsdist c4afb89
+      user_name = getenv("REXEC_USER");
cvsdist c4afb89
+    if ( user_name == NULL ) {
cvsdist c4afb89
+      uid_t uid = getuid();
cvsdist c4afb89
+      struct passwd *pw = getpwuid(uid);
cvsdist c4afb89
+      if (!(pw && pw->pw_name)) {
cvsdist c4afb89
+        fprintf(stderr, "Can't lookup uid %d\n", uid);
cvsdist c4afb89
+	exit(1);
cvsdist c4afb89
+      }
cvsdist c4afb89
+      user_name = strdup(pw->pw_name);
cvsdist c4afb89
+    }
cvsdist c4afb89
+    if ( passwd == NULL )
cvsdist c4afb89
+      passwd = getenv("REXEC_PASS");
cvsdist c4afb89
+    if ( passwd == NULL )
cvsdist c4afb89
+       passwd = getpass("Password: ");
cvsdist c4afb89
   }
cvsdist c4afb89
 
cvsdist c4afb89
-  if ( user_name == NULL )
cvsdist c4afb89
-    user_name = getenv("REXEC_USER");
cvsdist c4afb89
-  if ( passwd == NULL )
cvsdist c4afb89
-    passwd = getenv("REXEC_PASS");
cvsdist c4afb89
+  if (!(user_name && passwd)) {
cvsdist c4afb89
+    fprintf(stderr, "Can't use %s without supplying a user and password\n",
cvsdist c4afb89
+    	progname);
cvsdist c4afb89
+    exit(1);
cvsdist c4afb89
+  }
cvsdist c4afb89
 
cvsdist c4afb89
   if ( (sock = rexec(&host, port_exec, user_name, passwd, command, 
cvsdist c4afb89
 		     p_to_aux_sock)) < 0 )