From: cheoleun moon Date: Tue, 30 Aug 2022 10:03:44 +0000 (+0900) Subject: Remove duplicate codes X-Git-Tag: submit/tizen/20220830.111129^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_8.0;p=platform%2Fcore%2Fapi%2Fvpn-service.git Remove duplicate codes Change-Id: Ibc19f8fc664e9d4891514876f3395f4f566d9582 --- diff --git a/include/capi_vpn_service_private.h b/include/capi_vpn_service_private.h index 39f0ddd..9df2636 100755 --- a/include/capi_vpn_service_private.h +++ b/include/capi_vpn_service_private.h @@ -68,6 +68,14 @@ extern "C" { return feature_rv; \ } while (0) +#define CHECK_PARAM_IF(expr, fmt, arg...) \ + do { \ + if (!(expr)) { \ + LOGE(fmt, ##arg); \ + return VPNSVC_ERROR_INVALID_PARAMETER; \ + } \ + } while (0) + /** * @brief This data structure has a fido data and its length. */ diff --git a/src/capi_vpn_service.c b/src/capi_vpn_service.c index c9d1357..4617689 100755 --- a/src/capi_vpn_service.c +++ b/src/capi_vpn_service.c @@ -194,6 +194,36 @@ GVariant *_vpnsvc_invoke_dbus_method(GDBusConnection *connection, return reply; } + +static GVariant *_vpnsvc_invoke_dbus_method_vpnsvc_interface(GDBusConnection *connection, + const char *method, + GVariant *params, int *dbus_error) +{ + return _vpnsvc_invoke_dbus_method(connection, + NETCONFIG_SERVICE_NAME, + NETCONFIG_VPNSVC_PATH, + NETCONFIG_VPNSVC_INTERFACE_NAME, + method, + params, + dbus_error); +} + +static bool _check_internet_privilege(GDBusConnection *connection) +{ + int dbus_result; + op = _vpnsvc_invoke_dbus_method(connection, + NETCONFIG_SERVICE_NAME, + NETCONFIG_NETWORK_PATH, + NETCONFIG_NETWORK_INTERFACE, + "CheckInternetPrivilege", + NULL, + &dbus_result); + + if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + return false; + return true; +} + GVariant *_vpnsvc_invoke_dbus_method_with_fd(GDBusConnection *connection, const char *dest, const char *path, const char *interface_name, const char *method, @@ -338,15 +368,7 @@ EXPORT_API int vpnsvc_init(const char* iface_name, vpnsvc_h *handle) LOGD("client iface_fd : %d", iface_fd); - op = _vpnsvc_invoke_dbus_method(tmp_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) { + if (_check_internet_privilege(tmp_s->connection) == false) { close(iface_fd); _vpnsvc_deinit_vpnsvc_tun_s(tmp_s); return VPNSVC_ERROR_PERMISSION_DENIED; @@ -419,21 +441,10 @@ EXPORT_API int vpnsvc_deinit(vpnsvc_h handle) LOGD("enter vpnsvc_deinit, iface_fd : %d", tun_s->fd); if (tun_s->fd > 0) { - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_deinit", g_variant_new("(s)", tun_s->name), &dbus_result); @@ -486,15 +497,7 @@ EXPORT_API int vpnsvc_protect(vpnsvc_h handle, int socket_fd, const char* iface_ return VPNSVC_ERROR_INVALID_PARAMETER; } - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; /* call vpnsvc_protect */ @@ -551,21 +554,10 @@ EXPORT_API int vpnsvc_up(vpnsvc_h handle) LOGD("iface_index %d, iface_name %s", tun_s->index, tun_s->name); - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_up", g_variant_new("(s)", tun_s->name), &dbus_result); @@ -608,21 +600,10 @@ EXPORT_API int vpnsvc_down(vpnsvc_h handle) return VPNSVC_ERROR_INVALID_PARAMETER; } - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_down", g_variant_new("(s)", tun_s->name), &dbus_result); @@ -773,21 +754,10 @@ EXPORT_API int vpnsvc_block_networks(vpnsvc_h handle, } nets_param_orig = g_variant_builder_end(&nets_builder); - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_block_networks", g_variant_new("(vuvu)", nets_param_vpn, num_allow_routes_vpn, nets_param_orig, num_allow_routes_orig), @@ -830,21 +800,10 @@ EXPORT_API int vpnsvc_unblock_networks(vpnsvc_h handle) return VPNSVC_ERROR_INVALID_PARAMETER; } - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_NETWORK_PATH, - NETCONFIG_NETWORK_INTERFACE, - "CheckInternetPrivilege", - NULL, - &dbus_result); - - if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) + if (_check_internet_privilege(tun_s->connection) == false) return VPNSVC_ERROR_PERMISSION_DENIED; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_unblock_networks", g_variant_new("()"), &dbus_result); @@ -887,10 +846,7 @@ EXPORT_API int vpnsvc_update_settings(vpnsvc_h handle) if (!_vpn_check_ip_address_validity(tun_s->remote_ip)) return VPNSVC_ERROR_INVALID_PARAMETER; - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_update_settings", g_variant_new("(issu)", tun_s->index, tun_s->local_ip, tun_s->remote_ip, tun_s->mtu), &dbus_result); @@ -1174,24 +1130,12 @@ EXPORT_API int vpnsvc_add_route(vpnsvc_h handle, const char *route_address, int int result = VPNSVC_ERROR_NONE; int dbus_result; - vpnsvc_tun_s *tun_s = NULL; + vpnsvc_tun_s *tun_s = (vpnsvc_tun_s*)handle; - /* parameter check */ - if (handle == NULL) { - LOGE("handle is a NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - tun_s = (vpnsvc_tun_s*)handle; + CHECK_PARAM_IF(handle != NULL, "handle is NULL"); + CHECK_PARAM_IF(route_address != NULL, "route_address is NULL"); - if (route_address == NULL) { - LOGE("remove_address is NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_add_route", g_variant_new("(ssi)", tun_s->name, route_address, prefix), &dbus_result); @@ -1217,24 +1161,12 @@ EXPORT_API int vpnsvc_remove_route(vpnsvc_h handle, const char *route_address, i int result = VPNSVC_ERROR_NONE; int dbus_result; - vpnsvc_tun_s *tun_s = NULL; - - /* parameter check */ - if (handle == NULL) { - LOGE("handle is a NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - tun_s = (vpnsvc_tun_s*)handle; + vpnsvc_tun_s *tun_s = (vpnsvc_tun_s*)handle; - if (route_address == NULL) { - LOGE("route_address is NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } + CHECK_PARAM_IF(handle != NULL, "handle is NULL"); + CHECK_PARAM_IF(route_address != NULL, "route_address is NULL"); - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_remove_route", g_variant_new("(ssi)", tun_s->name, route_address, prefix), &dbus_result); @@ -1260,24 +1192,12 @@ EXPORT_API int vpnsvc_add_dns_server(vpnsvc_h handle, const char *dns_server) int result = VPNSVC_ERROR_NONE; int dbus_result; - vpnsvc_tun_s *tun_s = NULL; + vpnsvc_tun_s *tun_s = (vpnsvc_tun_s*)handle; - /* parameter check */ - if (handle == NULL) { - LOGE("handle is a NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - tun_s = (vpnsvc_tun_s*)handle; + CHECK_PARAM_IF(handle != NULL, "handle is NULL"); + CHECK_PARAM_IF(dns_server != NULL, "dns_server is NULL"); - if (dns_server == NULL) { - LOGE("dns_server is NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_add_dns_server", g_variant_new("(ss)", tun_s->name, dns_server), &dbus_result); @@ -1303,23 +1223,12 @@ EXPORT_API int vpnsvc_remove_dns_server(vpnsvc_h handle, const char *dns_server) int result = VPNSVC_ERROR_NONE; int dbus_result; - vpnsvc_tun_s *tun_s = NULL; + vpnsvc_tun_s *tun_s = (vpnsvc_tun_s*)handle; - /* parameter check */ - if (handle == NULL) { - LOGE("handle is a NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - tun_s = (vpnsvc_tun_s*)handle; + CHECK_PARAM_IF(handle != NULL, "handle is NULL"); + CHECK_PARAM_IF(dns_server != NULL, "dns_server is NULL"); - if (dns_server == NULL) { - LOGE("dns_server is NULL"); - return VPNSVC_ERROR_INVALID_PARAMETER; - } - op = _vpnsvc_invoke_dbus_method(tun_s->connection, - NETCONFIG_SERVICE_NAME, - NETCONFIG_VPNSVC_PATH, - NETCONFIG_VPNSVC_INTERFACE_NAME, + op = _vpnsvc_invoke_dbus_method_vpnsvc_interface(tun_s->connection, "vpn_remove_dns_server", g_variant_new("(ss)", tun_s->name, dns_server), &dbus_result); diff --git a/tests/vpn-service-gtest-common.cpp b/tests/vpn-service-gtest-common.cpp index 424a381..8da61ba 100755 --- a/tests/vpn-service-gtest-common.cpp +++ b/tests/vpn-service-gtest-common.cpp @@ -26,27 +26,35 @@ extern "C" { } class VpnServiceTest: public ::testing::Test { - protected: - vpnsvc_h handle; - - void SetUp() override - { - vpn_service_mock_set_file_result(true); - vpn_service_mock_set_sysinfo_result(true); - vpn_service_mock_set_gdbus_result(true); - vpn_service_mock_set_io_result(true); - vpn_service_mock_set_io_timeout(false); - vpnsvc_init("tizen", &handle); - } - - void TearDown() override - { - vpnsvc_deinit(handle); - vpn_service_mock_set_gdbus_result(true); - vpn_service_mock_set_sysinfo_result(true); - vpn_service_mock_set_io_result(true); - vpn_service_mock_set_file_result(true); - } +protected: + vpnsvc_h handle; + + void SetUp() override + { + vpn_service_mock_set_file_result(true); + vpn_service_mock_set_sysinfo_result(true); + vpn_service_mock_set_gdbus_result(true); + vpn_service_mock_set_io_result(true); + vpn_service_mock_set_io_timeout(false); + vpnsvc_init("tizen", &handle); + } + + void TearDown() override + { + vpnsvc_deinit(handle); + vpn_service_mock_set_gdbus_result(true); + vpn_service_mock_set_sysinfo_result(true); + vpn_service_mock_set_io_result(true); + vpn_service_mock_set_file_result(true); + } + + char *dest_vpn_addr[2] = {"125.209.222.141", "180.70.134.19"}; + char *dest_addr[2] = {"216.58.221.142", "206.190.36.45"}; + int vpn_prefix[2] = {32, 32}; + int prefix[2] = {32, 32}; + size_t num_allow_vpn_routes = 2; + size_t num_allow_routes = 2; + }; TEST_F(VpnServiceTest, InitN) @@ -140,13 +148,6 @@ TEST_F(VpnServiceTest, WriteP) TEST_F(VpnServiceTest, BlockNetworksN) { - char *dest_vpn_addr[2] = {"125.209.222.141", "180.70.134.19"}; - char *dest_addr[2] = {"216.58.221.142", "206.190.36.45"}; - int vpn_prefix[2] = {32, 32}; - int prefix[2] = {32, 32}; - size_t num_allow_vpn_routes = 2; - size_t num_allow_routes = 2; - EXPECT_EQ(VPNSVC_ERROR_INVALID_PARAMETER, vpnsvc_block_networks(NULL, NULL, NULL, 0, NULL, NULL, 0)); EXPECT_EQ(VPNSVC_ERROR_INVALID_PARAMETER, vpnsvc_block_networks(handle, @@ -160,13 +161,6 @@ TEST_F(VpnServiceTest, BlockNetworksN) TEST_F(VpnServiceTest, BlockNetworksP) { - char *dest_vpn_addr[2] = {"125.209.222.141", "180.70.134.19"}; - char *dest_addr[2] = {"216.58.221.142", "206.190.36.45"}; - int vpn_prefix[2] = {32, 32}; - int prefix[2] = {32, 32}; - size_t num_allow_vpn_routes = 2; - size_t num_allow_routes = 2; - EXPECT_EQ(VPNSVC_ERROR_NONE, vpnsvc_block_networks(handle, dest_vpn_addr, vpn_prefix, num_allow_vpn_routes, dest_addr, prefix, num_allow_routes));