Line data Source code
1 : /*
2 : Linux DNS client library implementation
3 : Copyright (C) 2010 Guenther Deschner
4 :
5 : ** NOTE! The following LGPL license applies to the libaddns
6 : ** library. This does NOT imply that all of Samba is released
7 : ** under the LGPL
8 :
9 : This library is free software; you can redistribute it and/or
10 : modify it under the terms of the GNU Lesser General Public
11 : License as published by the Free Software Foundation; either
12 : version 2.1 of the License, or (at your option) any later version.
13 :
14 : This library is distributed in the hope that it will be useful,
15 : but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 : Lesser General Public License for more details.
18 :
19 : You should have received a copy of the GNU Lesser General Public
20 : License along with this library; if not, see <http://www.gnu.org/licenses/>.
21 : */
22 :
23 : #include "dns.h"
24 : #include "dnserr.h"
25 :
26 : typedef struct {
27 : const char *dns_errstr;
28 : DNS_ERROR dns_errcode;
29 : } dns_err_code_struct;
30 :
31 : static const dns_err_code_struct dns_errs[] =
32 : {
33 : { "ERROR_DNS_SUCCESS", ERROR_DNS_SUCCESS },
34 : { "ERROR_DNS_RECORD_NOT_FOUND", ERROR_DNS_RECORD_NOT_FOUND },
35 : { "ERROR_DNS_BAD_RESPONSE", ERROR_DNS_BAD_RESPONSE },
36 : { "ERROR_DNS_INVALID_PARAMETER", ERROR_DNS_INVALID_PARAMETER },
37 : { "ERROR_DNS_NO_MEMORY", ERROR_DNS_NO_MEMORY },
38 : { "ERROR_DNS_INVALID_NAME_SERVER", ERROR_DNS_INVALID_NAME_SERVER },
39 : { "ERROR_DNS_CONNECTION_FAILED", ERROR_DNS_CONNECTION_FAILED },
40 : { "ERROR_DNS_GSS_ERROR", ERROR_DNS_GSS_ERROR },
41 : { "ERROR_DNS_INVALID_NAME", ERROR_DNS_INVALID_NAME },
42 : { "ERROR_DNS_INVALID_MESSAGE", ERROR_DNS_INVALID_MESSAGE },
43 : { "ERROR_DNS_SOCKET_ERROR", ERROR_DNS_SOCKET_ERROR },
44 : { "ERROR_DNS_UPDATE_FAILED", ERROR_DNS_UPDATE_FAILED },
45 : { NULL, ERROR_DNS_SUCCESS },
46 : };
47 :
48 4 : const char *dns_errstr(DNS_ERROR err)
49 : {
50 : int i;
51 :
52 48 : for (i=0; dns_errs[i].dns_errstr != NULL; i++) {
53 48 : if (ERR_DNS_EQUAL(err, dns_errs[i].dns_errcode)) {
54 4 : return dns_errs[i].dns_errstr;
55 : }
56 : }
57 :
58 0 : return NULL;
59 : }
|