diff options
author | Tim Potter <tpot@samba.org> | 2001-08-21 03:04:41 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2001-08-21 03:04:41 +0000 |
commit | 02fe0e18dfcb8cc83b3cf0b6c8dd4dc1ddb7e196 (patch) | |
tree | 2eb112956bdde46bc921402108f9ec143c7c2c31 /source | |
parent | bd3010263be24425206587abfdb41164089e2157 (diff) | |
download | samba-02fe0e18dfcb8cc83b3cf0b6c8dd4dc1ddb7e196.tar.gz samba-02fe0e18dfcb8cc83b3cf0b6c8dd4dc1ddb7e196.tar.xz samba-02fe0e18dfcb8cc83b3cf0b6c8dd4dc1ddb7e196.zip |
Distinguish between NT informational and error codes.
Diffstat (limited to 'source')
-rw-r--r-- | source/libsmb/clierror.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source/libsmb/clierror.c b/source/libsmb/clierror.c index 022e808fea9..59a11dcc60f 100644 --- a/source/libsmb/clierror.c +++ b/source/libsmb/clierror.c @@ -255,12 +255,18 @@ BOOL cli_is_error(struct cli_state *cli) { uint32 flgs2 = SVAL(cli->inbuf,smb_flg2), rcls = 0; - if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) + if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) { + + /* Return error is error bits are set */ + rcls = IVAL(cli->inbuf, smb_rcls); - else - rcls = CVAL(cli->inbuf, smb_rcls); + return (rcls & 0xF0000000) == 0xC0000000; + } + + /* Return error if error class in non-zero */ - return (rcls != 0); + rcls = CVAL(cli->inbuf, smb_rcls); + return rcls != 0; } /* Return true if the last error was an NT error */ |