return VPNSVC_ERROR_NONE;
}
-static int _check_config_str(void)
-{
- char *buf = NULL;
- size_t len;
-
- len = confstr(_CS_PATH, NULL, 0);
- if (len == 0)
- return -1;
-
- if ((buf = malloc(len)) == NULL)
- return -1;
-
- if (confstr(_CS_PATH, buf, len) == 0) {
- free(buf);
- return -1;
- }
-
- free(buf);
-
- return 0;
-}
-
#if 0
static void dns_nat_register(char **vpn_dns_address, size_t nr_dns, char *vpn_device_address)
{
int vpn_service_deinit(const char* dev_name)
{
- char buf[100], *cmd;
- FILE *fp = NULL;
-
- if (_check_config_str() != 0) {
- ERR("Failed to get configuration string");
- return VPNSVC_ERROR_IO_ERROR;
- }
+ char buf[100];
snprintf(buf, sizeof(buf), "/usr/sbin/ip link del %s", dev_name);
- cmd = g_try_malloc0(strlen(buf) + 1);
- strncpy(cmd, buf, strlen(buf));
-
- DBG("link delete cmd : %s", cmd);
-
- fp = popen(cmd, "r");
- g_free(cmd);
-
- if (fp != NULL) {
- pclose(fp);
- return VPNSVC_ERROR_NONE;
- } else {
+ if (netconfig_execute_cmd(buf)) {
+ ERR("Failed to execute command: %s", buf);
return VPNSVC_ERROR_IO_ERROR;
}
+
+ return VPNSVC_ERROR_NONE;
}
int vpn_service_protect(int socket_fd, const char* dev_name)