source: trunk/server/source4/libcli/raw/clierror.c

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 2.0 KB
Line 
1/*
2 Unix SMB/CIFS implementation.
3 client error handling routines
4 Copyright (C) Andrew Tridgell 1994-1998
5 Copyright (C) James Myers 2003
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include "includes.h"
22#include "libcli/raw/libcliraw.h"
23#include "libcli/raw/raw_proto.h"
24
25
26/***************************************************************************
27 Return an error message from the last response
28****************************************************************************/
29_PUBLIC_ const char *smbcli_errstr(struct smbcli_tree *tree)
30{
31 switch (tree->session->transport->error.etype) {
32 case ETYPE_SMB:
33 return nt_errstr(tree->session->transport->error.e.nt_status);
34
35 case ETYPE_SOCKET:
36 return "socket_error";
37
38 case ETYPE_NBT:
39 return "nbt_error";
40
41 case ETYPE_NONE:
42 return "no_error";
43 }
44 return NULL;
45}
46
47
48/* Return the 32-bit NT status code from the last packet */
49_PUBLIC_ NTSTATUS smbcli_nt_error(struct smbcli_tree *tree)
50{
51 switch (tree->session->transport->error.etype) {
52 case ETYPE_SMB:
53 return tree->session->transport->error.e.nt_status;
54
55 case ETYPE_SOCKET:
56 return NT_STATUS_UNSUCCESSFUL;
57
58 case ETYPE_NBT:
59 return NT_STATUS_UNSUCCESSFUL;
60
61 case ETYPE_NONE:
62 return NT_STATUS_OK;
63 }
64
65 return NT_STATUS_UNSUCCESSFUL;
66}
67
68
69/* Return true if the last packet was an error */
70bool smbcli_is_error(struct smbcli_tree *tree)
71{
72 return NT_STATUS_IS_ERR(smbcli_nt_error(tree));
73}
Note: See TracBrowser for help on using the repository browser.