2006-08-31 16:26:32 +00:00
# ifndef _INCLUDE_ADS_H_
# define _INCLUDE_ADS_H_
2001-11-20 11:32:16 +00:00
/*
header for ads ( active directory ) library routines
basically this is a wrapper around ldap
*/
2011-05-06 12:54:59 +02:00
# include "libads/ads_status.h"
2011-02-24 11:56:08 +01:00
# include "smb_ldap.h"
2016-08-17 11:58:02 +02:00
# include "librpc/gen_ndr/ads.h"
2011-02-24 11:56:08 +01:00
2017-05-05 15:37:20 +03:00
struct ads_saslwrap ;
2007-07-17 10:13:53 +00: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 10:13:53 +00:00
} ;
2016-08-17 11:58:02 +02:00
typedef struct ads_struct ADS_STRUCT ;
2005-06-29 14:03:53 +00:00
2002-02-11 15:48:34 +00:00
# ifdef HAVE_ADS
typedef LDAPMod * * ADS_MODLIST ;
# else
typedef void * * ADS_MODLIST ;
# endif
2001-12-05 09:19:25 +00:00
/* time between reconnect attempts */
# define ADS_RECONNECT_TIME 5
2002-04-10 13:25:40 +00:00
/* ldap control oids */
2005-06-29 14:03:53 +00: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-03 22:19:41 +00:00
# define ADS_ASQ_OID "1.2.840.113556.1.4.1504"
2006-05-18 19:34:25 +00:00
# define ADS_EXTENDED_DN_OID "1.2.840.113556.1.4.529"
2007-06-26 09:15:37 +00:00
# define ADS_SD_FLAGS_OID "1.2.840.113556.1.4.801"
2005-06-29 14:03:53 +00:00
2005-10-21 12:50:39 +00: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 17:00:51 +00:00
# define ADS_PINGS 0x0000FFFF /* Ping response */
2006-05-18 19:34:25 +00: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 09:39:08 +00:00
2010-07-02 00:32:52 +02:00
# include "libads/ads_proto.h"
# ifdef HAVE_LDAP
# include "libads/ads_ldap_protos.h"
# endif
# include "libads/kerberos_proto.h"
2007-08-30 15:39:51 +00:00
2016-08-17 11:58:02 +02:00
# define ADS_TALLOC_CONST_FREE(PTR) do { talloc_free(discard_const(PTR)); PTR = NULL; } while (0);
2007-05-14 09:50:39 +00:00
# endif /* _INCLUDE_ADS_H_ */