#ifndef __SOURCE4_AUTH_AUTH_SAM_H__
#define __SOURCE4_AUTH_AUTH_SAM_H__

#undef _PRINTF_ATTRIBUTE
#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
/* This file was automatically generated by mkproto.pl. DO NOT EDIT */

/* this file contains prototypes for functions that are private 
 * to this subsystem or library. These functions should not be 
 * used outside this particular subsystem! */


/* The following definitions come from ../../source4/auth/sam.c  */

NTSTATUS authsam_shallow_copy_user_info_dc(TALLOC_CTX *mem_ctx,
					   const struct auth_user_info_dc *user_info_dc_in,
					   struct auth_user_info_dc **user_info_dc_out);
NTSTATUS sam_get_results_principal(struct ldb_context *sam_ctx,
				   TALLOC_CTX *mem_ctx, const char *principal,
				   const char **attrs,
				   const uint32_t dsdb_flags,
				   struct ldb_dn **domain_dn,
				   struct ldb_message **msg);
NTSTATUS authsam_get_user_info_dc_principal(TALLOC_CTX *mem_ctx,
					   struct loadparm_context *lp_ctx,
					   struct ldb_context *sam_ctx,
					   const char *principal,
					   struct ldb_dn *user_dn,
					   struct auth_user_info_dc **user_info_dc);
NTSTATUS authsam_reread_user_logon_data(
	struct ldb_context *sam_ctx,
	TALLOC_CTX *mem_ctx,
	const struct ldb_message *user_msg,
	struct ldb_message **current);
NTSTATUS authsam_update_bad_pwd_count(struct ldb_context *sam_ctx,
				      struct ldb_message *msg,
				      struct ldb_dn *domain_dn);

/****************************************************************************
 Look for the specified user in the sam, return ldb result structures
****************************************************************************/
NTSTATUS authsam_search_account(TALLOC_CTX *mem_ctx, struct ldb_context *sam_ctx,
					 const char *account_name,
					 struct ldb_dn *domain_dn,
					 struct ldb_message **ret_msg);
NTSTATUS authsam_logon_success_accounting(struct ldb_context *sam_ctx,
					  const struct ldb_message *msg,
					  struct ldb_dn *domain_dn,
					  bool interactive_or_kerberos,
					  TALLOC_CTX *send_to_sam_mem_ctx,
					  struct netr_SendToSamBase **send_to_sam);
#undef _PRINTF_ATTRIBUTE
#define _PRINTF_ATTRIBUTE(a1, a2)

#endif /* __SOURCE4_AUTH_AUTH_SAM_H__ */

