• 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_NOT_SYSTEM_CALL, "Non-system applications use system APIs"},
66     {NETMANAGER_ERR_PARAMETER_ERROR, "Parameter error"},
67     {NETMANAGER_ERR_CAPABILITY_NOT_SUPPORTED, "Capability not supported"},
68     {NETMANAGER_ERR_INVALID_PARAMETER, "Invalid parameter value"},
69     {NETMANAGER_ERR_OPERATION_FAILED, "Operation failed. Cannot connect to service"},
70     {NETMANAGER_ERR_INTERNAL, "System internal error"},
71     /* Net ext common error */
72     {NETMANAGER_EXT_SUCCESS, "successful"},
73     {NETMANAGER_EXT_ERR_PERMISSION_DENIED, "Permission denied"},
74     {NETMANAGER_EXT_ERR_NOT_SYSTEM_CALL, "System permission denied"},
75     {NETMANAGER_EXT_ERR_PARAMETER_ERROR, "Parameter error"},
76     {NETMANAGER_EXT_ERR_CAPABILITY_NOT_SUPPORTED, "Capability not supported"},
77     {NETMANAGER_EXT_ERR_INVALID_PARAMETER, "Invalid parameter value"},
78     {NETMANAGER_EXT_ERR_OPERATION_FAILED, "Operation failed. Cannot connect to service"},
79     {NETMANAGER_EXT_ERR_INTERNAL, "System internal error"},
80     /* Net Policy Manager */
81     {POLICY_ERR_INVALID_UID, "Invalid uid value"},
82     {POLICY_ERR_INVALID_POLICY, "Invalid policy value"},
83     {POLICY_ERR_INVALID_QUOTA_POLICY, "Invalid quota policy value"},
84     {POLICY_ERR_QUOTA_POLICY_NOT_EXIST, "Quota policy not exist"},
85     /* Net Ethernet Manager */
86     {ETHERNET_ERR_INIT_FAIL, "Failed to initialize the Ethernet"},
87     {ETHERNET_ERR_EMPTY_CONFIGURATION, "The Ethernet configuration file is empty"},
88     {ETHERNET_ERR_DUMP, "Ethernet DUMP error"},
89     {ETHERNET_ERR_DEVICE_CONFIGURATION_INVALID, "Invalid Ethernet configuration file"},
90     {ETHERNET_ERR_DEVICE_INFORMATION_NOT_EXIST, "The device information does not exist"},
91     {ETHERNET_ERR_DEVICE_NOT_LINK, "The Ethernet device is not connected"},
92     {ETHERNET_ERR_USER_CONIFGURATION_WRITE_FAIL,
93      "Description Failed to write user configuration information on the Ethernet"},
94     {ETHERNET_ERR_USER_CONIFGURATION_CLEAR_FAIL, "The Ethernet failed to clear user configuration information"},
95     {ETHERNET_ERR_CONVERT_CONFIGURATINO_FAIL, "The static configuration of Ethernet conversion failed"},
96     /* Net Share Manager */
97     {NETWORKSHARE_ERROR_UNKNOWN_TYPE, "Sharing iface type is unkonwn"},
98     {NETWORKSHARE_ERROR_UNKNOWN_IFACE, "Try to share an unknown iface"},
99     {NETWORKSHARE_ERROR_UNAVAIL_IFACE, "Try to share an unavailable iface"},
100     {NETWORKSHARE_ERROR_WIFI_SHARING, "WiFi sharing failed"},
101     {NETWORKSHARE_ERROR_BT_SHARING, "Bluetooth sharing failed"},
102     {NETWORKSHARE_ERROR_USB_SHARING, "Usb sharing failed"},
103     {NETWORKSHARE_ERROR_SHARING_IFACE_ERROR, "Sharing iface failed"},
104     {NETWORKSHARE_ERROR_ENABLE_FORWARDING_ERROR, "Network share enable forwarding error"},
105     {NETWORKSHARE_ERROR_INTERNAL_ERROR, "Network share internal error"},
106     {NETWORKSHARE_ERROR_IFACE_CFG_ERROR, "Network card configuration doesnot exist"},
107     {NETWORKSHARE_ERROR_DHCPSERVER_ERROR, "DHCP server failed"},
108     {NETWORKSHARE_ERROR_ISSHARING_CALLBACK_ERROR, "Issharing callback doesnot exist"},
109     /* Net Stats Manager */
110     {STATS_DUMP_MESSAGE_FAIL, "Dump message failed"},
111     {STATS_REMOVE_FILE_FAIL, "Remove file failed "},
112     {STATS_ERR_INVALID_TIME_PERIOD, "Time period invalid"},
113     {STATS_ERR_READ_BPF_FAIL, "Read bpf failed"},
114     {STATS_ERR_INVALID_KEY, "The key of bpf is invalid"},
115     {STATS_ERR_INVALID_IFACE_STATS_MAP, "The iface stats map is invalid"},
116     {STATS_ERR_INVALID_STATS_VALUE, "The stats value is invalid"},
117     {STATS_ERR_INVALID_STATS_TYPE, "Invalid stats type"},
118     {STATS_ERR_INVALID_UID_STATS_MAP, "The uid stats map in bpf is invalid"},
119     {STATS_ERR_INVALID_IFACE_NAME_MAP, "The iface map in bpf is invalid"},
120     {STATS_ERR_GET_IFACE_NAME_FAILED, "Get iface name failed"},
121     {STATS_ERR_CLEAR_STATS_DATA_FAIL, "Clear stats data failed"},
122     {STATS_ERR_CREATE_TABLE_FAIL, "Create stats table failed"},
123     {STATS_ERR_DATABASE_RECV_NO_DATA, "The data got from database doesnot exist"},
124     {STATS_ERR_WRITE_DATA_FAIL, "Write data into database failed"},
125     {STATS_ERR_READ_DATA_FAIL, "Read data from database failed"},
126     /* Net connection Manager */
127     {NET_CONN_ERR_INVALID_SUPPLIER_ID, "the supplier id is invalid"},
128     {NET_CONN_ERR_NET_TYPE_NOT_FOUND, "the net type is not found"},
129     {NET_CONN_ERR_NO_ANY_NET_TYPE, "no any net type"},
130     {NET_CONN_ERR_NO_REGISTERED, "no registered"},
131     {NET_CONN_ERR_NETID_NOT_FOUND, "the net id is not found"},
132     {NET_CONN_ERR_CALLBACK_NOT_FOUND, "the callback is not found"},
133     {NET_CONN_ERR_SAME_CALLBACK, "the same callback exists"},
134     {NET_CONN_ERR_REQ_ID_NOT_FOUND, "the request id is not found"},
135     {NET_CONN_ERR_NO_DEFAULT_NET, "the net is not defualt"},
136     {NET_CONN_ERR_HTTP_PROXY_INVALID, "the http proxy is invalid"},
137     {NET_CONN_ERR_NO_HTTP_PROXY, "the httpProxy in service doesnot exist"},
138     {NET_CONN_ERR_INVALID_NETWORK, "the network doesnot exist"},
139     {NET_CONN_ERR_SERVICE_REQUEST_CONNECT_FAIL, "the service request connection failed "},
140     {NET_CONN_ERR_SERVICE_UPDATE_NET_LINK_INFO_FAIL, "the service update net link infomation failed"},
141     {NET_CONN_ERR_NO_SUPPLIER, "supplier doesn't exist"},
142     {NET_CONN_ERR_NET_MONITOR_OPT_FAILED, "net monitor failed"},
143     {NET_CONN_ERR_SERVICE_NO_REQUEST, "no service request"},
144     {NET_CONN_ERR_NO_ADDRESS, "address list doesnot exist"},
145     {NET_CONN_ERR_NET_NOT_FIND_BESTNETWORK_FOR_REQUEST, "the bestnetwork request was not found"},
146     {NET_CONN_ERR_NET_NO_RESTRICT_BACKGROUND, "no restrict background "},
147     {NET_CONN_ERR_NET_OVER_MAX_REQUEST_NUM, "the number of requests exceeded the maximum"},
148     {NET_CONN_ERR_CREATE_DUMP_FAILED, "create dump failed"},
149     /* Net mDNS Manager */
150     {NET_MDNS_ERR_UNKNOWN, "Unknown error"},
151     {NET_MDNS_ERR_CALLBACK_NOT_FOUND, "Callback not found"},
152     {NET_MDNS_ERR_CALLBACK_DUPLICATED, "Callback duplicated"},
153     {NET_MDNS_ERR_PAYLOAD_PARSER_FAIL, "Payload parser failed"},
154     {NET_MDNS_ERR_EMPTY_PAYLOAD, "Empty payload"},
155     {NET_MDNS_ERR_TIMEOUT, "Request timeout"},
156     {NET_MDNS_ERR_ILLEGAL_ARGUMENT, "Illegal argument"},
157     {NET_MDNS_ERR_SERVICE_INSTANCE_DUPLICATE, "Service instance duplicated"},
158     {NET_MDNS_ERR_SERVICE_INSTANCE_NOT_FOUND, "Service instance not found"},
159     {NET_MDNS_ERR_SEND, "Send packet failed"},
160     /* Net vpn Manager */
161     {NETWORKVPN_ERROR_REFUSE_CREATE_VPN, "VPN creation denied, please check the user type"},
162     {NETWORKVPN_ERROR_VPN_EXIST, "VPN exist already, please execute destroy first"},
163     {NETWORKVPN_ERROR_INVALID_FD, "Invalid socket file discriptor"},
164 #ifdef FEATURE_WEARABLE_DISTRIBUTED_NET_ENABLE
165     /* Wearable distributed net manager */
166     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_START_FAIL, "Wearable distributed net start failed"},
167     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_STOP_FAIL, "Wearable distributed net stop failed"},
168     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INIT_FAIL, "Failed to initialize the wearable distributed net"},
169     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INVALID_PORT_ID, "The port id is invalid"},
170     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INVALID_UDP_PORT_ID, "The udp port id is invalid"},
171     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INVALID_TCP_PORT_ID, "The tcp port id is invalid"},
172     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INVALID_RULE_TYPE, "The wearable distributed net is invalid"},
173     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_INVALID_SUPPLIER_ID, "The supplier id is invalid"},
174     {NETMANAGER_WEARABLE_DISTRIBUTED_NET_ERR_IPTABLES_COMMAND_INVALID, "The iptables command is invalid"},
175 #endif
176 #ifdef FEATURE_NET_FIREWALL_ENABLE
177     /* Net firewall Manager */
178     {FIREWALL_ERR_NO_USER, "The specified user does not exist"},
179     {FIREWALL_ERR_EXCEED_MAX_RULE, "The number of firewall rules exceeds the maximum"},
180     {FIREWALL_ERR_EXCEED_MAX_IP, "The number of IP address rules in the firewall rule exceeds the maximum"},
181     {FIREWALL_ERR_EXCEED_MAX_PORT, "The number of port rules in the firewall rule exceeds the maximum"},
182     {FIREWALL_ERR_EXCEED_MAX_DOMAIN, "The number of domain rules in the firewall rule exceeds the maximum"},
183     {FIREWALL_ERR_EXCEED_ALL_MAX_DOMAIN, "The number of domain rules exceeds the maximum"},
184     {FIREWALL_ERR_NO_RULE, "The specified rule does not exist"},
185     {FIREWALL_ERR_DNS_RULE_DUPLICATION, "The dns rule is duplication"},
186 #endif
187 };
188 } // namespace
ConvertErrorCode(int32_t & errorCode)189 std::string NetBaseErrorCodeConvertor::ConvertErrorCode(int32_t &errorCode)
190 {
191     std::string errmsg;
192     if (errorCode > ERROR_DIVISOR || errorCode == IPC_PROXY_ERR) {
193         if (g_errNumMap.find(errorCode) != g_errNumMap.end()) {
194             errorCode = g_errNumMap.at(errorCode);
195         }
196     }
197     if (g_errStringMap.find(errorCode) != g_errStringMap.end()) {
198         errmsg = g_errStringMap.at(errorCode);
199     }
200     return errmsg;
201 }
202 } // namespace NetManagerStandard
203 } // namespace OHOS
204