blob: 88cc6a43fd68ba4bbfbb17a201f96471d29c5bb1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
--- auth.c.orif Thu Apr 20 17:21:58 2000
+++ auth.c Thu Apr 20 17:50:06 2000
@@ -26,7 +26,6 @@
#include "session.h"
#include "dispatch.h"
-
/* import */
extern ServerOptions options;
extern char *forced_command;
@@ -106,6 +105,16 @@
return 0;
}
}
+#ifdef __FreeBSD__
+ /* Fail if the account's expiration time has passed. */
+ if (pw->pw_expire != 0) {
+ struct timeval tv;
+
+ (void)gettimeofday(&tv, NULL);
+ if (tv.tv_sec >= pw->pw_expire)
+ return 0;
+ }
+#endif /* __FreeBSD__ */
/* We found no reason not to let this user try to log on... */
return 1;
}
@@ -523,6 +532,11 @@
pwcopy.pw_gid = pw->pw_gid;
pwcopy.pw_dir = xstrdup(pw->pw_dir);
pwcopy.pw_shell = xstrdup(pw->pw_shell);
+#ifdef __FreeBSD__
+ pwcopy.pw_class = xstrdup(pw->pw_class);
+ pwcopy.pw_expire = pw->pw_expire;
+ pwcopy.pw_change = pw->pw_change;
+#endif /* __FreeBSD__ */
pw = &pwcopy;
/*
|