#include "config.h"
#endif
-#ifndef __cplusplus
+/* only do the C++ reserved word check when we compile
+ to include --with-developer since too many systems
+ still have comflicts with their header files (e.g. IRIX 6.4) */
+
+#if !defined(__cplusplus) && defined(DEVELOPER)
#define class #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
#define private #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
#define public #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
#include <sys/types.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#if HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#endif
#if !defined(int16) && !defined(HAVE_INT16_FROM_RPC_RPC_H)
-#if (SIZEOF_SHORT == 4)
-#define int16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
-#else /* SIZEOF_SHORT != 4 */
-#define int16 short
-#endif /* SIZEOF_SHORT != 4 */
+# if (SIZEOF_SHORT == 4)
+# define int16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
+# else /* SIZEOF_SHORT != 4 */
+# define int16 short
+# endif /* SIZEOF_SHORT != 4 */
+ /* needed to work around compile issue on HP-UX 11.x */
+# define _INT16 1
#endif
/*
#endif
#if !defined(int32) && !defined(HAVE_INT32_FROM_RPC_RPC_H)
-#if (SIZEOF_INT == 4)
-#define int32 int
-#elif (SIZEOF_LONG == 4)
-#define int32 long
-#elif (SIZEOF_SHORT == 4)
-#define int32 short
-#else
-/* uggh - no 32 bit type?? probably a CRAY. just hope this works ... */
-#define int32 int
-#endif
+# if (SIZEOF_INT == 4)
+# define int32 int
+# elif (SIZEOF_LONG == 4)
+# define int32 long
+# elif (SIZEOF_SHORT == 4)
+# define int32 short
+# else
+ /* uggh - no 32 bit type?? probably a CRAY. just hope this works ... */
+# define int32 int
+# endif
+ /* needed to work around compile issue on HP-UX 11.x */
+# define _INT32 1
#endif
/*
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
+#ifndef _BOOL
+typedef int BOOL;
+#define _BOOL /* So we don't typedef BOOL again in vfs.h */
+#endif
+
#ifndef HAVE_STRERROR
extern char *sys_errlist[];
#define strerror(i) sys_errlist[i]
#include "intl.h"
#include "dlinklist.h"
#include "tdb/tdb.h"
-#include "tdb/spinlock.h"
#include "tdb/tdbutil.h"
+#include "tdb/tdbback.h"
#include "talloc.h"
/* And a little extension. Abort on type mismatch */
#include "nt_status.h"
#include "ads.h"
+#include "ads_dns.h"
#include "interfaces.h"
#include "trans2.h"
#include "nterr.h"
#include "messages.h"
#include "charset.h"
#include "dynconfig.h"
-
#include "util_getent.h"
-
#include "debugparse.h"
-
#include "version.h"
-
#include "privileges.h"
-
#include "smb.h"
-
+#include "ads_cldap.h"
#include "nameserv.h"
-
#include "secrets.h"
-
#include "byteorder.h"
-
#include "privileges.h"
-
#include "rpc_misc.h"
-
#include "rpc_dce.h"
-
#include "mapping.h"
-
#include "passdb.h"
-
#include "rpc_secdes.h"
-
#include "authdata.h"
-
#include "msdfs.h"
-
-#include "smbprofile.h"
-
#include "rap.h"
-
#include "md5.h"
#include "hmacmd5.h"
-
#include "ntlmssp.h"
-
#include "auth.h"
-
#include "ntdomain.h"
-
#include "rpc_svcctl.h"
#include "rpc_ntsvcs.h"
#include "rpc_lsa.h"
#include "rpc_ds.h"
#include "rpc_echo.h"
#include "rpc_shutdown.h"
+#include "rpc_unixinfo.h"
#include "rpc_perfcount.h"
#include "rpc_perfcount_defs.h"
-
#include "nt_printing.h"
-
#include "idmap.h"
-
#include "client.h"
#ifdef WITH_SMBWRAPPER
#endif
#include "session.h"
-
#include "asn_1.h"
-
#include "popt.h"
-
#include "mangle.h"
-
#include "module.h"
-
#include "nsswitch/winbind_client.h"
-
#include "spnego.h"
-
#include "rpc_client.h"
-
#include "event.h"
+#include "libndr/libndr.h"
+
/*
* Type for wide character dirent structure.
* Only d_name is defined by POSIX.
#include "smb_ldap.h"
+/*
+ * Reasons for cache flush.
+ */
+
+enum flush_reason_enum {
+ SEEK_FLUSH,
+ READ_FLUSH,
+ WRITE_FLUSH,
+ READRAW_FLUSH,
+ OPLOCK_RELEASE_FLUSH,
+ CLOSE_FLUSH,
+ SYNC_FLUSH,
+ SIZECHANGE_FLUSH,
+ /* NUM_FLUSH_REASONS must remain the last value in the enumeration. */
+ NUM_FLUSH_REASONS};
+
+#ifndef HAVE_COMPARISON_FN_T
+typedef int (*comparison_fn_t)(const void *, const void *);
+#endif
+
/***** automatically generated prototypes *****/
#ifndef NO_PROTO_H
#include "proto.h"
#endif
+/* We need this after proto.h to reference GetTimeOfDay(). */
+#include "smbprofile.h"
+
/* String routines */
#include "srvstr.h"
#if defined(HAVE_KRB5)
+krb5_error_code smb_krb5_parse_name(krb5_context context,
+ const char *name, /* in unix charset */
+ krb5_principal *principal);
+
+krb5_error_code smb_krb5_unparse_name(krb5_context context,
+ krb5_const_principal principal,
+ char **unix_name);
+
#ifndef HAVE_KRB5_SET_REAL_TIME
krb5_error_code krb5_set_real_time(krb5_context context, int32_t seconds, int32_t microseconds);
#endif
PAC_LOGON_INFO *get_logon_info_from_pac(PAC_DATA *pac_data);
krb5_error_code smb_krb5_renew_ticket(const char *ccache_string, const char *client_string, const char *service_string, time_t *new_start_time);
krb5_error_code kpasswd_err_to_krb5_err(krb5_error_code res_code);
+krb5_error_code smb_krb5_gen_netbios_krb5_address(smb_krb5_addresses **kerb_addr);
+krb5_error_code smb_krb5_free_addresses(krb5_context context, smb_krb5_addresses *addr);
NTSTATUS krb5_to_nt_status(krb5_error_code kerberos_error);
krb5_error_code nt_status_to_krb5(NTSTATUS nt_status);
+void smb_krb5_free_error(krb5_context context, krb5_error *krberror);
+krb5_error_code handle_krberror_packet(krb5_context context,
+ krb5_data *packet);
#endif /* HAVE_KRB5 */