1/*-
2 * Copyright (c) 2002 Networks Associates Technology, Inc.
3 * All rights reserved.
4 *
5 * This software was developed for the FreeBSD Project by ThinkSec AS and
6 * NAI Labs, the Security Research Division of Network Associates, Inc.
7 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
8 * DARPA CHATS research program.
--- 17 unchanged lines hidden (view full) ---
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $P4: //depot/projects/openpam/include/security/openpam.h#14 $
35 */
36
37#ifndef _SECURITY_OPENPAM_H_INCLUDED
38#define _SECURITY_OPENPAM_H_INCLUDED
39
40/*
41 * Annoying but necessary header pollution
42 */
--- 17 unchanged lines hidden (view full) ---
60
61int
62pam_error(pam_handle_t *_pamh,
63 const char *_fmt,
64 ...);
65
66int
67pam_get_authtok(pam_handle_t *_pamh,
68 int _item,
69 const char **_authtok,
70 const char *_prompt);
71
72int
73pam_info(pam_handle_t *_pamh,
74 const char *_fmt,
75 ...);
76
--- 35 unchanged lines hidden (view full) ---
112 PAM_LOG_VERBOSE,
113 PAM_LOG_NOTICE,
114 PAM_LOG_ERROR
115};
116
117/*
118 * Log to syslog
119 */
120void
121_openpam_log(int _level,
122 const char *_func,
123 const char *_fmt,
124 ...);
125
126#if defined(__STDC__) && (__STDC_VERSION__ >= 199901L)
127#define openpam_log(lvl, fmt, ...) \
128 _openpam_log((lvl), __func__, fmt, __VA_ARGS__)
129#elif defined(__GNUC__) && (__GNUC__ >= 2) && (__GNUC_MINOR__ >= 95)
130#define openpam_log(lvl, fmt, ...) \
131 _openpam_log((lvl), __func__, fmt, ##fmt)
132#elif defined(__GNUC__) && defined(__FUNCTION__)
133#define openpam_log(lvl, fmt...) \
134 _openpam_log((lvl), __FUNCTION__, ##fmt)
135#else
136void
137openpam_log(int _level,
138 const char *_format,
139 ...);
140#endif
141
142/*
143 * Generic conversation function
144 */
145struct pam_message;
146struct pam_response;
147int openpam_ttyconv(int _n,
--- 44 unchanged lines hidden (view full) ---
192 pam_module_t *prev;
193 pam_module_t *next;
194};
195
196/*
197 * Infrastructure for static modules using GCC linker sets.
198 * You are not expected to understand this.
199 */
200#if defined(__FreeBSD__)
201#define PAM_SOEXT ".so"
202#else
203#ifndef NO_STATIC_MODULES
204#define NO_STATIC_MODULES
205#endif
206#endif
207#if defined(__GNUC__) && !defined(__PIC__) && !defined(NO_STATIC_MODULES)
208/* gcc, static linking */
209#include <sys/cdefs.h>
210#include <linker_set.h>
211#define OPENPAM_STATIC_MODULES
212#define PAM_EXTERN static
213#define PAM_MODULE_ENTRY(name) \
214static char _pam_name[] = name PAM_SOEXT; \
215static struct pam_module _pam_module = { _pam_name, { \
--- 15 unchanged lines hidden ---
2 * Copyright (c) 2002 Networks Associates Technology, Inc.
3 * All rights reserved.
4 *
5 * This software was developed for the FreeBSD Project by ThinkSec AS and
6 * NAI Labs, the Security Research Division of Network Associates, Inc.
7 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
8 * DARPA CHATS research program.
--- 17 unchanged lines hidden (view full) ---
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $P4: //depot/projects/openpam/include/security/openpam.h#14 $
35 */
36
37#ifndef _SECURITY_OPENPAM_H_INCLUDED
38#define _SECURITY_OPENPAM_H_INCLUDED
39
40/*
41 * Annoying but necessary header pollution
42 */
--- 17 unchanged lines hidden (view full) ---
60
61int
62pam_error(pam_handle_t *_pamh,
63 const char *_fmt,
64 ...);
65
66int
67pam_get_authtok(pam_handle_t *_pamh,
68 int _item,
69 const char **_authtok,
70 const char *_prompt);
71
72int
73pam_info(pam_handle_t *_pamh,
74 const char *_fmt,
75 ...);
76
--- 35 unchanged lines hidden (view full) ---
112 PAM_LOG_VERBOSE,
113 PAM_LOG_NOTICE,
114 PAM_LOG_ERROR
115};
116
117/*
118 * Log to syslog
119 */
120void
121_openpam_log(int _level,
122 const char *_func,
123 const char *_fmt,
124 ...);
125
126#if defined(__STDC__) && (__STDC_VERSION__ >= 199901L)
127#define openpam_log(lvl, fmt, ...) \
128 _openpam_log((lvl), __func__, fmt, __VA_ARGS__)
129#elif defined(__GNUC__) && (__GNUC__ >= 2) && (__GNUC_MINOR__ >= 95)
130#define openpam_log(lvl, fmt, ...) \
131 _openpam_log((lvl), __func__, fmt, ##fmt)
132#elif defined(__GNUC__) && defined(__FUNCTION__)
133#define openpam_log(lvl, fmt...) \
134 _openpam_log((lvl), __FUNCTION__, ##fmt)
135#else
136void
137openpam_log(int _level,
138 const char *_format,
139 ...);
140#endif
141
142/*
143 * Generic conversation function
144 */
145struct pam_message;
146struct pam_response;
147int openpam_ttyconv(int _n,
--- 44 unchanged lines hidden (view full) ---
192 pam_module_t *prev;
193 pam_module_t *next;
194};
195
196/*
197 * Infrastructure for static modules using GCC linker sets.
198 * You are not expected to understand this.
199 */
200#if defined(__FreeBSD__)
201#define PAM_SOEXT ".so"
202#else
203#ifndef NO_STATIC_MODULES
204#define NO_STATIC_MODULES
205#endif
206#endif
207#if defined(__GNUC__) && !defined(__PIC__) && !defined(NO_STATIC_MODULES)
208/* gcc, static linking */
209#include <sys/cdefs.h>
210#include <linker_set.h>
211#define OPENPAM_STATIC_MODULES
212#define PAM_EXTERN static
213#define PAM_MODULE_ENTRY(name) \
214static char _pam_name[] = name PAM_SOEXT; \
215static struct pam_module _pam_module = { _pam_name, { \
--- 15 unchanged lines hidden ---