Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libpam / modules / pam_permit / pam_permit.c
1 /* pam_permit module */
2
3 /*
4  * $Id: pam_permit.c,v 1.5 1997/02/15 19:03:15 morgan Exp $
5  * $FreeBSD: src/contrib/libpam/modules/pam_permit/pam_permit.c,v 1.3.4.2 2001/06/11 15:28:23 markm Exp $
6  *
7  * Written by Andrew Morgan <morgan@parc.power.net> 1996/3/11
8  *
9  * $Log: pam_permit.c,v $
10  * Revision 1.5  1997/02/15 19:03:15  morgan
11  * fixed email address
12  *
13  * Revision 1.4  1997/02/15 16:03:10  morgan
14  * force a name for user
15  *
16  * Revision 1.3  1996/06/02 08:10:14  morgan
17  * updated for new static protocol
18  *
19  */
20
21 #define DEFAULT_USER "nobody"
22
23 #include <stdio.h>
24
25 /*
26  * here, we make definitions for the externally accessible functions
27  * in this file (these definitions are required for static modules
28  * but strongly encouraged generally) they are used to instruct the
29  * modules include file to define their prototypes.
30  */
31
32 #define PAM_SM_AUTH
33 #define PAM_SM_ACCOUNT
34 #define PAM_SM_SESSION
35 #define PAM_SM_PASSWORD
36
37 #include <security/pam_modules.h>
38 #include <security/_pam_macros.h>
39
40 /* --- authentication management functions --- */
41
42 PAM_EXTERN
43 int pam_sm_authenticate(pam_handle_t *pamh,int flags,int argc
44                         ,const char **argv)
45 {
46     int retval;
47     const char *user=NULL;
48
49     /*
50      * authentication requires we know who the user wants to be
51      */
52     retval = pam_get_user(pamh, &user, NULL);
53     if (retval != PAM_SUCCESS) {
54         D(("get user returned error: %s", pam_strerror(pamh,retval)));
55         return retval;
56     }
57     if (user == NULL || *user == '\0') {
58         D(("username not known"));
59         pam_set_item(pamh, PAM_USER, (const void *) DEFAULT_USER);
60     }
61     user = NULL;                                            /* clean up */
62
63     return PAM_SUCCESS;
64 }
65
66 PAM_EXTERN
67 int pam_sm_setcred(pam_handle_t *pamh,int flags,int argc
68                    ,const char **argv)
69 {
70      return PAM_SUCCESS;
71 }
72
73 /* --- account management functions --- */
74
75 PAM_EXTERN
76 int pam_sm_acct_mgmt(pam_handle_t *pamh,int flags,int argc
77                      ,const char **argv)
78 {
79      return PAM_SUCCESS;
80 }
81
82 /* --- password management --- */
83
84 PAM_EXTERN
85 int pam_sm_chauthtok(pam_handle_t *pamh,int flags,int argc
86                      ,const char **argv)
87 {
88      return PAM_SUCCESS;
89 }
90
91 /* --- session management --- */
92
93 PAM_EXTERN
94 int pam_sm_open_session(pam_handle_t *pamh,int flags,int argc
95                         ,const char **argv)
96 {
97     return PAM_SUCCESS;
98 }
99
100 PAM_EXTERN
101 int pam_sm_close_session(pam_handle_t *pamh,int flags,int argc
102                          ,const char **argv)
103 {
104      return PAM_SUCCESS;
105 }
106
107 /* end of module definition */
108
109 PAM_MODULE_ENTRY("pam_permit");