/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_ads
#define _PIDL_HEADER_ads

#include <stdint.h>


#include "librpc/gen_ndr/nbt.h"
#include "librpc/gen_ndr/netlogon.h"
#include <system/network.h>
#ifndef _HEADER_ads
#define _HEADER_ads

#define ADS_SASL_WRAPPING_IN_MAX_WRAPPED	( 0x0FFFFFFF )
#define ADS_SASL_WRAPPING_OUT_MAX_WRAPPED	( 0x00A00000 )
enum ads_saslwrap_type
#ifndef USE_UINT_ENUMS
 {
	ADS_SASLWRAP_TYPE_PLAIN=(int)(1),
	ADS_SASLWRAP_TYPE_SIGN=(int)(2),
	ADS_SASLWRAP_TYPE_SEAL=(int)(4)
}
#else
 { __do_not_use_enum_ads_saslwrap_type=INT_MAX}
#define ADS_SASLWRAP_TYPE_PLAIN ( 1 )
#define ADS_SASLWRAP_TYPE_SIGN ( 2 )
#define ADS_SASLWRAP_TYPE_SEAL ( 4 )
#endif
;

/* bitmap ads_auth_flags */
#define ADS_AUTH_NO_BIND ( 0x0002 )
#define ADS_AUTH_ANON_BIND ( 0x0004 )
#define ADS_AUTH_SASL_SIGN ( 0x0020 )
#define ADS_AUTH_SASL_SEAL ( 0x0040 )
#define ADS_AUTH_SASL_FORCE ( 0x0080 )
#define ADS_AUTH_SASL_STARTTLS ( 0x0200 )
#define ADS_AUTH_SASL_LDAPS ( 0x0400 )
#define ADS_AUTH_GENERATE_KRB5_CONFIG ( 0x0800 )

struct ads_server {
	const char * realm;
	const char * workgroup;
	const char * ldap_server;
	uint8_t gc;
	uint8_t no_fallback;
}/* [nopull,nopush] */;

struct ads_auth {
	const char * kdc_server;
	uint32_t flags;
	NTTIME expire_time;
	struct ads_reconnect_state *reconnect_state;/* [ignore] */
}/* [nopull,nopush] */;

struct ads_config {
	uint32_t server_flags;
	uint32_t required_flags;
	const char * workgroup;
	const char * realm;
	const char * bind_path;
	const char * ldap_server_name;
	const char * server_site_name;
	const char * client_site_name;
	time_t current_time;
	int32_t time_offset;
	const char * schema_path;
	const char * config_path;
	int32_t ldap_page_size;
}/* [nopull,nopush] */;

struct ads_ldap_buf_in {
	uint32_t ofs;
	uint32_t needed;
	uint32_t left;
	uint32_t max_wrapped;
	uint32_t min_wrapped;
	uint32_t size;
	uint8_t *buf;/* [unique] */
}/* [nopull,nopush] */;

struct ads_ldap_buf_out {
	uint32_t ofs;
	uint32_t left;
	uint32_t max_unwrapped;
	uint32_t sig_size;
	uint32_t size;
	uint8_t *buf;/* [unique] */
}/* [nopull,nopush] */;

struct ads_saslwrap {
	enum ads_saslwrap_type wrap_type;
	struct ads_saslwrap_ops *wrap_ops;/* [ignore] */
	struct sockbuf_io_desc *sbiod;/* [ignore] */
	struct TALLOC_CTX *mem_ctx;/* [ignore] */
	void *wrap_private_data;/* [ignore] */
	struct ads_ldap_buf_in in;
	struct ads_ldap_buf_out out;
}/* [nopull,nopush] */;

struct ads_tlswrap {
	struct TALLOC_CTX *mem_ctx;/* [ignore] */
	struct timeval endtime;/* [ignore] */
	struct sockbuf_io_desc *sbiod;/* [ignore] */
	struct tstream_tls_params *tls_params;/* [ignore] */
	struct tstream_tls_sync *tls_sync;/* [ignore] */
}/* [nopull,nopush] */;

struct ads_ldap {
	struct ldap *ld;/* [ignore] */
	struct sockaddr_storage ss;
	time_t last_attempt;
	int32_t port;
}/* [nopull,nopush] */;

struct ads_struct {
	struct ads_server server;
	struct ads_auth auth;
	struct ads_config config;
	struct ads_saslwrap ldap_wrap_data;
	struct ads_tlswrap ldap_tls_data;
	struct ads_ldap ldap;
}/* [nopull,nopush,public] */;

#endif /* _HEADER_ads */
#endif /* _PIDL_HEADER_ads */
