libsmb/smberr.c

ソースコードを見る。

データ構造

struct  err_code_struct

関数

const char * smb_dos_err_name (uint8 e_class, uint16 num)
const char * get_dos_error_msg (WERROR result)
const char * smb_dos_err_class (uint8 e_class)
char * smb_dos_errstr (char *inbuf)
WERROR map_werror_from_unix (int error)

変数

err_code_struct dos_msgs []
err_code_struct server_msgs []
err_code_struct hard_msgs []
struct {
   int   code
   const char *   e_class
   err_code_struct *   err_msgs
err_classes []


関数

const char* smb_dos_err_name ( uint8  e_class,
uint16  num 
)

smberr.c162 行で定義されています。

参照先 codeerrerr_classeserr_msgsname.

参照元 get_dos_error_msg()run_error_map_extract().

00163 {
00164         static pstring ret;
00165         int i,j;
00166         
00167         for (i=0;err_classes[i].e_class;i++)
00168                 if (err_classes[i].code == e_class) {
00169                         if (err_classes[i].err_msgs) {
00170                                 err_code_struct *err = err_classes[i].err_msgs;
00171                                 for (j=0;err[j].name;j++)
00172                                         if (num == err[j].code) {
00173                                                 return err[j].name;
00174                                         }
00175                         }
00176                         slprintf(ret, sizeof(ret) - 1, "%d",num);
00177                         return ret;
00178                 }
00179         
00180         slprintf(ret, sizeof(ret) - 1, "Error: Unknown error class (%d,%d)",e_class,num);
00181         return(ret);
00182 }

const char* get_dos_error_msg ( WERROR  result  ) 

smberr.c186 行で定義されています。

参照先 resultsmb_dos_err_name().

参照元 cmd_spoolss_open_printer_ex()reset_all_printerdata().

00187 {
00188         uint16 errnum;
00189 
00190         errnum = W_ERROR_V(result);
00191 
00192         return smb_dos_err_name(ERRDOS, errnum);
00193 }

const char* smb_dos_err_class ( uint8  e_class  ) 

smberr.c198 行で定義されています。

参照先 codeerr_classes.

参照元 run_error_map_extract().

00199 {
00200         static pstring ret;
00201         int i;
00202         
00203         for (i=0;err_classes[i].e_class;i++) {
00204                 if (err_classes[i].code == e_class) {
00205                         return err_classes[i].e_class;
00206                 }
00207         }
00208                 
00209         slprintf(ret, sizeof(ret) - 1, "Error: Unknown class (%d)",e_class);
00210         return(ret);
00211 }

char* smb_dos_errstr ( char *  inbuf  ) 

smberr.c216 行で定義されています。

参照先 codeDEBUGLEVELe_classerrerr_classeserr_msgsmessagename.

参照元 cli_smb_errstr().

00217 {
00218         static pstring ret;
00219         int e_class = CVAL(inbuf,smb_rcls);
00220         int num = SVAL(inbuf,smb_err);
00221         int i,j;
00222         
00223         for (i=0;err_classes[i].e_class;i++)
00224                 if (err_classes[i].code == e_class) {
00225                         if (err_classes[i].err_msgs) {
00226                                 err_code_struct *err = err_classes[i].err_msgs;
00227                                 for (j=0;err[j].name;j++)
00228                                         if (num == err[j].code) {
00229                                                 if (DEBUGLEVEL > 0)
00230                                                         slprintf(ret, sizeof(ret) - 1, "%s - %s (%s)",
00231                                                                  err_classes[i].e_class,
00232                                                                  err[j].name,err[j].message);
00233                                                 else
00234                                                         slprintf(ret, sizeof(ret) - 1, "%s - %s",
00235                                                                  err_classes[i].e_class,err[j].name);
00236                                                 return ret;
00237                                         }
00238                         }
00239                         
00240                         slprintf(ret, sizeof(ret) - 1, "%s - %d",err_classes[i].e_class,num);
00241                         return ret;
00242                 }
00243         
00244         slprintf(ret, sizeof(ret) - 1, "Error: Unknown error (%d,%d)",e_class,num);
00245         return(ret);
00246 }

WERROR map_werror_from_unix ( int  error  ) 

smberr.c251 行で定義されています。

参照先 map_nt_error_from_unix()ntstatus_to_werror()status.

参照元 _spoolss_startdocprinter()print_job_delete().

00252 {
00253         NTSTATUS status = map_nt_error_from_unix(error);
00254         return ntstatus_to_werror(status);
00255 }


変数

err_code_struct dos_msgs[]

smberr.c44 行で定義されています。

err_code_struct server_msgs[]

smberr.c83 行で定義されています。

err_code_struct hard_msgs[]

初期値:

 {
  {"ERRnowrite",19,"Attempt to write on write-protected diskette."},
  {"ERRbadunit",20,"Unknown unit."},
  {"ERRnotready",21,"Drive not ready."},
  {"ERRbadcmd",22,"Unknown command."},
  {"ERRdata",23,"Data error (CRC)."},
  {"ERRbadreq",24,"Bad request structure length."},
  {"ERRseek",25 ,"Seek error."},
  {"ERRbadmedia",26,"Unknown media type."},
  {"ERRbadsector",27,"Sector not found."},
  {"ERRnopaper",28,"Printer out of paper."},
  {"ERRwrite",29,"Write fault."},
  {"ERRread",30,"Read fault."},
  {"ERRgeneral",31,"General failure."},
  {"ERRbadshare",32,"An open conflicts with an existing open."},
  {"ERRlock",33,"A Lock request conflicted with an existing lock or specified an invalid mode, or an Unlock requested attempted to remove a lock held by another process."},
  {"ERRwrongdisk",34,"The wrong disk was found in a drive."},
  {"ERRFCBUnavail",35,"No FCBs are available to process request."},
  {"ERRsharebufexc",36,"A sharing buffer has been exceeded."},
  {NULL,-1,NULL}}

smberr.c119 行で定義されています。

int code

smberr.c143 行で定義されています。

参照元 ads_kdestroy()cli_nt_error()kerberos_kinit_password_ext()process_logon_packet()smb_dos_err_class()smb_dos_err_name()smb_dos_errstr()torture_ioctl_test().

const char* e_class

smberr.c144 行で定義されています。

参照元 cli_nt_error()smb_dos_errstr().

err_code_struct* err_msgs

smberr.c145 行で定義されています。

参照元 smb_dos_err_name()smb_dos_errstr().

struct { ... } err_classes[]

参照元 smb_dos_err_class()smb_dos_err_name()smb_dos_errstr().


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