mirror of
https://github.com/samba-team/samba.git
synced 2025-01-08 21:18:16 +03:00
r25301: Merge my includes.h cleanups.
(This used to be commit 37425495f3
)
This commit is contained in:
parent
6a3093d941
commit
9b009c9009
@ -22,6 +22,7 @@
|
||||
#include "includes.h"
|
||||
#include "cluster/cluster.h"
|
||||
#include "cluster/cluster_private.h"
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
static struct cluster_ops *ops;
|
||||
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "db_wrap.h"
|
||||
#include "lib/util/dlinklist.h"
|
||||
#include "param/param.h"
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
/* a linked list of messaging handlers, allowing incoming messages
|
||||
to be directed to the right messaging context */
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "db_wrap.h"
|
||||
#include "system/filesys.h"
|
||||
#include "param/param.h"
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
/*
|
||||
server a server_id for the local node
|
||||
|
@ -33,9 +33,9 @@ librpc/ndr/libndr.h: ndr.h
|
||||
lib/registry/registry.h: registry/registry.h
|
||||
lib/registry/hive.h: registry/hive.h
|
||||
lib/registry/patchfile.h: registry/patchfile.h
|
||||
libcli/util/nterr.h: core/nterr.h
|
||||
libcli/util/werror.h: core/werror.h
|
||||
libcli/util/doserr.h: core/doserr.h
|
||||
libcli/util/nt_status.h: core/ntstatus.h
|
||||
libcli/util/ntstatus.h: core/ntstatus.h
|
||||
libcli/cldap/cldap.h: cldap.h
|
||||
lib/samba3/samba3.h: samba3.h
|
||||
librpc/gen_ndr/dcerpc.h: gen_ndr/dcerpc.h
|
||||
|
@ -39,20 +39,16 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <talloc.h>
|
||||
#include "libcli/util/nt_status.h"
|
||||
#ifndef _PRINTF_ATTRIBUTE
|
||||
#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
|
||||
#endif
|
||||
#include "charset/charset.h"
|
||||
#include "util/util.h"
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
typedef bool BOOL;
|
||||
|
||||
#define False false
|
||||
#define True true
|
||||
|
||||
struct smbcli_tree;
|
||||
#include "libcli/util/error.h"
|
||||
|
||||
/* String routines */
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include <talloc.h>
|
||||
#include "librpc/gen_ndr/security.h"
|
||||
#include "libcli/util/nt_status.h"
|
||||
#include "libcli/util/ntstatus.h"
|
||||
|
||||
/**
|
||||
* This file contains the hive API. This API is generally used for
|
||||
|
@ -26,7 +26,7 @@ struct registry_context;
|
||||
#include <talloc.h>
|
||||
#include "librpc/gen_ndr/security.h"
|
||||
#include "lib/registry/hive.h"
|
||||
#include "libcli/util/nt_status.h"
|
||||
#include "libcli/util/ntstatus.h"
|
||||
|
||||
/* Handles for the predefined keys */
|
||||
#define HKEY_CLASSES_ROOT 0x80000000
|
||||
|
@ -3,11 +3,9 @@ include ldap/config.mk
|
||||
include security/config.mk
|
||||
|
||||
[SUBSYSTEM::LIBSAMBA-ERRORS]
|
||||
PUBLIC_PROTO_HEADER = util/proto.h
|
||||
PUBLIC_HEADERS = util/error.h util/nterr.h util/doserr.h util/nt_status.h
|
||||
OBJ_FILES = util/doserr.o \
|
||||
util/errormap.o \
|
||||
util/clierror.o \
|
||||
util/nterr.o \
|
||||
|
||||
[SUBSYSTEM::ASN1_UTIL]
|
||||
@ -133,6 +131,7 @@ OBJ_FILES = raw/rawfile.o \
|
||||
raw/clitransport.o \
|
||||
raw/clisession.o \
|
||||
raw/clitree.o \
|
||||
raw/clierror.o \
|
||||
raw/rawrequest.o \
|
||||
raw/rawreadwrite.o \
|
||||
raw/rawsearch.o \
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define _SMB_LDAP_H
|
||||
|
||||
#include "lib/ldb/include/ldb.h"
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
enum ldap_request_tag {
|
||||
LDAP_TAG_BindRequest = 0,
|
||||
|
@ -66,7 +66,7 @@ NTSTATUS smbcli_nt_error(struct smbcli_tree *tree)
|
||||
|
||||
|
||||
/* Return true if the last packet was an error */
|
||||
BOOL smbcli_is_error(struct smbcli_tree *tree)
|
||||
bool smbcli_is_error(struct smbcli_tree *tree)
|
||||
{
|
||||
return NT_STATUS_IS_ERR(smbcli_nt_error(tree));
|
||||
}
|
@ -23,6 +23,7 @@
|
||||
#define __LIBCLI_RAW_INTERFACES_H__
|
||||
|
||||
#include "smb.h"
|
||||
#include "librpc/gen_ndr/misc.h" /* for struct GUID */
|
||||
|
||||
/* this structure is just a wrapper for a string, the only reason we
|
||||
bother with this is that it allows us to check the length provided
|
||||
|
@ -161,133 +161,8 @@
|
||||
#define ERRsharebufexc 36 /* share buffer exceeded */
|
||||
#define ERRdiskfull 39
|
||||
|
||||
|
||||
/* these are win32 error codes. There are only a few places where
|
||||
these matter for Samba, primarily in the NT printing code */
|
||||
#define WERR_OK W_ERROR(0)
|
||||
#define WERR_BADFUNC W_ERROR(1)
|
||||
#define WERR_BADFILE W_ERROR(2)
|
||||
#define WERR_ACCESS_DENIED W_ERROR(5)
|
||||
#define WERR_BADFID W_ERROR(6)
|
||||
#define WERR_NOMEM W_ERROR(8)
|
||||
#define WERR_GENERAL_FAILURE W_ERROR(31)
|
||||
#define WERR_NOT_SUPPORTED W_ERROR(50)
|
||||
#define WERR_BAD_NETPATH W_ERROR(53)
|
||||
#define WERR_BAD_NET_RESP W_ERROR(58)
|
||||
#define WERR_UNEXP_NET_ERR W_ERROR(59)
|
||||
#define WERR_PRINTQ_FULL W_ERROR(61)
|
||||
#define WERR_NO_SPOOL_SPACE W_ERROR(62)
|
||||
#define WERR_NO_SUCH_SHARE W_ERROR(67)
|
||||
#define WERR_FILE_EXISTS W_ERROR(80)
|
||||
#define WERR_BAD_PASSWORD W_ERROR(86)
|
||||
#define WERR_INVALID_PARAM W_ERROR(87)
|
||||
#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
|
||||
#define WERR_INVALID_NAME W_ERROR(123)
|
||||
#define WERR_UNKNOWN_LEVEL W_ERROR(124)
|
||||
#define WERR_OBJECT_PATH_INVALID W_ERROR(161)
|
||||
#define WERR_ALREADY_EXISTS W_ERROR(183)
|
||||
#define WERR_NO_MORE_ITEMS W_ERROR(259)
|
||||
#define WERR_MORE_DATA W_ERROR(234)
|
||||
#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
|
||||
#define WERR_NOT_FOUND W_ERROR(1168)
|
||||
#define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
|
||||
#define WERR_INVALID_DOMAINNAME W_ERROR(1212)
|
||||
#define WERR_UNKNOWN_REVISION W_ERROR(1305)
|
||||
#define WERR_REVISION_MISMATCH W_ERROR(1306)
|
||||
#define WERR_INVALID_OWNER W_ERROR(1307)
|
||||
#define WERR_NO_LOGON_SERVERS W_ERROR(1311)
|
||||
#define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
|
||||
#define WERR_PRIVILEGE_NOT_HELD W_ERROR(1314)
|
||||
#define WERR_NO_SUCH_USER W_ERROR(1317)
|
||||
#define WERR_LOGON_FAILURE W_ERROR(1326)
|
||||
#define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338)
|
||||
#define WERR_INVALID_DOMAIN_ROLE W_ERROR(1354)
|
||||
#define WERR_NO_SUCH_DOMAIN W_ERROR(1355)
|
||||
#define WERR_NO_SYSTEM_RESOURCES W_ERROR(1450)
|
||||
#define WERR_SERVER_UNAVAILABLE W_ERROR(1722)
|
||||
#define WERR_INVALID_FORM_NAME W_ERROR(1902)
|
||||
#define WERR_INVALID_FORM_SIZE W_ERROR(1903)
|
||||
#define WERR_ALREADY_SHARED W_ERROR(2118)
|
||||
#define WERR_BUF_TOO_SMALL W_ERROR(2123)
|
||||
#define WERR_JOB_NOT_FOUND W_ERROR(2151)
|
||||
#define WERR_DEST_NOT_FOUND W_ERROR(2152)
|
||||
#define WERR_SESSION_NOT_FOUND W_ERROR(2312)
|
||||
#define WERR_FID_NOT_FOUND W_ERROR(2314)
|
||||
#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
|
||||
#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
|
||||
#define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319)
|
||||
#define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105)
|
||||
|
||||
#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
|
||||
#define WERR_UNKNOWN_PORT W_ERROR(ERRunknownprinterport)
|
||||
#define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(ERRunknownprinterdriver)
|
||||
#define WERR_UNKNOWN_PRINTPROCESSOR W_ERROR(ERRunknownprintprocessor)
|
||||
#define WERR_INVALID_SEPARATOR_FILE W_ERROR(ERRinvalidseparatorfile)
|
||||
#define WERR_INVALID_PRIORITY W_ERROR(ERRinvalidjobpriority)
|
||||
#define WERR_INVALID_PRINTER_NAME W_ERROR(ERRinvalidprintername)
|
||||
#define WERR_PRINTER_ALREADY_EXISTS W_ERROR(ERRprinteralreadyexists)
|
||||
#define WERR_INVALID_PRINTER_COMMAND W_ERROR(ERRinvalidprintercommand)
|
||||
#define WERR_INVALID_DATATYPE W_ERROR(ERRinvaliddatatype)
|
||||
#define WERR_INVALID_ENVIRONMENT W_ERROR(ERRinvalidenvironment)
|
||||
|
||||
#define WERR_UNKNOWN_PRINT_MONITOR W_ERROR(ERRunknownprintmonitor)
|
||||
#define WERR_PRINTER_DRIVER_IN_USE W_ERROR(ERRprinterdriverinuse)
|
||||
#define WERR_SPOOL_FILE_NOT_FOUND W_ERROR(ERRspoolfilenotfound)
|
||||
#define WERR_SPL_NO_STARTDOC W_ERROR(ERRnostartdoc)
|
||||
#define WERR_SPL_NO_ADDJOB W_ERROR(ERRnoaddjob)
|
||||
#define WERR_PRINT_PROCESSOR_ALREADY_INSTALLED W_ERROR(ERRprintprocessoralreadyinstalled)
|
||||
#define WERR_PRINT_MONITOR_ALREADY_INSTALLED W_ERROR(ERRprintmonitoralreadyinstalled)
|
||||
#define WERR_INVALID_PRINT_MONITOR W_ERROR(ERRinvalidprintmonitor)
|
||||
#define WERR_PRINT_MONITOR_IN_USE W_ERROR(ERRprintmonitorinuse)
|
||||
#define WERR_PRINTER_HAS_JOBS_QUEUED W_ERROR(ERRprinterhasjobsqueued)
|
||||
|
||||
#define WERR_CLASS_NOT_REGISTERED W_ERROR(0x40154)
|
||||
#define WERR_NO_SHUTDOWN_IN_PROGRESS W_ERROR(0x45c)
|
||||
#define WERR_SHUTDOWN_ALREADY_IN_PROGRESS W_ERROR(0x45b)
|
||||
|
||||
|
||||
#ifndef NERR_BASE
|
||||
#define NERR_BASE (2100)
|
||||
#endif
|
||||
|
||||
#define WERR_NET_NAME_NOT_FOUND W_ERROR(NERR_BASE+210)
|
||||
#define WERR_DEVICE_NOT_SHARED W_ERROR(NERR_BASE+211)
|
||||
|
||||
/* DFS errors */
|
||||
#define WERR_DFS_NO_SUCH_VOL W_ERROR(NERR_BASE+562)
|
||||
#define WERR_DFS_NO_SUCH_SHARE W_ERROR(NERR_BASE+565)
|
||||
#define WERR_DFS_NO_SUCH_SERVER W_ERROR(NERR_BASE+573)
|
||||
#define WERR_DFS_INTERNAL_ERROR W_ERROR(NERR_BASE+590)
|
||||
#define WERR_DFS_CANT_CREATE_JUNCT W_ERROR(NERR_BASE+569)
|
||||
|
||||
/* DS errors */
|
||||
#define WERR_DS_SERVICE_BUSY W_ERROR(0x0000200e)
|
||||
#define WERR_DS_SERVICE_UNAVAILABLE W_ERROR(0x0000200f)
|
||||
#define WERR_DS_NO_SUCH_OBJECT W_ERROR(0x00002030)
|
||||
#define WERR_DS_OBJ_NOT_FOUND W_ERROR(0x0000208d)
|
||||
#define WERR_DS_SCHEMA_NOT_LOADED W_ERROR(0x20de)
|
||||
#define WERR_DS_SCHEMA_ALLOC_FAILED W_ERROR(0x20df)
|
||||
#define WERR_DS_ATT_SCHEMA_REQ_SYNTAX W_ERROR(0x000020e0)
|
||||
#define WERR_DS_DRA_SCHEMA_MISMATCH W_ERROR(0x000020e2)
|
||||
#define WERR_DS_DRA_INVALID_PARAMETER W_ERROR(0x000020f5)
|
||||
#define WERR_DS_DRA_BAD_DN W_ERROR(0x000020f7)
|
||||
#define WERR_DS_DRA_BAD_NC W_ERROR(0x000020f8)
|
||||
#define WERR_DS_DRA_INTERNAL_ERROR W_ERROR(0x000020fa)
|
||||
#define WERR_DS_DRA_OUT_OF_MEM W_ERROR(0x000020fe)
|
||||
#define WERR_DS_SINGLE_VALUE_CONSTRAINT W_ERROR(0x00002081)
|
||||
#define WERR_DS_DRA_DB_ERROR W_ERROR(0x00002103)
|
||||
#define WERR_DS_DRA_NO_REPLICA W_ERROR(0x00002104)
|
||||
#define WERR_DS_DRA_ACCESS_DENIED W_ERROR(0x00002105)
|
||||
#define WERR_DS_DNS_LOOKUP_FAILURE W_ERROR(0x0000214c)
|
||||
#define WERR_DS_WRONG_LINKED_ATTRIBUTE_SYNTAX W_ERROR(0x00002150)
|
||||
#define WERR_DS_NO_MSDS_INTID W_ERROR(0x00002194)
|
||||
#define WERR_DS_DUP_MSDS_INTID W_ERROR(0x00002195)
|
||||
|
||||
/* SEC errors */
|
||||
#define WERR_SEC_E_ENCRYPT_FAILURE W_ERROR(0x80090329)
|
||||
#define WERR_SEC_E_DECRYPT_FAILURE W_ERROR(0x80090330)
|
||||
#define WERR_SEC_E_ALGORITHM_MISMATCH W_ERROR(0x80090331)
|
||||
|
||||
#define WERR_FOOBAR WERR_GENERAL_FAILURE
|
||||
|
||||
#endif /* _DOSERR_H */
|
||||
|
@ -19,8 +19,33 @@
|
||||
#ifndef _SAMBA_ERROR_H_
|
||||
#define _SAMBA_ERROR_H_
|
||||
|
||||
#include "libcli/util/nterr.h"
|
||||
#include "libcli/util/werror.h"
|
||||
#include "libcli/util/doserr.h"
|
||||
#include "libcli/util/proto.h"
|
||||
#include "libcli/util/ntstatus.h"
|
||||
|
||||
/** NT error on DOS connection! (NT_STATUS_OK) */
|
||||
bool ntstatus_dos_equal(NTSTATUS status1, NTSTATUS status2);
|
||||
|
||||
/*****************************************************************************
|
||||
convert a NT status code to a dos class/code
|
||||
*****************************************************************************/
|
||||
void ntstatus_to_dos(NTSTATUS ntstatus, uint8_t *eclass, uint32_t *ecode);
|
||||
|
||||
/*****************************************************************************
|
||||
convert a WERROR to a NT status32 code
|
||||
*****************************************************************************/
|
||||
NTSTATUS werror_to_ntstatus(WERROR error);
|
||||
|
||||
/*****************************************************************************
|
||||
convert a NTSTATUS to a WERROR
|
||||
*****************************************************************************/
|
||||
WERROR ntstatus_to_werror(NTSTATUS error);
|
||||
|
||||
/*********************************************************************
|
||||
Map an NT error code from a Unix error code.
|
||||
*********************************************************************/
|
||||
NTSTATUS map_nt_error_from_unix(int unix_error);
|
||||
|
||||
|
||||
|
||||
#endif /* _SAMBA_ERROR_H */
|
||||
|
@ -1,122 +0,0 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
SMB parameters and setup, plus a whole lot more.
|
||||
|
||||
Copyright (C) Andrew Tridgell 2001
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _NT_STATUS_H
|
||||
#define _NT_STATUS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* the following rather strange looking definitions of NTSTATUS and WERROR
|
||||
and there in order to catch common coding errors where different error types
|
||||
are mixed up. This is especially important as we slowly convert Samba
|
||||
from using BOOL for internal functions
|
||||
*/
|
||||
|
||||
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||
typedef struct {uint32_t v;} NTSTATUS;
|
||||
#define NT_STATUS(x) ((NTSTATUS) { x })
|
||||
#define NT_STATUS_V(x) ((x).v)
|
||||
#else
|
||||
typedef uint32_t NTSTATUS;
|
||||
#define NT_STATUS(x) (x)
|
||||
#define NT_STATUS_V(x) (x)
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||
typedef struct {uint32_t v;} WERROR;
|
||||
#define W_ERROR(x) ((WERROR) { x })
|
||||
#define W_ERROR_V(x) ((x).v)
|
||||
#else
|
||||
typedef uint32_t WERROR;
|
||||
#define W_ERROR(x) (x)
|
||||
#define W_ERROR_V(x) (x)
|
||||
#endif
|
||||
|
||||
#define NT_STATUS_IS_OK(x) (NT_STATUS_V(x) == 0)
|
||||
#define NT_STATUS_IS_ERR(x) ((NT_STATUS_V(x) & 0xc0000000) == 0xc0000000)
|
||||
/* checking for DOS error mapping here is ugly, but unfortunately the
|
||||
alternative is a very intrusive rewrite of the torture code */
|
||||
#define NT_STATUS_EQUAL(x,y) (NT_STATUS_IS_DOS(x)||NT_STATUS_IS_DOS(y)?ntstatus_dos_equal(x,y):NT_STATUS_V(x) == NT_STATUS_V(y))
|
||||
|
||||
#define NT_STATUS_HAVE_NO_MEMORY(x) do { \
|
||||
if (!(x)) {\
|
||||
return NT_STATUS_NO_MEMORY;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_IS_OK_RETURN(x) do { \
|
||||
if (NT_STATUS_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_NOT_OK_RETURN(x) do { \
|
||||
if (!NT_STATUS_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_IS_ERR_RETURN(x) do { \
|
||||
if (NT_STATUS_IS_ERR(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_NOT_ERR_RETURN(x) do { \
|
||||
if (!NT_STATUS_IS_ERR(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define W_ERROR_IS_OK(x) (W_ERROR_V(x) == 0)
|
||||
#define W_ERROR_EQUAL(x,y) (W_ERROR_V(x) == W_ERROR_V(y))
|
||||
|
||||
#define W_ERROR_HAVE_NO_MEMORY(x) do { \
|
||||
if (!(x)) {\
|
||||
return WERR_NOMEM;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define W_ERROR_IS_OK_RETURN(x) do { \
|
||||
if (W_ERROR_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define W_ERROR_NOT_OK_RETURN(x) do { \
|
||||
if (!W_ERROR_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
/* this defines special NTSTATUS codes to represent DOS errors. I
|
||||
have chosen this macro to produce status codes in the invalid
|
||||
NTSTATUS range */
|
||||
#define NT_STATUS_DOS(class, code) NT_STATUS(0xF1000000 | ((class)<<16) | code)
|
||||
#define NT_STATUS_IS_DOS(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF1000000)
|
||||
#define NT_STATUS_DOS_CLASS(status) ((NT_STATUS_V(status) >> 16) & 0xFF)
|
||||
#define NT_STATUS_DOS_CODE(status) (NT_STATUS_V(status) & 0xFFFF)
|
||||
|
||||
/* define ldap error codes as NTSTATUS codes */
|
||||
#define NT_STATUS_LDAP(code) NT_STATUS(0xF2000000 | code)
|
||||
#define NT_STATUS_IS_LDAP(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF2000000)
|
||||
#define NT_STATUS_LDAP_CODE(status) (NT_STATUS_V(status) & ~0xFF000000)
|
||||
|
||||
#endif
|
@ -20,8 +20,24 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _NTERR_H
|
||||
#define _NTERR_H
|
||||
#ifndef _NTSTATUS_H
|
||||
#define _NTSTATUS_H
|
||||
|
||||
/* the following rather strange looking definitions of NTSTATUS
|
||||
are there in order to catch common coding errors where different error types
|
||||
are mixed up. This is especially important as we slowly convert Samba
|
||||
from using bool for internal functions
|
||||
*/
|
||||
|
||||
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||
typedef struct {uint32_t v;} NTSTATUS;
|
||||
#define NT_STATUS(x) ((NTSTATUS) { x })
|
||||
#define NT_STATUS_V(x) ((x).v)
|
||||
#else
|
||||
typedef uint32_t NTSTATUS;
|
||||
#define NT_STATUS(x) (x)
|
||||
#define NT_STATUS_V(x) (x)
|
||||
#endif
|
||||
|
||||
/* Win32 Status codes. */
|
||||
|
||||
@ -585,4 +601,75 @@
|
||||
* this means we need a torture test */
|
||||
#define NT_STATUS_FOOBAR NT_STATUS_UNSUCCESSFUL
|
||||
|
||||
#endif /* _NTERR_H */
|
||||
/*****************************************************************************
|
||||
returns an NT error message. not amazingly helpful, but better than a number.
|
||||
*****************************************************************************/
|
||||
const char *nt_errstr(NTSTATUS nt_code);
|
||||
|
||||
/************************************************************************
|
||||
Print friendler version fo NT error code
|
||||
***********************************************************************/
|
||||
const char *get_friendly_nt_error_msg(NTSTATUS 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);
|
||||
|
||||
/*****************************************************************************
|
||||
returns the NT_STATUS constant matching the string supplied (as an NTSTATUS)
|
||||
*****************************************************************************/
|
||||
NTSTATUS nt_status_string_to_code(const char *nt_status_str);
|
||||
|
||||
#define NT_STATUS_IS_OK(x) (NT_STATUS_V(x) == 0)
|
||||
#define NT_STATUS_IS_ERR(x) ((NT_STATUS_V(x) & 0xc0000000) == 0xc0000000)
|
||||
/* checking for DOS error mapping here is ugly, but unfortunately the
|
||||
alternative is a very intrusive rewrite of the torture code */
|
||||
#define NT_STATUS_EQUAL(x,y) (NT_STATUS_IS_DOS(x)||NT_STATUS_IS_DOS(y)?ntstatus_dos_equal(x,y):NT_STATUS_V(x) == NT_STATUS_V(y))
|
||||
|
||||
#define NT_STATUS_HAVE_NO_MEMORY(x) do { \
|
||||
if (!(x)) {\
|
||||
return NT_STATUS_NO_MEMORY;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_IS_OK_RETURN(x) do { \
|
||||
if (NT_STATUS_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_NOT_OK_RETURN(x) do { \
|
||||
if (!NT_STATUS_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_IS_ERR_RETURN(x) do { \
|
||||
if (NT_STATUS_IS_ERR(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define NT_STATUS_NOT_ERR_RETURN(x) do { \
|
||||
if (!NT_STATUS_IS_ERR(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
/* this defines special NTSTATUS codes to represent DOS errors. I
|
||||
have chosen this macro to produce status codes in the invalid
|
||||
NTSTATUS range */
|
||||
#define NT_STATUS_DOS(class, code) NT_STATUS(0xF1000000 | ((class)<<16) | code)
|
||||
#define NT_STATUS_IS_DOS(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF1000000)
|
||||
#define NT_STATUS_DOS_CLASS(status) ((NT_STATUS_V(status) >> 16) & 0xFF)
|
||||
#define NT_STATUS_DOS_CODE(status) (NT_STATUS_V(status) & 0xFFFF)
|
||||
|
||||
/* define ldap error codes as NTSTATUS codes */
|
||||
#define NT_STATUS_LDAP(code) NT_STATUS(0xF2000000 | code)
|
||||
#define NT_STATUS_IS_LDAP(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF2000000)
|
||||
#define NT_STATUS_LDAP_CODE(status) (NT_STATUS_V(status) & ~0xFF000000)
|
||||
|
||||
|
||||
|
||||
#endif /* _NTSTATUS_H */
|
193
source4/libcli/util/werror.h
Normal file
193
source4/libcli/util/werror.h
Normal file
@ -0,0 +1,193 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
SMB parameters and setup, plus a whole lot more.
|
||||
|
||||
Copyright (C) Andrew Tridgell 2001
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _WERROR_H_
|
||||
#define _WERROR_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* the following rather strange looking definitions of NTSTATUS and WERROR
|
||||
and there in order to catch common coding errors where different error types
|
||||
are mixed up. This is especially important as we slowly convert Samba
|
||||
from using bool for internal functions
|
||||
*/
|
||||
|
||||
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||
typedef struct {uint32_t v;} WERROR;
|
||||
#define W_ERROR(x) ((WERROR) { x })
|
||||
#define W_ERROR_V(x) ((x).v)
|
||||
#else
|
||||
typedef uint32_t WERROR;
|
||||
#define W_ERROR(x) (x)
|
||||
#define W_ERROR_V(x) (x)
|
||||
#endif
|
||||
|
||||
#define W_ERROR_IS_OK(x) (W_ERROR_V(x) == 0)
|
||||
#define W_ERROR_EQUAL(x,y) (W_ERROR_V(x) == W_ERROR_V(y))
|
||||
|
||||
#define W_ERROR_HAVE_NO_MEMORY(x) do { \
|
||||
if (!(x)) {\
|
||||
return WERR_NOMEM;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define W_ERROR_IS_OK_RETURN(x) do { \
|
||||
if (W_ERROR_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
#define W_ERROR_NOT_OK_RETURN(x) do { \
|
||||
if (!W_ERROR_IS_OK(x)) {\
|
||||
return x;\
|
||||
}\
|
||||
} while (0)
|
||||
|
||||
/* these are win32 error codes. There are only a few places where
|
||||
these matter for Samba, primarily in the NT printing code */
|
||||
#define WERR_OK W_ERROR(0)
|
||||
#define WERR_BADFUNC W_ERROR(1)
|
||||
#define WERR_BADFILE W_ERROR(2)
|
||||
#define WERR_ACCESS_DENIED W_ERROR(5)
|
||||
#define WERR_BADFID W_ERROR(6)
|
||||
#define WERR_NOMEM W_ERROR(8)
|
||||
#define WERR_GENERAL_FAILURE W_ERROR(31)
|
||||
#define WERR_NOT_SUPPORTED W_ERROR(50)
|
||||
#define WERR_BAD_NETPATH W_ERROR(53)
|
||||
#define WERR_BAD_NET_RESP W_ERROR(58)
|
||||
#define WERR_UNEXP_NET_ERR W_ERROR(59)
|
||||
#define WERR_PRINTQ_FULL W_ERROR(61)
|
||||
#define WERR_NO_SPOOL_SPACE W_ERROR(62)
|
||||
#define WERR_NO_SUCH_SHARE W_ERROR(67)
|
||||
#define WERR_FILE_EXISTS W_ERROR(80)
|
||||
#define WERR_BAD_PASSWORD W_ERROR(86)
|
||||
#define WERR_INVALID_PARAM W_ERROR(87)
|
||||
#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
|
||||
#define WERR_INVALID_NAME W_ERROR(123)
|
||||
#define WERR_UNKNOWN_LEVEL W_ERROR(124)
|
||||
#define WERR_OBJECT_PATH_INVALID W_ERROR(161)
|
||||
#define WERR_ALREADY_EXISTS W_ERROR(183)
|
||||
#define WERR_NO_MORE_ITEMS W_ERROR(259)
|
||||
#define WERR_MORE_DATA W_ERROR(234)
|
||||
#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
|
||||
#define WERR_NOT_FOUND W_ERROR(1168)
|
||||
#define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
|
||||
#define WERR_INVALID_DOMAINNAME W_ERROR(1212)
|
||||
#define WERR_UNKNOWN_REVISION W_ERROR(1305)
|
||||
#define WERR_REVISION_MISMATCH W_ERROR(1306)
|
||||
#define WERR_INVALID_OWNER W_ERROR(1307)
|
||||
#define WERR_NO_LOGON_SERVERS W_ERROR(1311)
|
||||
#define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
|
||||
#define WERR_PRIVILEGE_NOT_HELD W_ERROR(1314)
|
||||
#define WERR_NO_SUCH_USER W_ERROR(1317)
|
||||
#define WERR_LOGON_FAILURE W_ERROR(1326)
|
||||
#define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338)
|
||||
#define WERR_INVALID_DOMAIN_ROLE W_ERROR(1354)
|
||||
#define WERR_NO_SUCH_DOMAIN W_ERROR(1355)
|
||||
#define WERR_NO_SYSTEM_RESOURCES W_ERROR(1450)
|
||||
#define WERR_SERVER_UNAVAILABLE W_ERROR(1722)
|
||||
#define WERR_INVALID_FORM_NAME W_ERROR(1902)
|
||||
#define WERR_INVALID_FORM_SIZE W_ERROR(1903)
|
||||
#define WERR_ALREADY_SHARED W_ERROR(2118)
|
||||
#define WERR_BUF_TOO_SMALL W_ERROR(2123)
|
||||
#define WERR_JOB_NOT_FOUND W_ERROR(2151)
|
||||
#define WERR_DEST_NOT_FOUND W_ERROR(2152)
|
||||
#define WERR_SESSION_NOT_FOUND W_ERROR(2312)
|
||||
#define WERR_FID_NOT_FOUND W_ERROR(2314)
|
||||
#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
|
||||
#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
|
||||
#define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319)
|
||||
#define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105)
|
||||
|
||||
#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
|
||||
#define WERR_UNKNOWN_PORT W_ERROR(ERRunknownprinterport)
|
||||
#define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(ERRunknownprinterdriver)
|
||||
#define WERR_UNKNOWN_PRINTPROCESSOR W_ERROR(ERRunknownprintprocessor)
|
||||
#define WERR_INVALID_SEPARATOR_FILE W_ERROR(ERRinvalidseparatorfile)
|
||||
#define WERR_INVALID_PRIORITY W_ERROR(ERRinvalidjobpriority)
|
||||
#define WERR_INVALID_PRINTER_NAME W_ERROR(ERRinvalidprintername)
|
||||
#define WERR_PRINTER_ALREADY_EXISTS W_ERROR(ERRprinteralreadyexists)
|
||||
#define WERR_INVALID_PRINTER_COMMAND W_ERROR(ERRinvalidprintercommand)
|
||||
#define WERR_INVALID_DATATYPE W_ERROR(ERRinvaliddatatype)
|
||||
#define WERR_INVALID_ENVIRONMENT W_ERROR(ERRinvalidenvironment)
|
||||
|
||||
#define WERR_UNKNOWN_PRINT_MONITOR W_ERROR(ERRunknownprintmonitor)
|
||||
#define WERR_PRINTER_DRIVER_IN_USE W_ERROR(ERRprinterdriverinuse)
|
||||
#define WERR_SPOOL_FILE_NOT_FOUND W_ERROR(ERRspoolfilenotfound)
|
||||
#define WERR_SPL_NO_STARTDOC W_ERROR(ERRnostartdoc)
|
||||
#define WERR_SPL_NO_ADDJOB W_ERROR(ERRnoaddjob)
|
||||
#define WERR_PRINT_PROCESSOR_ALREADY_INSTALLED W_ERROR(ERRprintprocessoralreadyinstalled)
|
||||
#define WERR_PRINT_MONITOR_ALREADY_INSTALLED W_ERROR(ERRprintmonitoralreadyinstalled)
|
||||
#define WERR_INVALID_PRINT_MONITOR W_ERROR(ERRinvalidprintmonitor)
|
||||
#define WERR_PRINT_MONITOR_IN_USE W_ERROR(ERRprintmonitorinuse)
|
||||
#define WERR_PRINTER_HAS_JOBS_QUEUED W_ERROR(ERRprinterhasjobsqueued)
|
||||
|
||||
#define WERR_CLASS_NOT_REGISTERED W_ERROR(0x40154)
|
||||
#define WERR_NO_SHUTDOWN_IN_PROGRESS W_ERROR(0x45c)
|
||||
#define WERR_SHUTDOWN_ALREADY_IN_PROGRESS W_ERROR(0x45b)
|
||||
|
||||
#define WERR_NET_NAME_NOT_FOUND W_ERROR(NERR_BASE+210)
|
||||
#define WERR_DEVICE_NOT_SHARED W_ERROR(NERR_BASE+211)
|
||||
|
||||
/* DFS errors */
|
||||
#define WERR_DFS_NO_SUCH_VOL W_ERROR(NERR_BASE+562)
|
||||
#define WERR_DFS_NO_SUCH_SHARE W_ERROR(NERR_BASE+565)
|
||||
#define WERR_DFS_NO_SUCH_SERVER W_ERROR(NERR_BASE+573)
|
||||
#define WERR_DFS_INTERNAL_ERROR W_ERROR(NERR_BASE+590)
|
||||
#define WERR_DFS_CANT_CREATE_JUNCT W_ERROR(NERR_BASE+569)
|
||||
|
||||
/* DS errors */
|
||||
#define WERR_DS_SERVICE_BUSY W_ERROR(0x0000200e)
|
||||
#define WERR_DS_SERVICE_UNAVAILABLE W_ERROR(0x0000200f)
|
||||
#define WERR_DS_NO_SUCH_OBJECT W_ERROR(0x00002030)
|
||||
#define WERR_DS_OBJ_NOT_FOUND W_ERROR(0x0000208d)
|
||||
#define WERR_DS_SCHEMA_NOT_LOADED W_ERROR(0x20de)
|
||||
#define WERR_DS_SCHEMA_ALLOC_FAILED W_ERROR(0x20df)
|
||||
#define WERR_DS_ATT_SCHEMA_REQ_SYNTAX W_ERROR(0x000020e0)
|
||||
#define WERR_DS_DRA_SCHEMA_MISMATCH W_ERROR(0x000020e2)
|
||||
#define WERR_DS_DRA_INVALID_PARAMETER W_ERROR(0x000020f5)
|
||||
#define WERR_DS_DRA_BAD_DN W_ERROR(0x000020f7)
|
||||
#define WERR_DS_DRA_BAD_NC W_ERROR(0x000020f8)
|
||||
#define WERR_DS_DRA_INTERNAL_ERROR W_ERROR(0x000020fa)
|
||||
#define WERR_DS_DRA_OUT_OF_MEM W_ERROR(0x000020fe)
|
||||
#define WERR_DS_SINGLE_VALUE_CONSTRAINT W_ERROR(0x00002081)
|
||||
#define WERR_DS_DRA_DB_ERROR W_ERROR(0x00002103)
|
||||
#define WERR_DS_DRA_NO_REPLICA W_ERROR(0x00002104)
|
||||
#define WERR_DS_DRA_ACCESS_DENIED W_ERROR(0x00002105)
|
||||
#define WERR_DS_DNS_LOOKUP_FAILURE W_ERROR(0x0000214c)
|
||||
#define WERR_DS_WRONG_LINKED_ATTRIBUTE_SYNTAX W_ERROR(0x00002150)
|
||||
#define WERR_DS_NO_MSDS_INTID W_ERROR(0x00002194)
|
||||
#define WERR_DS_DUP_MSDS_INTID W_ERROR(0x00002195)
|
||||
|
||||
/* SEC errors */
|
||||
#define WERR_SEC_E_ENCRYPT_FAILURE W_ERROR(0x80090329)
|
||||
#define WERR_SEC_E_DECRYPT_FAILURE W_ERROR(0x80090330)
|
||||
#define WERR_SEC_E_ALGORITHM_MISMATCH W_ERROR(0x80090331)
|
||||
|
||||
#define WERR_FOOBAR WERR_GENERAL_FAILURE
|
||||
|
||||
/*****************************************************************************
|
||||
returns a windows error message. not amazingly helpful, but better than a number.
|
||||
*****************************************************************************/
|
||||
const char *win_errstr(WERROR werror);
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -18,6 +18,8 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
struct libnet_context {
|
||||
/* here we need:
|
||||
* a client env context
|
||||
|
@ -17,6 +17,8 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
|
||||
/*
|
||||
* IO structures for userman.c functions
|
||||
|
@ -2,6 +2,8 @@
|
||||
dfs interface definition
|
||||
*/
|
||||
|
||||
import "misc.idl";
|
||||
|
||||
[ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
|
||||
version(3.0),
|
||||
pointer_default(unique),
|
||||
|
@ -2,6 +2,8 @@
|
||||
dssetup interface definition
|
||||
*/
|
||||
|
||||
import "misc.idl";
|
||||
|
||||
[
|
||||
uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"),
|
||||
version(0.0),
|
||||
|
@ -8,6 +8,8 @@ http://www.opengroup.org/onlinepubs/9629399/chap6.htm#tagcjh_11_02_03_01: bindin
|
||||
|
||||
*/
|
||||
|
||||
import "misc.idl";
|
||||
|
||||
[
|
||||
uuid("e1af8308-5d1f-11c9-91a4-08002b14a0fa"),
|
||||
version(3.0),
|
||||
|
@ -7,6 +7,8 @@
|
||||
the change notify buffers
|
||||
*/
|
||||
|
||||
import "misc.idl";
|
||||
|
||||
[
|
||||
pointer_default(unique)
|
||||
]
|
||||
|
@ -5,6 +5,8 @@
|
||||
http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt
|
||||
*/
|
||||
|
||||
import "misc.idl";
|
||||
|
||||
[
|
||||
pointer_default(unique)
|
||||
]
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <talloc.h>
|
||||
#include "lib/util/util.h" /* for discard_const */
|
||||
#include "lib/charset/charset.h"
|
||||
#include "libcli/util/nt_status.h"
|
||||
#include "libcli/util/ntstatus.h"
|
||||
|
||||
/*
|
||||
this provides definitions for the libcli/rpc/ MSRPC library
|
||||
|
@ -390,7 +390,6 @@ sub Parse($)
|
||||
pidl "/* header auto-generated by pidl */\n\n";
|
||||
if (!is_intree()) {
|
||||
pidl "#include <util/data_blob.h>\n";
|
||||
pidl "#include <gen_ndr/misc.h>\n";
|
||||
}
|
||||
pidl "#include <stdint.h>\n";
|
||||
pidl "\n";
|
||||
|
@ -2597,7 +2597,7 @@ sub GenerateIncludes($)
|
||||
|
||||
# Samba3 has everything in include/includes.h
|
||||
if (is_intree() != 3) {
|
||||
$self->pidl(choose_header("libcli/util/nterr.h", "core/nterr.h"));
|
||||
$self->pidl(choose_header("libcli/util/ntstatus.h", "core/ntstatus.h"));
|
||||
$self->pidl(choose_header("librpc/gen_ndr/ndr_misc.h", "gen_ndr/ndr_misc.h"));
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,8 @@
|
||||
#ifndef __SERVICE_STREAM_H__
|
||||
#define __SERVICE_STREAM_H__
|
||||
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
/* modules can use the following to determine if the interface has changed
|
||||
* please increment the version number after each interface change
|
||||
* with a comment and maybe update struct stream_connection_critical_sizes.
|
||||
|
@ -22,6 +22,8 @@
|
||||
#ifndef __SERVICE_TASK_H__
|
||||
#define __SERVICE_TASK_H__
|
||||
|
||||
#include "librpc/gen_ndr/misc.h"
|
||||
|
||||
struct task_server {
|
||||
struct event_context *event_ctx;
|
||||
const struct model_ops *model_ops;
|
||||
|
Loading…
Reference in New Issue
Block a user