nterr.c
来自「samba最新软件」· C语言 代码 · 共 895 行 · 第 1/4 页
C
895 行
LDAP_CODE(LDAP_SUCCESS), LDAP_CODE(LDAP_OPERATIONS_ERROR), LDAP_CODE(LDAP_PROTOCOL_ERROR), LDAP_CODE(LDAP_TIME_LIMIT_EXCEEDED), LDAP_CODE(LDAP_SIZE_LIMIT_EXCEEDED), LDAP_CODE(LDAP_COMPARE_FALSE), LDAP_CODE(LDAP_COMPARE_TRUE), LDAP_CODE(LDAP_AUTH_METHOD_NOT_SUPPORTED), LDAP_CODE(LDAP_STRONG_AUTH_REQUIRED), LDAP_CODE(LDAP_REFERRAL), LDAP_CODE(LDAP_ADMIN_LIMIT_EXCEEDED), LDAP_CODE(LDAP_UNAVAILABLE_CRITICAL_EXTENSION), LDAP_CODE(LDAP_CONFIDENTIALITY_REQUIRED), LDAP_CODE(LDAP_SASL_BIND_IN_PROGRESS), LDAP_CODE(LDAP_NO_SUCH_ATTRIBUTE), LDAP_CODE(LDAP_UNDEFINED_ATTRIBUTE_TYPE), LDAP_CODE(LDAP_INAPPROPRIATE_MATCHING), LDAP_CODE(LDAP_CONSTRAINT_VIOLATION), LDAP_CODE(LDAP_ATTRIBUTE_OR_VALUE_EXISTS), LDAP_CODE(LDAP_INVALID_ATTRIBUTE_SYNTAX), LDAP_CODE(LDAP_NO_SUCH_OBJECT), LDAP_CODE(LDAP_ALIAS_PROBLEM), LDAP_CODE(LDAP_INVALID_DN_SYNTAX), LDAP_CODE(LDAP_ALIAS_DEREFERENCING_PROBLEM), LDAP_CODE(LDAP_INAPPROPRIATE_AUTHENTICATION), LDAP_CODE(LDAP_INVALID_CREDENTIALS), LDAP_CODE(LDAP_INSUFFICIENT_ACCESS_RIGHTS), LDAP_CODE(LDAP_BUSY), LDAP_CODE(LDAP_UNAVAILABLE), LDAP_CODE(LDAP_UNWILLING_TO_PERFORM), LDAP_CODE(LDAP_LOOP_DETECT), LDAP_CODE(LDAP_NAMING_VIOLATION), LDAP_CODE(LDAP_OBJECT_CLASS_VIOLATION), LDAP_CODE(LDAP_NOT_ALLOWED_ON_NON_LEAF), LDAP_CODE(LDAP_NOT_ALLOWED_ON_RDN), LDAP_CODE(LDAP_ENTRY_ALREADY_EXISTS), LDAP_CODE(LDAP_OBJECT_CLASS_MODS_PROHIBITED), LDAP_CODE(LDAP_AFFECTS_MULTIPLE_DSAS), LDAP_CODE(LDAP_OTHER), { NULL, NT_STATUS(0) }};static const nt_err_code_struct nt_err_desc[] ={ { "Success", NT_STATUS_OK }, { "Undetermined error", NT_STATUS_UNSUCCESSFUL }, { "Access denied", NT_STATUS_ACCESS_DENIED }, { "Account locked out", NT_STATUS_ACCOUNT_LOCKED_OUT }, { "Must change password", NT_STATUS_PASSWORD_MUST_CHANGE }, { "Password is too short", NT_STATUS_PWD_TOO_SHORT }, { "Password is too recent", NT_STATUS_PWD_TOO_RECENT }, { "Password history conflict", NT_STATUS_PWD_HISTORY_CONFLICT }, { "No logon servers", NT_STATUS_NO_LOGON_SERVERS }, { "Improperly formed account name", NT_STATUS_INVALID_ACCOUNT_NAME }, { "User exists", NT_STATUS_USER_EXISTS }, { "No such user", NT_STATUS_NO_SUCH_USER }, { "Group exists", NT_STATUS_GROUP_EXISTS }, { "No such group", NT_STATUS_NO_SUCH_GROUP }, { "Member not in group", NT_STATUS_MEMBER_NOT_IN_GROUP }, { "Wrong Password", NT_STATUS_WRONG_PASSWORD }, { "Ill formed password", NT_STATUS_ILL_FORMED_PASSWORD }, { "Password restriction", NT_STATUS_PASSWORD_RESTRICTION }, { "Logon failure", NT_STATUS_LOGON_FAILURE }, { "Account restriction", NT_STATUS_ACCOUNT_RESTRICTION }, { "Invalid logon hours", NT_STATUS_INVALID_LOGON_HOURS }, { "Invalid workstation", NT_STATUS_INVALID_WORKSTATION }, { "Password expired", NT_STATUS_PASSWORD_EXPIRED }, { "Account disabled", NT_STATUS_ACCOUNT_DISABLED }, { "Unexpected information received", NT_STATUS_INVALID_PARAMETER }, { "Memory allocation error", NT_STATUS_NO_MEMORY }, { "No domain controllers located", NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND }, { "Account locked out", NT_STATUS_ACCOUNT_LOCKED_OUT }, { "Named pipe not available", NT_STATUS_PIPE_NOT_AVAILABLE }, { "Not implemented", NT_STATUS_NOT_IMPLEMENTED }, { "Invalid information class", NT_STATUS_INVALID_INFO_CLASS }, { "Information length mismatch", NT_STATUS_INFO_LENGTH_MISMATCH }, { "Access violation", NT_STATUS_ACCESS_VIOLATION }, { "Invalid handle", NT_STATUS_INVALID_HANDLE }, { "Invalid parameter", NT_STATUS_INVALID_PARAMETER }, { "No memory", NT_STATUS_NO_MEMORY }, { "Buffer too small", NT_STATUS_BUFFER_TOO_SMALL }, { "Revision mismatch", NT_STATUS_REVISION_MISMATCH }, { "No logon servers", NT_STATUS_NO_LOGON_SERVERS }, { "No such logon session", NT_STATUS_NO_SUCH_LOGON_SESSION }, { "No such privilege", NT_STATUS_NO_SUCH_PRIVILEGE }, { "Procedure not found", NT_STATUS_PROCEDURE_NOT_FOUND }, { "Server disabled", NT_STATUS_SERVER_DISABLED }, { "Invalid pipe state", NT_STATUS_INVALID_PIPE_STATE }, { "Named pipe busy", NT_STATUS_PIPE_BUSY }, { "Illegal function", NT_STATUS_ILLEGAL_FUNCTION }, { "Named pipe dicconnected", NT_STATUS_PIPE_DISCONNECTED }, { "Named pipe closing", NT_STATUS_PIPE_CLOSING }, { "Remote host not listening", NT_STATUS_REMOTE_NOT_LISTENING }, { "Duplicate name on network", NT_STATUS_DUPLICATE_NAME }, { "Print queue is full", NT_STATUS_PRINT_QUEUE_FULL }, { "No print spool space available", NT_STATUS_NO_SPOOL_SPACE }, { "Too many names", NT_STATUS_TOO_MANY_NAMES }, { "Too many sessions", NT_STATUS_TOO_MANY_SESSIONS }, { "Invalid server state", NT_STATUS_INVALID_SERVER_STATE }, { "Invalid domain state", NT_STATUS_INVALID_DOMAIN_STATE }, { "Invalid domain role", NT_STATUS_INVALID_DOMAIN_ROLE }, { "No such domain", NT_STATUS_NO_SUCH_DOMAIN }, { "Domain exists", NT_STATUS_DOMAIN_EXISTS }, { "Domain limit exceeded", NT_STATUS_DOMAIN_LIMIT_EXCEEDED }, { "Bad logon session state", NT_STATUS_BAD_LOGON_SESSION_STATE }, { "Logon session collision", NT_STATUS_LOGON_SESSION_COLLISION }, { "Invalid logon type", NT_STATUS_INVALID_LOGON_TYPE }, { "Cancelled", NT_STATUS_CANCELLED }, { "Invalid computer name", NT_STATUS_INVALID_COMPUTER_NAME }, { "Logon server conflict", NT_STATUS_LOGON_SERVER_CONFLICT }, { "Time difference at domain controller", NT_STATUS_TIME_DIFFERENCE_AT_DC }, { "Pipe broken", NT_STATUS_PIPE_BROKEN }, { "Registry corrupt", NT_STATUS_REGISTRY_CORRUPT }, { "Too many secrets", NT_STATUS_TOO_MANY_SECRETS }, { "Too many SIDs", NT_STATUS_TOO_MANY_SIDS }, { "Lanmanager cross encryption required", NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED }, { "Log file full", NT_STATUS_LOG_FILE_FULL }, { "No trusted LSA secret", NT_STATUS_NO_TRUST_LSA_SECRET }, { "No trusted SAM account", NT_STATUS_NO_TRUST_SAM_ACCOUNT }, { "Trusted domain failure", NT_STATUS_TRUSTED_DOMAIN_FAILURE }, { "Trust relationship failure", NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE }, { "Trust failure", NT_STATUS_TRUST_FAILURE }, { "Netlogon service not started", NT_STATUS_NETLOGON_NOT_STARTED }, { "Account expired", NT_STATUS_ACCOUNT_EXPIRED }, { "Network credential conflict", NT_STATUS_NETWORK_CREDENTIAL_CONFLICT }, { "Remote session limit", NT_STATUS_REMOTE_SESSION_LIMIT }, { "No logon interdomain trust account", NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT }, { "No logon workstation trust account", NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT }, { "No logon server trust account", NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT }, { "Domain trust inconsistent", NT_STATUS_DOMAIN_TRUST_INCONSISTENT }, { "No user session key available", NT_STATUS_NO_USER_SESSION_KEY }, { "User session deleted", NT_STATUS_USER_SESSION_DELETED }, { "Insufficient server resources", NT_STATUS_INSUFF_SERVER_RESOURCES }, { "Insufficient logon information", NT_STATUS_INSUFFICIENT_LOGON_INFO }, { "License quota exceeded", NT_STATUS_LICENSE_QUOTA_EXCEEDED }, { NULL, NT_STATUS(0) }};/***************************************************************************** returns an NT error message. not amazingly helpful, but better than a number. *****************************************************************************/const char *nt_errstr(NTSTATUS nt_code){ static char msg[40]; int idx = 0; while (nt_errs[idx].nt_errstr != NULL) { if (NT_STATUS_V(nt_errs[idx].nt_errcode) == NT_STATUS_V(nt_code)) { return nt_errs[idx].nt_errstr; } idx++; } if (NT_STATUS_IS_LDAP(nt_code)) { slprintf(msg, sizeof(msg), "LDAP code %u", NT_STATUS_LDAP_CODE(nt_code)); return msg; } slprintf(msg, sizeof(msg), "NT code 0x%08x", NT_STATUS_V(nt_code)); return msg;}/************************************************************************ Print friendler version fo NT error code ***********************************************************************/const char *get_friendly_nt_error_msg(NTSTATUS nt_code){ int idx = 0; while (nt_err_desc[idx].nt_errstr != NULL) { if (NT_STATUS_V(nt_err_desc[idx].nt_errcode) == NT_STATUS_V(nt_code)) { return nt_err_desc[idx].nt_errstr; } idx++; } /* fall back to NT_STATUS_XXX string */ return nt_errstr(nt_code);}/***************************************************************************** returns an NT_STATUS constant as a string for inclusion in autogen C code *****************************************************************************/const char *get_nt_error_c_code(NTSTATUS nt_code){ static char out[40]; int idx = 0; while (nt_errs[idx].nt_errstr != NULL) { if (NT_STATUS_V(nt_errs[idx].nt_errcode) == NT_STATUS_V(nt_code)) { return nt_errs[idx].nt_errstr; } idx++; } slprintf(out, sizeof(out), "NT_STATUS(0x%08x)", NT_STATUS_V(nt_code)); return out;}/***************************************************************************** returns the NT_STATUS constant matching the string supplied (as an NTSTATUS) *****************************************************************************/NTSTATUS nt_status_string_to_code(const char *nt_status_str){ int idx = 0; while (nt_errs[idx].nt_errstr != NULL) { if (strcasecmp(nt_errs[idx].nt_errstr, nt_status_str) == 0) { return nt_errs[idx].nt_errcode; } idx++; } return NT_STATUS_UNSUCCESSFUL;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?