• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "errorcode_convertor.h"
17 #include "ipc_types.h"
18 
19 #include "net_conn_constants.h"
20 #include "net_manager_constants.h"
21 #include "net_policy_constants.h"
22 #include "net_stats_constants.h"
23 
24 namespace OHOS {
25 namespace NetManagerStandard {
26 namespace {
27 constexpr int32_t ERROR_DIVISOR = 1000;
28 std::map<int32_t, int32_t> g_errNumMap = {
29     {NETMANAGER_ERR_MEMCPY_FAIL, NETMANAGER_ERR_INTERNAL},
30     {NETMANAGER_ERR_MEMSET_FAIL, NETMANAGER_ERR_INTERNAL},
31     {NETMANAGER_ERR_STRCPY_FAIL, NETMANAGER_ERR_INTERNAL},
32     {NETMANAGER_ERR_STRING_EMPTY, NETMANAGER_ERR_INTERNAL},
33     {NETMANAGER_ERR_LOCAL_PTR_NULL, NETMANAGER_ERR_INTERNAL},
34     {NETMANAGER_ERR_DESCRIPTOR_MISMATCH, NETMANAGER_ERR_OPERATION_FAILED},
35     {NETMANAGER_ERR_WRITE_DESCRIPTOR_TOKEN_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
36     {NETMANAGER_ERR_WRITE_DATA_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
37     {NETMANAGER_ERR_WRITE_REPLY_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
38     {NETMANAGER_ERR_READ_DATA_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
39     {NETMANAGER_ERR_READ_REPLY_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
40     {NETMANAGER_ERR_IPC_CONNECT_STUB_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
41     {NETMANAGER_ERR_GET_PROXY_FAIL, NETMANAGER_ERR_OPERATION_FAILED},
42     {POLICY_ERR_INVALID_UID, NETMANAGER_ERR_INVALID_PARAMETER},
43     {POLICY_ERR_INVALID_POLICY, NETMANAGER_ERR_INVALID_PARAMETER},
44     {POLICY_ERR_INVALID_QUOTA_POLICY, NETMANAGER_ERR_INVALID_PARAMETER},
45     {NET_CONN_ERR_INVALID_NETWORK, NETMANAGER_ERR_INVALID_PARAMETER},
46     {NETMANAGER_EXT_ERR_MEMCPY_FAIL, NETMANAGER_EXT_ERR_INTERNAL},
47     {NETMANAGER_EXT_ERR_MEMSET_FAIL, NETMANAGER_EXT_ERR_INTERNAL},
48     {NETMANAGER_EXT_ERR_STRCPY_FAIL, NETMANAGER_EXT_ERR_INTERNAL},
49     {NETMANAGER_EXT_ERR_STRING_EMPTY, NETMANAGER_EXT_ERR_INTERNAL},
50     {NETMANAGER_EXT_ERR_LOCAL_PTR_NULL, NETMANAGER_EXT_ERR_INTERNAL},
51     {IPC_PROXY_ERR, NETMANAGER_EXT_ERR_OPERATION_FAILED},
52     {NETMANAGER_EXT_ERR_DESCRIPTOR_MISMATCH, NETMANAGER_EXT_ERR_OPERATION_FAILED},
53     {NETMANAGER_EXT_ERR_WRITE_DESCRIPTOR_TOKEN_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
54     {NETMANAGER_EXT_ERR_WRITE_DATA_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
55     {NETMANAGER_EXT_ERR_WRITE_REPLY_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
56     {NETMANAGER_EXT_ERR_READ_DATA_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
57     {NETMANAGER_EXT_ERR_READ_REPLY_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
58     {NETMANAGER_EXT_ERR_IPC_CONNECT_STUB_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
59     {NETMANAGER_EXT_ERR_GET_PROXY_FAIL, NETMANAGER_EXT_ERR_OPERATION_FAILED},
60 };
61 std::map<int32_t, const char *> g_errStringMap = {
62     /* Net base common error */
63     {NETMANAGER_SUCCESS, "Successful"},
64     {NETMANAGER_ERR_PERMISSION_DENIED, "Permission denied"},
65     {NETMANAGER_ERR_PARAMETER_ERROR, "Parameter error"},
66     {NETMANAGER_ERR_CAPABILITY_NOT_SUPPORTED, "Capability not supported"},
67     {NETMANAGER_ERR_INVALID_PARAMETER, "Invalid parameter value"},
68     {NETMANAGER_ERR_OPERATION_FAILED, "Operation failed. Cannot connect to service"},
69     {NETMANAGER_ERR_INTERNAL, "System internal error"},
70     /* Net ext common error */
71     {NETMANAGER_EXT_SUCCESS, "successful"},
72     {NETMANAGER_EXT_ERR_PERMISSION_DENIED, "Permission denied"},
73     {NETMANAGER_EXT_ERR_PARAMETER_ERROR, "Parameter error"},
74     {NETMANAGER_EXT_ERR_CAPABILITY_NOT_SUPPORTED, "Capability not supported"},
75     {NETMANAGER_EXT_ERR_INVALID_PARAMETER, "Invalid parameter value"},
76     {NETMANAGER_EXT_ERR_OPERATION_FAILED, "Operation failed. Cannot connect to service"},
77     {NETMANAGER_EXT_ERR_INTERNAL, "System internal error"},
78     /* Net Policy Manager */
79     {POLICY_ERR_INVALID_UID, "Invalid uid value"},
80     {POLICY_ERR_INVALID_POLICY, "Invalid policy value"},
81     {POLICY_ERR_INVALID_QUOTA_POLICY, "Invalid quota policy value"},
82     {POLICY_ERR_QUOTA_POLICY_NOT_EXIST, "Quota policy not exist"},
83     /* Net Ethernet Manager */
84     {ETHERNET_ERR_INIT_FAIL, "Failed to initialize the Ethernet"},
85     {ETHERNET_ERR_EMPTY_CONFIGURATION, "The Ethernet configuration file is empty"},
86     {ETHERNET_ERR_DUMP, "Ethernet DUMP error"},
87     {ETHERNET_ERR_DEVICE_CONFIGURATION_INVALID, "Invalid Ethernet configuration file"},
88     {ETHERNET_ERR_DEVICE_INFORMATION_NOT_EXIST, "The device information does not exist"},
89     {ETHERNET_ERR_DEVICE_NOT_LINK, "The Ethernet device is not connected"},
90     {ETHERNET_ERR_USER_CONIFGURATION_WRITE_FAIL,
91      "Description Failed to write user configuration information on the Ethernet"},
92     {ETHERNET_ERR_USER_CONIFGURATION_CLEAR_FAIL, "The Ethernet failed to clear user configuration information"},
93     {ETHERNET_ERR_CONVERT_CONFIGURATINO_FAIL, "The static configuration of Ethernet conversion failed"},
94     /* Net Share Manager */
95     {NETWORKSHARE_ERROR_UNKNOWN_TYPE, "Sharing iface type is unkonwn"},
96     {NETWORKSHARE_ERROR_UNKNOWN_IFACE, "Try to share an unknown iface"},
97     {NETWORKSHARE_ERROR_UNAVAIL_IFACE, "Try to share an unavailable iface"},
98     {NETWORKSHARE_ERROR_WIFI_SHARING, "WiFi sharing failed"},
99     {NETWORKSHARE_ERROR_BT_SHARING, "Bluetooth sharing failed"},
100     {NETWORKSHARE_ERROR_SHARING_IFACE_ERROR, "Sharing iface failed"},
101     {NETWORKSHARE_ERROR_ENABLE_FORWARDING_ERROR, "Network share enable forwarding error"},
102     {NETWORKSHARE_ERROR_INTERNAL_ERROR, "Network share internal error"},
103     {NETWORKSHARE_ERROR_IFACE_CFG_ERROR, "Get network card configuration is null"},
104     {NETWORKSHARE_ERROR_DHCPSERVER_ERROR, "DHCP server failed"},
105     {NETWORKSHARE_ERROR_ISSHARING_CALLBACK_ERROR, "Issharing callback is null"},
106     /* Net connection Manager */
107     {NET_CONN_ERR_INVALID_SUPPLIER_ID, "the supplier id is invalid"},
108     {NET_CONN_ERR_NET_TYPE_NOT_FOUND, "the net type is not found"},
109     {NET_CONN_ERR_NO_ANY_NET_TYPE, "no any net type"},
110     {NET_CONN_ERR_NO_REGISTERED, "no registered"},
111     {NET_CONN_ERR_NETID_NOT_FOUND, "the net id is not found"},
112     {NET_CONN_ERR_SAME_CALLBACK, "the same callback exists"},
113     {NET_CONN_ERR_CALLBACK_NOT_FOUND, "the callback is not found"},
114     {NET_CONN_ERR_REQ_ID_NOT_FOUND, "the request id is not found"},
115     {NET_CONN_ERR_NO_DEFAULT_NET, "the net is not defualt"},
116     {NET_CONN_ERR_HTTP_PROXY_INVALID, "the http proxy is invalid"},
117     {NET_CONN_ERR_NO_HTTP_PROXY, "the httpProxy in service is null"},
118     {NET_CONN_ERR_INVALID_NETWORK, "the network is nullptr"},
119     {NET_CONN_ERR_SERVICE_REQUEST_CONNECT_FAIL, "the service request connection failed "},
120     {NET_CONN_ERR_SERVICE_UPDATE_NET_LINK_INFO_FAIL, "the service update net link infomation failed"},
121     {NET_CONN_ERR_NO_SUPPLIER, "supplier doesn't exist"},
122     {NET_CONN_ERR_NET_MONITOR_OPT_FAILED, "net monitor failed"},
123     {NET_CONN_ERR_SERVICE_NO_REQUEST, "no service request"},
124     {NET_CONN_ERR_NO_ADDRESS, "address list is null"},
125     {NET_CONN_ERR_NET_NOT_FIND_BESTNETWORK_FOR_REQUEST, "the bestnetwork request was not found"},
126     {NET_CONN_ERR_NET_NO_RESTRICT_BACKGROUND, "no restrict background "},
127     {NET_CONN_ERR_NET_OVER_MAX_REQUEST_NUM, "the number of requests exceeded the maximum"},
128     {NET_CONN_ERR_CREATE_DUMP_FAILED, "create dump failed"},
129         /* Net mDNS Manager */
130     {NET_MDNS_ERR_UNKNOWN, "Unknown error"},
131     {NET_MDNS_ERR_CALLBACK_NOT_FOUND, "Callback not found"},
132     {NET_MDNS_ERR_CALLBACK_DUPLICATED, "Callback duplicated"},
133     {NET_MDNS_ERR_PAYLOAD_PARSER_FAIL, "Payload parser failed"},
134     {NET_MDNS_ERR_EMPTY_PAYLOAD, "Empty payload"},
135     {NET_MDNS_ERR_TIMEOUT, "Request timeout"},
136     {NET_MDNS_ERR_ILLEGAL_ARGUMENT, "Illegal argument"},
137     {NET_MDNS_ERR_SERVICE_INSTANCE_DUPLICATE, "Service instance duplicated"},
138     {NET_MDNS_ERR_SERVICE_INSTANCE_NOT_FOUND, "Service instance not found"},
139     {NET_MDNS_ERR_SEND, "Send packet failed"},
140 };
141 } // namespace
142 
ConvertErrorCode(int32_t & errorCode)143 std::string NetBaseErrorCodeConvertor::ConvertErrorCode(int32_t &errorCode)
144 {
145     std::string errmsg;
146     if (g_errStringMap.find(errorCode) != g_errStringMap.end()) {
147         errmsg = g_errStringMap.at(errorCode);
148     }
149     if (errorCode > ERROR_DIVISOR || errorCode == IPC_PROXY_ERR) {
150         if (g_errNumMap.find(errorCode) != g_errNumMap.end()) {
151             errorCode = g_errNumMap.at(errorCode);
152         }
153     }
154     if (errmsg.empty() && g_errStringMap.find(errorCode) != g_errStringMap.end()) {
155         errmsg = g_errStringMap.at(errorCode);
156     }
157     return errmsg;
158 }
159 } // namespace NetManagerStandard
160 } // namespace OHOS
161