A rewrite of the error handling in the libsmb client code. I've separated
authorTim Potter <tpot@samba.org>
Fri, 10 Aug 2001 06:00:33 +0000 (06:00 +0000)
committerTim Potter <tpot@samba.org>
Fri, 10 Aug 2001 06:00:33 +0000 (06:00 +0000)
commit2ccfea3de7b2b7dc0be2438c3adb3f7be82a2dfc
tree7c6072ae27cf5ed587989c8006ba948eaa0f59c6
parent4bbd1ddb274438e00f83fffa2051d8f7d6c2b17c
A rewrite of the error handling in the libsmb client code.  I've separated
out the error handling into a bunch of separate functions rather than all
being handled in one big function.

Fetch error codes from the last received packet:

    void cli_dos_error(struct cli_state *cli, uint8 *eclass, uint32 *num);
    uint32 cli_nt_error(struct cli_state *);

Convert errors to UNIX errno values:

    int cli_errno_from_dos(uint8 eclass, uint32 num);
    int cli_errno_from_nt(uint32 status);
    int cli_errno(struct cli_state *cli);

Detect different kinds of errors:

    BOOL cli_is_dos_error(struct cli_state *cli);
    BOOL cli_is_nt_error(struct cli_state *cli);
    BOOL cli_is_error(struct cli_state *cli);

This also means we now support CAP_STATUS32 as we can decode and understand
NT errors instead of just DOS errors.  Yay!

Ported a whole bunch of files in libsmb to use this new API instead of the
just the DOS error.
(This used to be commit 6dbdb0d813f3c7ab20b38baa1223b0b479aadec9)
13 files changed:
source3/libsmb/cliconnect.c
source3/libsmb/clientgen.c
source3/libsmb/clierror.c
source3/libsmb/clifile.c
source3/libsmb/clilist.c
source3/libsmb/climessage.c
source3/libsmb/clirap.c
source3/libsmb/clireadwrite.c
source3/libsmb/clitrans.c
source3/libsmb/libsmbclient.c
source3/libsmb/nterr.c
source3/libsmb/smbencrypt.c
source3/libsmb/smberr.c