diff --git a/dap_stream_ch_vpn.c b/dap_stream_ch_vpn.c index ed3c6722cb5f3053324fb16d1a134d69f83a5b7d..220322465c9a9e987a8fba68c7d358d9ab0ca6b8 100644 --- a/dap_stream_ch_vpn.c +++ b/dap_stream_ch_vpn.c @@ -27,7 +27,6 @@ #include "utlist.h" #include "dap_common.h" -#include "../sources/config.h" #include "dap_client.h" #include "dap_http_client.h" @@ -37,8 +36,6 @@ #include "stream_ch_proc.h" #include "stream_ch_pkt.h" -//#include "ch_sf.h" - #define LOG_TAG "ch_sf" #define STREAM_SF_PACKET_OP_CODE_CONNECTED 0x000000a9 @@ -181,13 +178,16 @@ int ch_sf_raw_write(uint8_t op_code, const void * data, size_t data_size); void stream_sf_disconnect(ch_sf_socket_t * sf_sock); - +static const char *l_vpn_addr, *l_vpn_mask; /** * @brief ch_sf_init * @return */ -int ch_sf_init() +int ch_sf_init(const char* vpn_addr, const char* vpn_mask) { + l_vpn_addr = strdup(vpn_addr); + l_vpn_mask = strdup(vpn_mask); + raw_server=calloc(1,sizeof(ch_sf_raw_server_t)); pthread_mutex_init(&raw_server->clients_mutex,NULL); pthread_mutex_init(&raw_server->pkt_out_mutex,NULL); @@ -206,14 +206,16 @@ void ch_sf_deinit() { pthread_mutex_destroy(&sf_socks_mutex); pthread_cond_destroy(&sf_socks_cond); + free((char*)l_vpn_addr); + free((char*)l_vpn_mask); if (raw_server) - free(raw_server); + free(raw_server); } void ch_sf_tun_create() { - inet_aton(my_config.vpn_addr, & raw_server->client_addr ); - inet_aton(my_config.vpn_mask, & raw_server->client_addr_mask ); + inet_aton(l_vpn_addr, & raw_server->client_addr ); + inet_aton(l_vpn_mask, & raw_server->client_addr_mask ); raw_server->client_addr_host.s_addr= (raw_server->client_addr.s_addr | 0x01000000); // grow up some shit here! raw_server->client_addr_last.s_addr = raw_server->client_addr_host.s_addr; @@ -229,11 +231,11 @@ void ch_sf_tun_create() raw_server->tun_ctl_fd=-1; }else{ char buf[256]; - log_it(L_NOTICE,"Bringed up %s virtual network interface (%s/%s)", raw_server->ifr.ifr_name,inet_ntoa(raw_server->client_addr_host),my_config.vpn_mask); + log_it(L_NOTICE,"Bringed up %s virtual network interface (%s/%s)", raw_server->ifr.ifr_name,inet_ntoa(raw_server->client_addr_host),l_vpn_mask); raw_server->tun_fd= raw_server->tun_ctl_fd; // Looks yes, its so snprintf(buf,sizeof(buf),"ip link set %s up",raw_server->ifr.ifr_name); system(buf); - snprintf(buf,sizeof(buf),"ip addr add %s/%s dev %s ",inet_ntoa(raw_server->client_addr_host),my_config.vpn_mask, raw_server->ifr.ifr_name ); + snprintf(buf,sizeof(buf),"ip addr add %s/%s dev %s ",inet_ntoa(raw_server->client_addr_host),l_vpn_mask, raw_server->ifr.ifr_name ); system(buf); } } diff --git a/dap_stream_ch_vpn.h b/dap_stream_ch_vpn.h index ad148ca43a27c14af0621493d3fb32850fdf74fd..1956a30a421179c3fcdef69094f8b01709901a66 100644 --- a/dap_stream_ch_vpn.h +++ b/dap_stream_ch_vpn.h @@ -1,7 +1,7 @@ #ifndef _STREAM_SF_H_ #define _STREAM_SF_H_ -extern int ch_sf_init(); +extern int ch_sf_init(const char* vpn_addr, const char* vpn_mask); extern void ch_sf_deinit(); #endif