aboutsummaryrefslogtreecommitdiffstats
path: root/src/log-login-lastlog.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/log-login-lastlog.c51
1 files changed, 26 insertions, 25 deletions
diff --git a/src/log-login-lastlog.c b/src/log-login-lastlog.c
index 46509df..f8f8d3c 100644
--- a/src/log-login-lastlog.c
+++ b/src/log-login-lastlog.c
@@ -1,7 +1,7 @@
/**
* cerberus-logging – Log-in logging extension for cerberus
*
- * Copyright © 2014, 2015 Mattias Andrée (maandree@member.fsf.org)
+ * Copyright © 2014, 2015 Mattias Andrée (m@maandree.se)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,31 +21,32 @@
#include <pwd.h>
-int do_log(void)
+int
+do_log(void)
{
- struct passwd* pwd;
- struct lastlog ll;
- time_t t;
- int fd;
+ struct passwd *pwd;
+ struct lastlog ll;
+ time_t t;
+ int fd;
- if (!streq(action, "login"))
- return 0;
+ if (!streq(action, "login"))
+ return 0;
- if (pwd = getpwnam(username), pwd == NULL) return -1;
- if (fd = open(_PATH_LASTLOG, O_RDWR, 0), fd < 0) return -1;
- if (lseek(fd, (off_t)(pwd->pw_uid * sizeof(ll)), SEEK_SET) == -1) goto fail;
-
- memset(&ll, 0, sizeof(ll));
-
- time(&t), ll.ll_time = (typeof(ll.ll_time))t;
- xstrcpy(ll.ll_line, ttyname);
- xstrcpy(ll.ll_host, hostname);
-
- if (write_all(fd, (char*)&ll, sizeof(ll)))
- goto fail;
-
- return close(fd), 0;
- fail:
- return close(fd), -1;
-}
+ if (pwd = getpwnam(username), !pwd) return -1;
+ if (fd = open(_PATH_LASTLOG, O_RDWR, 0), fd < 0) return -1;
+ if (lseek(fd, (off_t)(pwd->pw_uid * sizeof(ll)), SEEK_SET) == -1) goto fail;
+ memset(&ll, 0, sizeof(ll));
+
+ time(&t);
+ ll.ll_time = (typeof(ll.ll_time))t;
+ xstrcpy(ll.ll_line, ttyname);
+ xstrcpy(ll.ll_host, hostname);
+
+ if (write_all(fd, (char *)&ll, sizeof(ll)))
+ goto fail;
+
+ return close(fd), 0;
+fail:
+ return close(fd), -1;
+}