/* This file is part of pam-modules. Copyright (C) 2008, 2010-2012, 2014-2015, 2018 Sergey Poznyakoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _graypam_h_ #define _graypam_h_ #if defined(HAVE_CONFIG_H) # include #endif #ifdef HAVE__PAM_ACONF_H #include #endif #include #include #include #include #include #include #include #include #include #include #ifndef LINUX_PAM #include #endif /* LINUX_PAM */ #include #ifndef PAM_CONV_AGAIN # define PAM_CONV_AGAIN PAM_TRY_AGAIN #endif #ifndef PAM_AUTHTOK_RECOVER_ERR # define PAM_AUTHTOK_RECOVER_ERR PAM_AUTHTOK_RECOVERY_ERR #endif #ifndef PAM_EXTERN # define PAM_EXTERN #endif #define XSTRDUP(s) ((s) ? strdup(s) : NULL) #define PAM_OVERWRITE(s) \ do { \ register char *p; \ if ((p = s) != NULL) \ while (*p) *p++ = 0; \ } while (0) #define PAM_DROP_REPLY(reply, nrepl) \ do { \ int i; \ for (i=0; i