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,
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;
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);
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 */
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);
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);
}
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),
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);
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);
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);
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);
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);
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);
}
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)
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,
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));