1d74d50a8SDag-Erling Smørgrav /* $Id: port-aix.h,v 1.21 2004/08/14 14:09:12 dtucker Exp $ */ 2d95e11bfSDag-Erling Smørgrav 34b17dab0SDag-Erling Smørgrav /* 44b17dab0SDag-Erling Smørgrav * 54b17dab0SDag-Erling Smørgrav * Copyright (c) 2001 Gert Doering. All rights reserved. 64b17dab0SDag-Erling Smørgrav * 74b17dab0SDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 84b17dab0SDag-Erling Smørgrav * modification, are permitted provided that the following conditions 94b17dab0SDag-Erling Smørgrav * are met: 104b17dab0SDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 114b17dab0SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer. 124b17dab0SDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 134b17dab0SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 144b17dab0SDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 154b17dab0SDag-Erling Smørgrav * 164b17dab0SDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 174b17dab0SDag-Erling Smørgrav * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 184b17dab0SDag-Erling Smørgrav * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 194b17dab0SDag-Erling Smørgrav * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 204b17dab0SDag-Erling Smørgrav * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 214b17dab0SDag-Erling Smørgrav * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 224b17dab0SDag-Erling Smørgrav * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 234b17dab0SDag-Erling Smørgrav * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 244b17dab0SDag-Erling Smørgrav * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 254b17dab0SDag-Erling Smørgrav * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 264b17dab0SDag-Erling Smørgrav */ 274b17dab0SDag-Erling Smørgrav 2883d2307dSDag-Erling Smørgrav #ifdef _AIX 29d0c8c0bcSDag-Erling Smørgrav 30d95e11bfSDag-Erling Smørgrav #ifdef WITH_AIXAUTHENTICATE 31d95e11bfSDag-Erling Smørgrav # include <login.h> 32d95e11bfSDag-Erling Smørgrav # include <userpw.h> 33d95e11bfSDag-Erling Smørgrav # if defined(HAVE_SYS_AUDIT_H) && defined(AIX_LOGINFAILED_4ARG) 34d95e11bfSDag-Erling Smørgrav # include <sys/audit.h> 35d95e11bfSDag-Erling Smørgrav # endif 36d95e11bfSDag-Erling Smørgrav # include <usersec.h> 37d95e11bfSDag-Erling Smørgrav #endif 38d95e11bfSDag-Erling Smørgrav 39d95e11bfSDag-Erling Smørgrav /* Some versions define r_type in the above headers, which causes a conflict */ 40d95e11bfSDag-Erling Smørgrav #ifdef r_type 41d95e11bfSDag-Erling Smørgrav # undef r_type 42d95e11bfSDag-Erling Smørgrav #endif 43d95e11bfSDag-Erling Smørgrav 44d0c8c0bcSDag-Erling Smørgrav /* AIX 4.2.x doesn't have nanosleep but does have nsleep which is equivalent */ 45d0c8c0bcSDag-Erling Smørgrav #if !defined(HAVE_NANOSLEEP) && defined(HAVE_NSLEEP) 46d0c8c0bcSDag-Erling Smørgrav # define nanosleep(a,b) nsleep(a,b) 47d0c8c0bcSDag-Erling Smørgrav #endif 48d0c8c0bcSDag-Erling Smørgrav 49d0c8c0bcSDag-Erling Smørgrav /* For struct timespec on AIX 4.2.x */ 50d0c8c0bcSDag-Erling Smørgrav #ifdef HAVE_SYS_TIMERS_H 51d0c8c0bcSDag-Erling Smørgrav # include <sys/timers.h> 52d0c8c0bcSDag-Erling Smørgrav #endif 53d0c8c0bcSDag-Erling Smørgrav 54efcad6b7SDag-Erling Smørgrav /* 55efcad6b7SDag-Erling Smørgrav * According to the setauthdb man page, AIX password registries must be 15 56efcad6b7SDag-Erling Smørgrav * chars or less plus terminating NUL. 57efcad6b7SDag-Erling Smørgrav */ 58efcad6b7SDag-Erling Smørgrav #ifdef HAVE_SETAUTHDB 59efcad6b7SDag-Erling Smørgrav # define REGISTRY_SIZE 16 60d95e11bfSDag-Erling Smørgrav #endif 61d95e11bfSDag-Erling Smørgrav 62d95e11bfSDag-Erling Smørgrav void aix_usrinfo(struct passwd *); 63efcad6b7SDag-Erling Smørgrav 64efcad6b7SDag-Erling Smørgrav #ifdef WITH_AIXAUTHENTICATE 65efcad6b7SDag-Erling Smørgrav # define CUSTOM_SYS_AUTH_PASSWD 1 66d74d50a8SDag-Erling Smørgrav # define CUSTOM_SYS_AUTH_ALLOWED_USER 1 67d74d50a8SDag-Erling Smørgrav int sys_auth_allowed_user(struct passwd *); 68d74d50a8SDag-Erling Smørgrav # define CUSTOM_SYS_AUTH_RECORD_LOGIN 1 69d74d50a8SDag-Erling Smørgrav int sys_auth_record_login(const char *, const char *, const char *); 70efcad6b7SDag-Erling Smørgrav # define CUSTOM_FAILED_LOGIN 1 71efcad6b7SDag-Erling Smørgrav void record_failed_login(const char *, const char *); 72efcad6b7SDag-Erling Smørgrav #endif 73efcad6b7SDag-Erling Smørgrav 74efcad6b7SDag-Erling Smørgrav void aix_setauthdb(const char *); 75efcad6b7SDag-Erling Smørgrav void aix_restoreauthdb(void); 76d95e11bfSDag-Erling Smørgrav void aix_remove_embedded_newlines(char *); 7783d2307dSDag-Erling Smørgrav #endif /* _AIX */ 78