libsmb/errormap.c

ソースコードを見る。

関数

NTSTATUS dos_to_ntstatus (uint8 eclass, uint32 ecode)
void ntstatus_to_dos (NTSTATUS ntstatus, uint8 *eclass, uint32 *ecode)
NTSTATUS werror_to_ntstatus (WERROR error)
WERROR ntstatus_to_werror (NTSTATUS error)
NTSTATUS map_nt_error_from_unix (int unix_error)

変数

struct {
   uint8   dos_class
   uint32   dos_code
   NTSTATUS   ntstatus
ntstatus_to_dos_map []
struct {
   uint8   dos_class
   uint32   dos_code
   NTSTATUS   ntstatus
dos_to_ntstatus_map []
struct {
   NTSTATUS   ntstatus
   WERROR   werror
ntstatus_to_werror_map []
struct {
   WERROR   werror
   NTSTATUS   ntstatus
werror_to_ntstatus_map []
unix_error_map unix_dos_nt_errmap []


関数

NTSTATUS dos_to_ntstatus ( uint8  eclass,
uint32  ecode 
)

errormap.c1425 行で定義されています。

参照先 dos_classdos_codedos_to_ntstatus_mapntstatus.

参照元 cli_errno()cli_get_nt_error()cli_nt_error()error_packet_set()rpc_read().

01426 {
01427         int i;
01428         if (eclass == 0 && ecode == 0) return NT_STATUS_OK;
01429         for (i=0; NT_STATUS_V(dos_to_ntstatus_map[i].ntstatus); i++) {
01430                 if (eclass == dos_to_ntstatus_map[i].dos_class &&
01431                     ecode == dos_to_ntstatus_map[i].dos_code) {
01432                         return dos_to_ntstatus_map[i].ntstatus;
01433                 }
01434         }
01435         return NT_STATUS_UNSUCCESSFUL;
01436 }

void ntstatus_to_dos ( NTSTATUS  ntstatus,
uint8 *  eclass,
uint32 *  ecode 
)

errormap.c1442 行で定義されています。

参照先 ntstatusntstatus_to_dos_map.

参照元 cli_dos_error()error_packet_set().

01443 {
01444         int i;
01445         if (NT_STATUS_IS_OK(ntstatus)) {
01446                 *eclass = 0;
01447                 *ecode = 0;
01448                 return;
01449         }
01450         for (i=0; NT_STATUS_V(ntstatus_to_dos_map[i].ntstatus); i++) {
01451                 if (NT_STATUS_V(ntstatus) == 
01452                     NT_STATUS_V(ntstatus_to_dos_map[i].ntstatus)) {
01453                         *eclass = ntstatus_to_dos_map[i].dos_class;
01454                         *ecode = ntstatus_to_dos_map[i].dos_code;
01455                         return;
01456                 }
01457         }
01458         *eclass = ERRHRD;
01459         *ecode = ERRgeneral;
01460 }

NTSTATUS werror_to_ntstatus ( WERROR  error  ) 

errormap.c1466 行で定義されています。

参照先 errorntstatusntstatus_to_werror_mapwerrorwerror_to_ntstatus_map.

参照元 cac_RegClose()cac_RegConnect()cac_RegCreateKey()cac_RegDeleteKey()cac_RegDeleteValue()cac_RegEnumKeys()cac_RegEnumValues()cac_RegGetKeySecurity()cac_RegGetVersion()cac_RegOpenKey()cac_RegQueryKeyInfo()cac_RegQueryValue()cac_RegSaveKey()cac_RegSetKeySecurity()cac_RegSetValue()cac_SvcClose()cac_SvcContinueService()cac_SvcControlService()cac_SvcEnumServices()cac_SvcGetDisplayName()cac_SvcGetServiceConfig()cac_SvcGetStatus()cac_SvcOpenScm()cac_SvcOpenService()cac_SvcPauseService()cac_SvcStartService()cac_SvcStopService()cac_WaitForService()cmd_netlogon_dsr_getsitename()rpc_reg_shutdown_abort_internals()rpc_reg_shutdown_internals()rpc_registry_enumerate_internal()rpc_registry_save_internal()rpc_service_list_internal()rpc_service_pause_internal()rpc_service_resume_internal()rpc_service_start_internal()rpc_service_status_internal()rpc_service_stop_internal()rpc_sh_share_add()rpc_sh_share_delete()rpc_sh_share_info()rpc_share_add_internals()rpccli_dfs_Add()rpccli_dfs_Add2()rpccli_dfs_AddFtRoot()rpccli_dfs_AddStdRoot()rpccli_dfs_AddStdRootForced()rpccli_dfs_Enum()rpccli_dfs_EnumEx()rpccli_dfs_FlushFtTable()rpccli_dfs_GetDcAddress()rpccli_dfs_GetInfo()rpccli_dfs_ManagerGetConfigInfo()rpccli_dfs_ManagerInitialize()rpccli_dfs_ManagerSendSiteInfo()rpccli_dfs_Move()rpccli_dfs_Remove()rpccli_dfs_Remove2()rpccli_dfs_RemoveFtRoot()rpccli_dfs_RemoveStdRoot()rpccli_dfs_Rename()rpccli_dfs_SetDcAddress()rpccli_dfs_SetInfo()rpccli_dfs_SetInfo2()rpccli_shutdown_abort()rpccli_shutdown_init()rpccli_shutdown_init_ex()rpccli_wkssvc_NetrAddAlternateComputerName()rpccli_WKSSVC_NETRENUMERATECOMPUTERNAMES()rpccli_WKSSVC_NETRGETJOINABLEOUS()rpccli_WKSSVC_NETRGETJOINABLEOUS2()rpccli_WKSSVC_NETRGETJOININFORMATION()rpccli_WKSSVC_NETRJOINDOMAIN()rpccli_wkssvc_NetrJoinDomain2()rpccli_WKSSVC_NETRLOGONDOMAINNAMEADD()rpccli_WKSSVC_NETRLOGONDOMAINNAMEDEL()rpccli_WKSSVC_NETRMESSAGEBUFFERSEND()rpccli_wkssvc_NetrRemoveAlternateComputerName()rpccli_WKSSVC_NETRRENAMEMACHINEINDOMAIN()rpccli_wkssvc_NetrRenameMachineInDomain2()rpccli_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()rpccli_WKSSVC_NETRUNJOINDOMAIN()rpccli_wkssvc_NetrUnjoinDomain2()rpccli_WKSSVC_NETRUSEADD()rpccli_WKSSVC_NETRUSEDEL()rpccli_WKSSVC_NETRUSEENUM()rpccli_WKSSVC_NETRUSEGETINFO()rpccli_WKSSVC_NETRVALIDATENAME()rpccli_WKSSVC_NETRVALIDATENAME2()rpccli_WKSSVC_NETRWKSTATRANSPORTADD()rpccli_WKSSVC_NETRWKSTATRANSPORTDEL()rpccli_WKSSVC_NETRWKSTAUSERGETINFO()rpccli_WKSSVC_NETRWKSTAUSERSETINFO()rpccli_WKSSVC_NETRWORKSTATIONSTATISTICSGET()rpccli_wkssvc_NetWkstaEnumUsers()rpccli_wkssvc_NetWkstaGetInfo()rpccli_wkssvc_NetWkstaSetInfo()rpccli_wkssvc_NetWkstaTransportEnum().

01467 {
01468         int i;
01469         if (W_ERROR_IS_OK(error)) return NT_STATUS_OK;
01470 
01471         for (i=0; !W_ERROR_IS_OK(werror_to_ntstatus_map[i].werror); i++) {
01472                 if (W_ERROR_V(error) == 
01473                     W_ERROR_V(werror_to_ntstatus_map[i].werror)) {
01474                         return werror_to_ntstatus_map[i].ntstatus;
01475                 }
01476         }
01477 
01478         for (i=0; NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus); i++) {
01479                 if (W_ERROR_V(error) == 
01480                     W_ERROR_V(ntstatus_to_werror_map[i].werror)) {
01481                         return ntstatus_to_werror_map[i].ntstatus;
01482                 }
01483         }
01484 
01485         /* just guess ... */
01486         return NT_STATUS(W_ERROR_V(error) | 0xc0000000);
01487 }

WERROR ntstatus_to_werror ( NTSTATUS  error  ) 

errormap.c1492 行で定義されています。

参照先 errorntstatusntstatus_to_werror_map.

参照元 _srv_net_file_query_secdesc()_srv_net_file_set_secdesc()_svcctl_open_scmanager()_svcctl_open_service()backup_registry_key()get_correct_cversion()map_werror_from_unix()move_driver_to_download_area()regdb_open()restore_registry_key().

01493 {
01494         int i;
01495         if (NT_STATUS_IS_OK(error)) return WERR_OK;
01496         for (i=0; NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus); i++) {
01497                 if (NT_STATUS_V(error) == 
01498                     NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus)) {
01499                         return ntstatus_to_werror_map[i].werror;
01500                 }
01501         }
01502 
01503         /* a lame guess */
01504         return W_ERROR(NT_STATUS_V(error) & 0xffff);
01505 }

NTSTATUS map_nt_error_from_unix ( int  unix_error  ) 

errormap.c1583 行で定義されています。

参照先 unix_error_map::nt_errorunix_dos_nt_errmap.

参照元 ads_ntstatus()backup_registry_key()can_delete()can_delete_directory()check_name()cli_connect()close_filestruct()close_normal_file()conn_get_nt_acl()create_conn_struct()delete_memory_creds()dptr_create()fd_close_posix()fd_open()gpo_copy_file()hardlink_internals()inotify_setup()inotify_watch()map_werror_from_unix()mkdir_internal()open_directory()open_file()open_file_ntcreate()print_fsp_open()reduce_name()regdb_open()rename_internals()rename_internals_fsp()reply_checkpath()reply_copy()restore_registry_key()rmdir_internals()set_ea()smb_set_file_allocation_info()smb_set_file_dosmode()smb_set_file_size()smb_set_file_time()smb_set_file_unix_basic()smb_set_file_unix_info2()smb_set_file_unix_link()smb_set_posix_acl()smb_unix_mknod()store_memory_creds()sync_file()unix_convert()unlink_internals().

01584 {
01585         int i = 0;
01586 
01587         if (unix_error == 0)
01588                 return NT_STATUS_OK;
01589 
01590         /* Look through list */
01591         while(unix_dos_nt_errmap[i].unix_error != 0) {
01592                 if (unix_dos_nt_errmap[i].unix_error == unix_error)
01593                         return unix_dos_nt_errmap[i].nt_error;
01594                 i++;
01595         }
01596 
01597         /* Default return */
01598         return NT_STATUS_ACCESS_DENIED;
01599 }


変数

uint8 dos_class

errormap.c49 行で定義されています。

参照元 dos_to_ntstatus()unix_error_packet().

uint32 dos_code

errormap.c50 行で定義されています。

参照元 dos_to_ntstatus().

NTSTATUS ntstatus

errormap.c51 行で定義されています。

struct { ... } ntstatus_to_dos_map[] [static]

参照元 ntstatus_to_dos().

uint8 dos_class

errormap.c620 行で定義されています。

uint32 dos_code

errormap.c621 行で定義されています。

NTSTATUS ntstatus

errormap.c622 行で定義されています。

struct { ... } dos_to_ntstatus_map[] [static]

参照元 dos_to_ntstatus().

NTSTATUS ntstatus

errormap.c875 行で定義されています。

WERROR werror

errormap.c876 行で定義されています。

参照元 cmd_spoolss_addform()cmd_spoolss_deleteform()cmd_spoolss_enum_drivers()cmd_spoolss_enum_forms()cmd_spoolss_getdriver()cmd_spoolss_getform()cmd_spoolss_open_printer_ex()cmd_spoolss_printercmp()cmd_spoolss_setform()compare_printer()compare_printer_secdesc()dos_errstr()py_werror_tuple()spoolss_addprinterdriver()spoolss_addprinterex()spoolss_enumports()spoolss_enumprinterdrivers()spoolss_enumprinters()spoolss_getprinterdriverdir()spoolss_hnd_addform()spoolss_hnd_deleteform()spoolss_hnd_deleteprinterdata()spoolss_hnd_deleteprinterdataex()spoolss_hnd_deleteprinterkey()spoolss_hnd_enddocprinter()spoolss_hnd_endpageprinter()spoolss_hnd_enumforms()spoolss_hnd_enumjobs()spoolss_hnd_enumprinterdata()spoolss_hnd_enumprinterdataex()spoolss_hnd_enumprinterkey()spoolss_hnd_getform()spoolss_hnd_getjob()spoolss_hnd_getprinter()spoolss_hnd_getprinterdata()spoolss_hnd_getprinterdataex()spoolss_hnd_getprinterdriver()spoolss_hnd_setform()spoolss_hnd_setjob()spoolss_hnd_setprinter()spoolss_hnd_setprinterdata()spoolss_hnd_setprinterdataex()spoolss_hnd_startdocprinter()spoolss_hnd_startpageprinter()spoolss_hnd_writeprinter()spoolss_openprinter()werror_to_ntstatus().

struct { ... } ntstatus_to_werror_map[] [static]

参照元 ntstatus_to_werror()werror_to_ntstatus().

WERROR werror

errormap.c1415 行で定義されています。

NTSTATUS ntstatus

errormap.c1416 行で定義されています。

struct { ... } werror_to_ntstatus_map[] [static]

参照元 werror_to_ntstatus().

struct unix_error_map unix_dos_nt_errmap[]

errormap.c1509 行で定義されています。

参照元 map_nt_error_from_unix()unix_error_packet().


Sambaに対してSat Aug 29 21:23:48 2009に生成されました。  doxygen 1.4.7