2006-08-31 20:26:32 +04:00
# ifndef _INCLUDE_ADS_H_
# define _INCLUDE_ADS_H_
2001-11-20 14:32:16 +03:00
/*
header for ads ( active directory ) library routines
basically this is a wrapper around ldap
*/
2024-03-06 12:13:11 +03:00
struct cli_credentials ;
struct ads_reconnect_state ;
2011-05-06 14:54:59 +04:00
# include "libads/ads_status.h"
2011-02-24 13:56:08 +03:00
# include "smb_ldap.h"
2016-08-17 12:58:02 +03:00
# include "librpc/gen_ndr/ads.h"
2011-02-24 13:56:08 +03:00
2017-05-05 15:37:20 +03:00
struct ads_saslwrap ;
2007-07-17 14:13:53 +04:00
struct ads_saslwrap_ops {
const char * name ;
2017-05-05 15:37:20 +03:00
ADS_STATUS ( * wrap ) ( struct ads_saslwrap * , uint8_t * buf , uint32_t len ) ;
ADS_STATUS ( * unwrap ) ( struct ads_saslwrap * ) ;
void ( * disconnect ) ( struct ads_saslwrap * ) ;
2007-07-17 14:13:53 +04:00
} ;
2024-03-06 12:13:11 +03:00
struct ads_reconnect_state {
NTSTATUS ( * fn ) ( struct ads_struct * ads ,
void * private_data ,
TALLOC_CTX * mem_ctx ,
struct cli_credentials * * creds ) ;
void * private_data ;
} ;
2016-08-17 12:58:02 +03:00
typedef struct ads_struct ADS_STRUCT ;
2005-06-29 18:03:53 +04:00
2002-02-11 18:48:34 +03:00
# ifdef HAVE_ADS
typedef LDAPMod * * ADS_MODLIST ;
# else
typedef void * * ADS_MODLIST ;
# endif
2001-12-05 12:19:25 +03:00
/* time between reconnect attempts */
# define ADS_RECONNECT_TIME 5
2002-04-10 17:25:40 +04:00
/* ldap control oids */
2005-06-29 18:03:53 +04:00
# define ADS_PAGE_CTL_OID "1.2.840.113556.1.4.319"
# define ADS_NO_REFERRALS_OID "1.2.840.113556.1.4.1339"
# define ADS_SERVER_SORT_OID "1.2.840.113556.1.4.473"
# define ADS_PERMIT_MODIFY_OID "1.2.840.113556.1.4.1413"
2006-02-04 01:19:41 +03:00
# define ADS_ASQ_OID "1.2.840.113556.1.4.1504"
2006-05-18 23:34:25 +04:00
# define ADS_EXTENDED_DN_OID "1.2.840.113556.1.4.529"
2007-06-26 13:15:37 +04:00
# define ADS_SD_FLAGS_OID "1.2.840.113556.1.4.801"
2005-06-29 18:03:53 +04:00
2005-10-21 16:50:39 +04:00
/* ldap bitwise searches */
# define ADS_LDAP_MATCHING_RULE_BIT_AND "1.2.840.113556.1.4.803"
# define ADS_LDAP_MATCHING_RULE_BIT_OR "1.2.840.113556.1.4.804"
2002-08-17 21:00:51 +04:00
# define ADS_PINGS 0x0000FFFF /* Ping response */
2006-05-18 23:34:25 +04:00
enum ads_extended_dn_flags {
ADS_EXTENDED_DN_HEX_STRING = 0 ,
ADS_EXTENDED_DN_STRING = 1 /* not supported on win2k */
} ;
/* this is probably not very well suited to pass other controls generically but
* is good enough for the extended dn control where it is only used for atm */
typedef struct {
const char * control ;
int val ;
int critical ;
} ads_control ;
2007-07-11 13:39:08 +04:00
2010-07-02 02:32:52 +04:00
# include "libads/ads_proto.h"
# ifdef HAVE_LDAP
# include "libads/ads_ldap_protos.h"
# endif
# include "libads/kerberos_proto.h"
2007-08-30 19:39:51 +04:00
2016-08-17 12:58:02 +03:00
# define ADS_TALLOC_CONST_FREE(PTR) do { talloc_free(discard_const(PTR)); PTR = NULL; } while (0);
2007-05-14 13:50:39 +04:00
# endif /* _INCLUDE_ADS_H_ */