/* Unix SMB/CIFS implementation. Copyright (C) Andrew Tridgell 2001 Copyright (C) Remus Koos 2001 Copyright (C) Jim McDonough 2002 Copyright (C) Guenther Deschner 2005 Copyright (C) Gerald Carter 2006 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 _SMB_LDAP_H #define _SMB_LDAP_H #if HAVE_LBER_H #include #if defined(HPUX) && !defined(_LBER_TYPES_H) /* Define ber_tag_t and ber_int_t for using * HP LDAP-UX Integration products' LDAP libraries. */ #ifndef ber_tag_t typedef unsigned long ber_tag_t; typedef int ber_int_t; #endif #endif /* defined(HPUX) && !defined(_LBER_TYPES_H) */ #ifndef LBER_USE_DER #define LBER_USE_DER 0x01 #endif #endif /* HAVE_LBER_H */ #if HAVE_LDAP_H #include #ifndef LDAP_CONST #define LDAP_CONST const #endif #ifdef HAVE_LDAP_PVT_H #include #endif /* HAVE_LDAP_PVT_H */ #ifdef HAVE_LDAP_INIT_FD int ldap_init_fd(ber_socket_t fd, int proto, char *uri, LDAP **ldp); #endif /* function declarations not included in proto.h */ LDAP *ldap_open_with_timeout(const char *server, struct sockaddr_storage *ss, int port, unsigned int to); #ifndef LDAP_OPT_SUCCESS #define LDAP_OPT_SUCCESS 0 #endif /* Solaris 8 and maybe other LDAP implementations spell this "..._INPROGRESS": */ #if defined(LDAP_SASL_BIND_INPROGRESS) && !defined(LDAP_SASL_BIND_IN_PROGRESS) #define LDAP_SASL_BIND_IN_PROGRESS LDAP_SASL_BIND_INPROGRESS #endif /* Solaris 8 defines SSL_LDAP_PORT, not LDAPS_PORT and it only does so if LDAP_SSL is defined - but SSL is not working. We just want the port number! Let's just define LDAPS_PORT correct. */ #if !defined(LDAPS_PORT) #define LDAPS_PORT 636 #endif #endif /* HAVE_LDAP_H */ #ifndef HAVE_LDAP #define LDAP void #define LDAPMessage void #define LDAPMod void #define LDAP_CONST const #define LDAPControl void struct berval; struct ldapsam_privates; #endif /* HAVE_LDAP */ #ifndef LDAP_OPT_SUCCESS #define LDAP_OPT_SUCCESS 0 #endif #define LDAP_DEFAULT_TIMEOUT 15 #define LDAP_CONNECTION_DEFAULT_TIMEOUT 2 #define LDAP_PAGE_SIZE 1024 #define ADS_PAGE_CTL_OID "1.2.840.113556.1.4.319" /* * Work around versions of the LDAP client libs that don't have the OIDs * defined, or have them defined under the old name. * This functionality is really a factor of the server, not the client * */ #if defined(LDAP_EXOP_X_MODIFY_PASSWD) && !defined(LDAP_EXOP_MODIFY_PASSWD) #define LDAP_EXOP_MODIFY_PASSWD LDAP_EXOP_X_MODIFY_PASSWD #elif !defined(LDAP_EXOP_MODIFY_PASSWD) #define LDAP_EXOP_MODIFY_PASSWD "1.3.6.1.4.1.4203.1.11.1" #endif #if defined(LDAP_EXOP_X_MODIFY_PASSWD_ID) && !defined(LDAP_EXOP_MODIFY_PASSWD_ID) #define LDAP_TAG_EXOP_MODIFY_PASSWD_ID LDAP_EXOP_X_MODIFY_PASSWD_ID #elif !defined(LDAP_EXOP_MODIFY_PASSWD_ID) #define LDAP_TAG_EXOP_MODIFY_PASSWD_ID ((ber_tag_t) 0x80U) #endif #if defined(LDAP_EXOP_X_MODIFY_PASSWD_NEW) && !defined(LDAP_EXOP_MODIFY_PASSWD_NEW) #define LDAP_TAG_EXOP_MODIFY_PASSWD_NEW LDAP_EXOP_X_MODIFY_PASSWD_NEW #elif !defined(LDAP_EXOP_MODIFY_PASSWD_NEW) #define LDAP_TAG_EXOP_MODIFY_PASSWD_NEW ((ber_tag_t) 0x82U) #endif #endif /* _SMB_LDAP_H */