Initial commit for Tizen
[profile/extras/shadow-utils.git] / libmisc / failure.h
1 /*
2  * Copyright (c) 1990 - 1994, Julianne Frances Haugh
3  * Copyright (c) 1997 - 2000, Marek Michałkiewicz
4  * Copyright (c) 2005       , Tomasz Kłoczko
5  * Copyright (c) 2008 - 2009, Nicolas François
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. The name of the copyright holders or contributors may not be used to
17  *    endorse or promote products derived from this software without
18  *    specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23  * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
24  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33 /* $Id: failure.h 2831 2009-04-28 19:19:33Z nekral-guest $ */
34 #ifndef _FAILURE_H_
35 #define _FAILURE_H_
36
37 #include "defines.h"
38 #include "faillog.h"
39 #ifdef USE_UTMPX
40 #include <utmpx.h>
41 #else                                   /* !USE_UTMPX */
42 #include <utmp.h>
43 #endif                                  /* !USE_UTMPX */
44
45 /*
46  * failure - make failure entry
47  *
48  *      failure() creates a new (struct faillog) entry or updates an
49  *      existing one with the current failed login information.
50  */
51 extern void failure (uid_t, const char *, struct faillog *);
52
53 /*
54  * failcheck - check for failures > allowable
55  *
56  *      failcheck() is called AFTER the password has been validated.  If the
57  *      account has been "attacked" with too many login failures, failcheck()
58  *      returns FALSE to indicate that the login should be denied even though
59  *      the password is valid.
60  */
61 extern int failcheck (uid_t uid, struct faillog *fl, bool failed);
62
63 /*
64  * failprint - print line of failure information
65  *
66  *      failprint takes a (struct faillog) entry and formats it into a
67  *      message which is displayed at login time.
68  */
69 extern void failprint (const struct faillog *);
70
71 /*
72  * failtmp - update the cummulative failure log
73  *
74  *      failtmp updates the (struct utmp) formatted failure log which
75  *      maintains a record of all login failures.
76  */
77 #ifdef USE_UTMPX
78 extern void failtmp (const char *username, const struct utmpx *);
79 #else                           /* !USE_UTMPX */
80 extern void failtmp (const char *username, const struct utmp *);
81 #endif                          /* !USE_UTMPX */
82
83 #endif
84