]> andersk Git - openssh.git/blobdiff - sshlogin.c
[buildpkg.sh.in] Last minute fix didn't make it in the .in file. :-(
[openssh.git] / sshlogin.c
index 1d9c031c40978a93d79ff25394fed76460649c2f..e1cc4cc82ebef16866b81ce38e1c37b28d2d9b07 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshlogin.c,v 1.2 2001/03/24 16:43:27 stevesk Exp $");
+RCSID("$OpenBSD: sshlogin.c,v 1.7 2003/06/12 07:57:38 markus Exp $");
 
 #include "loginrec.h"
 
@@ -48,43 +48,54 @@ RCSID("$OpenBSD: sshlogin.c,v 1.2 2001/03/24 16:43:27 stevesk Exp $");
  * information is not available.  This must be called before record_login.
  * The host the user logged in from will be returned in buf.
  */
-
 u_long
 get_last_login_time(uid_t uid, const char *logname,
-                   char *buf, u_int bufsize)
+    char *buf, u_int bufsize)
 {
-  struct logininfo li;
+       struct logininfo li;
 
-  login_get_lastlog(&li, uid);
-  strlcpy(buf, li.hostname, bufsize);
-  return li.tv_sec;
+       login_get_lastlog(&li, uid);
+       strlcpy(buf, li.hostname, bufsize);
+       return li.tv_sec;
 }
 
 /*
- * Records that the user has logged in.  I these parts of operating systems
- * were more standardized.
+ * Records that the user has logged in.  I wish these parts of operating
+ * systems were more standardized.
  */
-
 void
 record_login(pid_t pid, const char *ttyname, const char *user, uid_t uid,
-            const char *host, struct sockaddr * addr)
+    const char *host, struct sockaddr * addr, socklen_t addrlen)
 {
-  struct logininfo *li;
+       struct logininfo *li;
 
-  li = login_alloc_entry(pid, user, host, ttyname);
-  login_set_addr(li, addr, sizeof(struct sockaddr));
-  login_login(li);
-  login_free_entry(li);
+       li = login_alloc_entry(pid, user, host, ttyname);
+       login_set_addr(li, addr, addrlen);
+       login_login(li);
+       login_free_entry(li);
 }
 
-/* Records that the user has logged out. */
+#ifdef LOGIN_NEEDS_UTMPX
+void
+record_utmp_only(pid_t pid, const char *ttyname, const char *user,
+                const char *host, struct sockaddr * addr, socklen_t addrlen)
+{
+       struct logininfo *li;
+
+       li = login_alloc_entry(pid, user, host, ttyname);
+       login_set_addr(li, addr, addrlen);
+       login_utmp_only(li);
+       login_free_entry(li);
+}
+#endif
 
+/* Records that the user has logged out. */
 void
-record_logout(pid_t pid, const char *ttyname)
+record_logout(pid_t pid, const char *ttyname, const char *user)
 {
-  struct logininfo *li;
+       struct logininfo *li;
 
-  li = login_alloc_entry(pid, NULL, NULL, ttyname);
-  login_logout(li);
-  login_free_entry(li);
+       li = login_alloc_entry(pid, user, NULL, ttyname);
+       login_logout(li);
+       login_free_entry(li);
 }
This page took 0.040886 seconds and 4 git commands to generate.