OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [uClibc/] [libutil/] [logwtmp.c] - Blame information for rev 1325

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1325 phoenix
/* wtmp support rubbish (i.e. complete crap)
2
 *
3
 * Written by Erik Andersen <andersee@debian.org>
4
 *
5
 * This library is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU Library General Public License as
7
 * published by the Free Software Foundation; either version 2 of the
8
 * License, or (at your option) any later version.
9
 *
10
 * This library is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 * Library General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU Library General Public
16
 * License along with this library; see the file COPYING.LIB.  If not,
17
 * write to the Free Software Foundation, Inc., 675 Mass Ave,
18
 * Cambridge, MA 02139, USA.  */
19
 
20
#include <string.h>
21
#include <sys/time.h>
22
#include <time.h>
23
#include <unistd.h>
24
#include <utmp.h>
25
#include <fcntl.h>
26
#include <sys/file.h>
27
 
28
 
29
void logwtmp (const char *line, const char *name, const char *host)
30
{
31
    struct utmp lutmp;
32
    memset (&(lutmp), 0, sizeof (struct utmp));
33
 
34
    lutmp.ut_type = (name && *name)? USER_PROCESS : DEAD_PROCESS;
35
    lutmp.ut_pid = getpid();
36
    strncpy(lutmp.ut_line, line, sizeof(lutmp.ut_line)-1);
37
    strncpy(lutmp.ut_name, name, sizeof(lutmp.ut_name)-1);
38
    strncpy(lutmp.ut_host, host, sizeof(lutmp.ut_host)-1);
39
    gettimeofday(&(lutmp.ut_tv), NULL);
40
 
41
    updwtmp(_PATH_WTMP, &(lutmp));
42
}
43
 
44
#if 0
45
/* This is enabled in uClibc/libc/misc/utmp/wtent.c */
46
extern void updwtmp(const char *wtmp_file, const struct utmp *lutmp)
47
{
48
    int fd;
49
 
50
    fd = open(wtmp_file, O_APPEND | O_WRONLY, 0);
51
    if (fd >= 0) {
52
        if (lockf(fd, F_LOCK, 0)==0) {
53
            write(fd, (const char *) lutmp, sizeof(struct utmp));
54
            lockf(fd, F_ULOCK, 0);
55
            close(fd);
56
        }
57
    }
58
}
59
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.