diff options
Diffstat (limited to 'source3/libads/ads_status.c')
-rw-r--r-- | source3/libads/ads_status.c | 48 |
1 files changed, 8 insertions, 40 deletions
diff --git a/source3/libads/ads_status.c b/source3/libads/ads_status.c index d85f9c9b58..2d1830435f 100644 --- a/source3/libads/ads_status.c +++ b/source3/libads/ads_status.c @@ -30,49 +30,19 @@ ADS_STATUS ads_build_error(enum ads_error_type etype, int rc, int minor_status) { ADS_STATUS ret; - - if (etype == ADS_ERROR_NT) { - DEBUG(0,("don't use ads_build_error with ADS_ERROR_NT!\n")); - ret.err.rc = -1; - ret.error_type = ADS_ERROR_SYSTEM; - ret.minor_status = 0; - return ret; - } - - ret.err.rc = rc; - ret.error_type = etype; + ret.error_type = etype; + ret.rc = rc; ret.minor_status = minor_status; return ret; } -ADS_STATUS ads_build_nt_error(enum ads_error_type etype, - NTSTATUS nt_status) -{ - ADS_STATUS ret; - - if (etype != ADS_ERROR_NT) { - DEBUG(0,("don't use ads_build_nt_error without ADS_ERROR_NT!\n")); - ret.err.rc = -1; - ret.error_type = ADS_ERROR_SYSTEM; - ret.minor_status = 0; - return ret; - } - ret.err.nt_status = nt_status; - ret.error_type = etype; - ret.minor_status = 0; - return ret; -} - /* do a rough conversion between ads error codes and NT status codes we'll need to fill this in more */ -NTSTATUS ads_ntstatus(ADS_STATUS status) +NTSTATUS ads_ntstatus(ADS_STATUS rc) { - if (status.error_type == ADS_ERROR_NT){ - return status.err.nt_status; - } - if (ADS_ERR_OK(status)) return NT_STATUS_OK; + if (ADS_ERR_OK(rc)) return NT_STATUS_OK; return NT_STATUS_UNSUCCESSFUL; } @@ -89,14 +59,14 @@ const char *ads_errstr(ADS_STATUS status) switch (status.error_type) { case ADS_ERROR_SYSTEM: - return strerror(status.err.rc); + return strerror(status.rc); #ifdef HAVE_LDAP case ADS_ERROR_LDAP: - return ldap_err2string(status.err.rc); + return ldap_err2string(status.rc); #endif #ifdef HAVE_KRB5 case ADS_ERROR_KRB5: - return error_message(status.err.rc); + return error_message(status.rc); #endif #ifdef HAVE_GSSAPI case ADS_ERROR_GSS: @@ -106,7 +76,7 @@ const char *ads_errstr(ADS_STATUS status) gss_buffer_desc msg1, msg2; msg1.value = NULL; msg2.value = NULL; - gss_display_status(&minor, status.err.rc, GSS_C_GSS_CODE, + gss_display_status(&minor, status.rc, GSS_C_GSS_CODE, GSS_C_NULL_OID, &msg_ctx, &msg1); gss_display_status(&minor, status.minor_status, GSS_C_MECH_CODE, GSS_C_NULL_OID, &msg_ctx, &msg2); @@ -116,8 +86,6 @@ const char *ads_errstr(ADS_STATUS status) return ret; } #endif - case ADS_ERROR_NT: - return nt_errstr(ads_ntstatus(status)); default: return "Unknown ADS error type!? (not compiled in?)"; } |