summaryrefslogtreecommitdiff
path: root/imap/src/osdep/tops-20/log_t20.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap/src/osdep/tops-20/log_t20.c')
-rw-r--r--imap/src/osdep/tops-20/log_t20.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/imap/src/osdep/tops-20/log_t20.c b/imap/src/osdep/tops-20/log_t20.c
new file mode 100644
index 00000000..1c744d7f
--- /dev/null
+++ b/imap/src/osdep/tops-20/log_t20.c
@@ -0,0 +1,80 @@
+/* ========================================================================
+ * Copyright 1988-2006 University of Washington
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *
+ * ========================================================================
+ */
+
+/*
+ * Program: TOPS-20 server login
+ *
+ * Author: Mark Crispin
+ * Networks and Distributed Computing
+ * Computing & Communications
+ * University of Washington
+ * Administration Building, AG-44
+ * Seattle, WA 98195
+ * Internet: MRC@CAC.Washington.EDU
+ *
+ * Date: 1 August 1988
+ * Last Edited: 30 August 2006
+ */
+
+
+/* Dedication:
+ * This file is dedicated with affection to the TOPS-20 operating system, which
+ * set standards for user and programmer friendliness that have still not been
+ * equaled by more `modern' operating systems.
+ * Wasureru mon ka!!!!
+ */
+
+/* Server log in
+ * Accepts: user name string
+ * password string
+ * authenticating user name string
+ * argument count
+ * argument vector
+ * Returns: T if password validated, NIL otherwise
+ */
+
+long server_login (char *user,char *pass,char *authuser,int argc,char *argv[])
+{
+ int uid;
+ int argblk[5];
+ if (authuser && *authuser) { /* not available */
+ syslog (LOG_NOTICE|LOG_AUTH,
+ "Login %s failed: invalid authentication ID %s host=%.80s",
+ user,authuser,tcp_clienthost ());
+ sleep (3);
+ return NIL;
+ }
+ argblk[1] = RC_EMO; /* require exact match */
+ argblk[2] = (int) (user-1); /* user name */
+ argblk[3] = 0; /* no stepping */
+ if (!jsys (RCUSR,argblk)) return NIL;
+ uid = argblk[1] = argblk[3]; /* user number */
+ argblk[2] = (int) (pass-1); /* password */
+ argblk[3] = 0; /* no special account */
+ if (!jsys (LOGIN,argblk)) return NIL;
+ return T;
+}
+
+
+/* Authenticated server log in
+ * Accepts: user name string
+ * authenticating user name string
+ * argument count
+ * argument vector
+ * Returns: T if password validated, NIL otherwise
+ */
+
+long authserver_login (char *user,char *authuser,int argc,char *argv[])
+{
+ return NIL; /* how to implement this on TOPS-20??? */
+}