]>
Commit | Line | Data |
---|---|---|
371db41d | 1 | diff -burNp proftpd-1.3.2.orig/src/log.c proftpd-1.3.2-dud/src/log.c |
970e394e JR |
2 | --- proftpd-1.3.2.orig/src/wtmp.c 2008-12-17 00:43:55.000000000 +0100 |
3 | +++ proftpd-1.3.2-dud/src/wtmp.c 2009-02-09 14:24:34.271689801 +0100 | |
4 | @@ -129,9 +129,31 @@ int log_wtmp(char *line, const char *nam | |
371db41d | 5 | struct utmp ut; |
02396a1f | 6 | static int fd = -1; |
970e394e | 7 | |
371db41d | 8 | +#if defined(HAVE_UTMPX_H) |
371db41d | 9 | +#if !defined(WTMPX_FILE) && defined(_PATH_WTMPX) |
10 | +# define WTMPX_FILE _PATH_WTMPX | |
11 | +#endif | |
970e394e JR |
12 | + static char *wtmp_file = NULL; |
13 | + if (wtmp_file == NULL) { | |
14 | + if (access(WTMPX_FILE"x", F_OK) == 0) | |
15 | + wtmp_file = WTMPX_FILE"x"; | |
16 | + else if (access(WTMPX_FILE, F_OK) == 0) | |
17 | + wtmp_file = WTMPX_FILE; | |
18 | + else if (access(WTMP_FILE"x", F_OK) == 0) | |
19 | + wtmp_file = WTMP_FILE"x"; | |
20 | + else if (access(WTMP_FILE, F_OK) == 0) | |
21 | + wtmp_file = WTMP_FILE; | |
22 | + else { | |
23 | + pr_log_pri(PR_LOG_WARNING, "cannot find "WTMPX_FILE); | |
24 | + return -1; | |
25 | + } | |
26 | + } | |
02396a1f | 27 | +#else |
970e394e | 28 | + static char *wtmp_file = WTMP_FILE; |
02396a1f | 29 | +#endif |
970e394e | 30 | if (fd < 0 && |
371db41d | 31 | - (fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0)) < 0) { |
970e394e JR |
32 | - pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", WTMP_FILE, strerror(errno)); |
33 | + (fd = open(wtmp_file, O_WRONLY|O_APPEND, 0)) < 0) { | |
34 | + pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", wtmp_file, strerror(errno)); | |
02396a1f JR |
35 | return -1; |
36 | } | |
7b7692b8 | 37 |