From e64df82146cf62ae6e13b8e4c1adcc8b49b2fd6d Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 31 May 2010 12:51:58 +0200 Subject: s3-libads: move ads_status to a separate header file. Guenther --- source3/include/ads.h | 33 --------------------------------- source3/include/includes.h | 1 + source3/include/proto.h | 10 ---------- source3/libads/ads_status.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 43 deletions(-) create mode 100644 source3/libads/ads_status.h (limited to 'source3') diff --git a/source3/include/ads.h b/source3/include/ads.h index 132586fe31..e48e0a2650 100644 --- a/source3/include/ads.h +++ b/source3/include/ads.h @@ -41,21 +41,6 @@ enum wb_posix_mapping { WB_POSIX_MAP_UNIXINFO = 4 }; -/* there are 5 possible types of errors the ads subsystem can produce */ -enum ads_error_type {ENUM_ADS_ERROR_KRB5, ENUM_ADS_ERROR_GSS, - ENUM_ADS_ERROR_LDAP, ENUM_ADS_ERROR_SYSTEM, ENUM_ADS_ERROR_NT}; - -typedef struct { - enum ads_error_type error_type; - union err_state{ - int rc; - NTSTATUS nt_status; - } err; - /* For error_type = ENUM_ADS_ERROR_GSS minor_status describe GSS API error */ - /* Where rc represents major_status of GSS API error */ - int minor_status; -} ADS_STATUS; - struct ads_struct; struct ads_saslwrap_ops { @@ -169,24 +154,6 @@ typedef LDAPMod **ADS_MODLIST; typedef void **ADS_MODLIST; #endif -/* macros to simplify error returning */ -#define ADS_ERROR(rc) ADS_ERROR_LDAP(rc) -#define ADS_ERROR_LDAP(rc) ads_build_error(ENUM_ADS_ERROR_LDAP, rc, 0) -#define ADS_ERROR_SYSTEM(rc) ads_build_error(ENUM_ADS_ERROR_SYSTEM, rc?rc:EINVAL, 0) -#define ADS_ERROR_KRB5(rc) ads_build_error(ENUM_ADS_ERROR_KRB5, rc, 0) -#define ADS_ERROR_GSS(rc, minor) ads_build_error(ENUM_ADS_ERROR_GSS, rc, minor) -#define ADS_ERROR_NT(rc) ads_build_nt_error(ENUM_ADS_ERROR_NT,rc) - -#define ADS_ERR_OK(status) ((status.error_type == ENUM_ADS_ERROR_NT) ? NT_STATUS_IS_OK(status.err.nt_status):(status.err.rc == 0)) -#define ADS_SUCCESS ADS_ERROR(0) - -#define ADS_ERROR_HAVE_NO_MEMORY(x) do { \ - if (!(x)) {\ - return ADS_ERROR(LDAP_NO_MEMORY);\ - }\ -} while (0) - - /* time between reconnect attempts */ #define ADS_RECONNECT_TIME 5 diff --git a/source3/include/includes.h b/source3/include/includes.h index 6a64db3556..0638fa3071 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -627,6 +627,7 @@ extern void *cmdline_lp_ctx; #include "../lib/util/asn1.h" #include "krb5_env.h" +#include "libads/ads_status.h" #include "ads.h" #include "ads_dns.h" #include "interfaces.h" diff --git a/source3/include/proto.h b/source3/include/proto.h index 28feec34e2..d41157e7cd 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1753,16 +1753,6 @@ void wins_srv_tags_free(char **list); struct in_addr wins_srv_ip_tag(const char *tag, struct in_addr src_ip); unsigned wins_srv_count_tag(const char *tag); -/* The following definitions come from libads/ads_status.c */ - -ADS_STATUS ads_build_error(enum ads_error_type etype, - int rc, int minor_status); -ADS_STATUS ads_build_nt_error(enum ads_error_type etype, - NTSTATUS nt_status); -NTSTATUS ads_ntstatus(ADS_STATUS status); -const char *ads_errstr(ADS_STATUS status); -NTSTATUS gss_err_to_ntstatus(uint32 maj, uint32 min); - /* The following definitions come from libads/ads_struct.c */ char *ads_build_path(const char *realm, const char *sep, const char *field, int reverse); diff --git a/source3/libads/ads_status.h b/source3/libads/ads_status.h new file mode 100644 index 0000000000..4c27e16f50 --- /dev/null +++ b/source3/libads/ads_status.h @@ -0,0 +1,42 @@ + +/* there are 5 possible types of errors the ads subsystem can produce */ +enum ads_error_type {ENUM_ADS_ERROR_KRB5, ENUM_ADS_ERROR_GSS, + ENUM_ADS_ERROR_LDAP, ENUM_ADS_ERROR_SYSTEM, ENUM_ADS_ERROR_NT}; + +typedef struct { + enum ads_error_type error_type; + union err_state{ + int rc; + NTSTATUS nt_status; + } err; + /* For error_type = ENUM_ADS_ERROR_GSS minor_status describe GSS API error */ + /* Where rc represents major_status of GSS API error */ + int minor_status; +} ADS_STATUS; + +/* macros to simplify error returning */ +#define ADS_ERROR(rc) ADS_ERROR_LDAP(rc) +#define ADS_ERROR_LDAP(rc) ads_build_error(ENUM_ADS_ERROR_LDAP, rc, 0) +#define ADS_ERROR_SYSTEM(rc) ads_build_error(ENUM_ADS_ERROR_SYSTEM, rc?rc:EINVAL, 0) +#define ADS_ERROR_KRB5(rc) ads_build_error(ENUM_ADS_ERROR_KRB5, rc, 0) +#define ADS_ERROR_GSS(rc, minor) ads_build_error(ENUM_ADS_ERROR_GSS, rc, minor) +#define ADS_ERROR_NT(rc) ads_build_nt_error(ENUM_ADS_ERROR_NT,rc) + +#define ADS_ERR_OK(status) ((status.error_type == ENUM_ADS_ERROR_NT) ? NT_STATUS_IS_OK(status.err.nt_status):(status.err.rc == 0)) +#define ADS_SUCCESS ADS_ERROR(0) + +#define ADS_ERROR_HAVE_NO_MEMORY(x) do { \ + if (!(x)) {\ + return ADS_ERROR(LDAP_NO_MEMORY);\ + }\ +} while (0) + +/* The following definitions come from libads/ads_status.c */ + +ADS_STATUS ads_build_error(enum ads_error_type etype, + int rc, int minor_status); +ADS_STATUS ads_build_nt_error(enum ads_error_type etype, + NTSTATUS nt_status); +NTSTATUS ads_ntstatus(ADS_STATUS status); +const char *ads_errstr(ADS_STATUS status); +NTSTATUS gss_err_to_ntstatus(uint32 maj, uint32 min); -- cgit