diff --git a/dap_chain_net_srv_vpn.c b/dap_chain_net_srv_vpn.c index 564c174debd1df39050808fa6c1c1958b8b60318..7b87739c9f9203db35b41427ceb97d65bca4db21 100755 --- a/dap_chain_net_srv_vpn.c +++ b/dap_chain_net_srv_vpn.c @@ -499,13 +499,13 @@ void srv_ch_vpn_delete(dap_stream_ch_t* ch, void* arg) // So complicated to update usage client to be sure that nothing breaks it usage_client_t * l_usage_client = NULL; - bool l_is_unleased = true; + bool l_is_unleased = false; if ( l_ch_vpn->addr_ipv4.s_addr ){ // if leased address pthread_rwlock_wrlock(& s_raw_server_rwlock); if ( s_raw_server->ipv4_lease_last.s_addr == l_ch_vpn->addr_ipv4.s_addr ){ s_raw_server->ipv4_lease_last.s_addr = ntohl( ntohl(s_raw_server->ipv4_lease_last.s_addr)-1 ); - l_is_unleased = false; } + l_is_unleased = true; pthread_rwlock_unlock(& s_raw_server_rwlock); } diff --git a/dap_chain_net_srv_vpn_cdb.c b/dap_chain_net_srv_vpn_cdb.c index fbb51b4a804e162668809a262c2527ceed1fd963..27223d97070568cb70e09902c5ecc7e1fa6a75ca 100644 --- a/dap_chain_net_srv_vpn_cdb.c +++ b/dap_chain_net_srv_vpn_cdb.c @@ -103,7 +103,7 @@ int dap_chain_net_srv_vpn_cdb_init(dap_http_t * a_http) "[--acive_days <Setup active day thats left for user >]\n" "\tCreate user with login, password and some more optional fields\n\n" "vpn_cdb user update --login <Login> [--password <Password>] [--first_name <First Name] [--last_name <Last Name>] [--email <Email>]" - "[--acive_days <Setup active day thats left for user >]\n" + "[--active_days <Setup active day thats left for user >]\n" "\tUpdate existent user\n" "vpn_cdb user delete --login <Login>\n" "\tDelete user by login\n" @@ -252,7 +252,8 @@ void dap_chain_net_srv_vpn_cdb_auth_after(enc_http_delegate_t* a_delegate, const { #ifndef __ANDROID__ dap_enc_key_t *l_client_key; - log_it( L_DEBUG, "Authorized, now need to create conditioned transaction if not present"); + log_it( L_DEBUG, "Authorized, now need to create conditioned transaction if not present key_len=%d", dap_strlen( a_pkey_b64)); + //log_it( L_DEBUG, "Authorized, now need to create conditioned transaction if not present key_len=%d a_pkey_b64='%s'", dap_strlen( a_pkey_b64), a_pkey_b64); { size_t l_pkey_b64_length = dap_strlen( a_pkey_b64); byte_t *l_pkey_raw = DAP_NEW_Z_SIZE(byte_t,l_pkey_b64_length); @@ -260,9 +261,12 @@ void dap_chain_net_srv_vpn_cdb_auth_after(enc_http_delegate_t* a_delegate, const size_t l_pkey_raw_size = dap_enc_base64_decode(a_pkey_b64, l_pkey_b64_length, l_pkey_raw, DAP_ENC_DATA_TYPE_B64_URLSAFE); char *l_pkey_gdb_group= dap_strdup_printf( "%s.pkey", DAP_CHAIN_NET_SRV_VPN_CDB_GDB_PREFIX); - log_it(L_DEBUG, "Pkey group %s", l_pkey_gdb_group); + log_it(L_DEBUG, "Pkey group '%s'", l_pkey_gdb_group); dap_chain_global_db_gr_set( dap_strdup(a_login), l_pkey_raw, l_pkey_raw_size, l_pkey_gdb_group); - l_client_key = dap_enc_key_deserealize(l_pkey_raw, l_pkey_raw_size); + + l_client_key = dap_enc_key_new(DAP_ENC_KEY_TYPE_SIG_TESLA); + int l_res = dap_enc_key_deserealize_priv_key(l_client_key, l_pkey_raw, l_pkey_raw_size); + log_it(L_DEBUG, "dap_enc_key_deserealize_priv_key='%d'", l_res); DAP_DELETE(l_pkey_gdb_group); } diff --git a/dap_chain_net_srv_vpn_cdb_auth.c b/dap_chain_net_srv_vpn_cdb_auth.c index b155e0aaa69e6e214cc5c86830b83bb4379f6f86..b70f6127098f3b0a9e6d18209c7f5c8a802a6d15 100644 --- a/dap_chain_net_srv_vpn_cdb_auth.c +++ b/dap_chain_net_srv_vpn_cdb_auth.c @@ -183,8 +183,7 @@ static int s_input_validation(const char * str) static const char *nospecial="0123456789" "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - ".=@?_!#$%"; - + ".=@?_!#$%-"; while(*str) // Loop until (*url) == 0. (*url) is about equivalent to url[0]. { // Can we find the character at *url in the string 'nospecial'? @@ -478,12 +477,14 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) }else if(strcmp(a_delegate->in_query,"login")==0 ){ char l_login[128]={0}; char l_password[256]={0}; - char l_pkey[4096]={0}; + char l_pkey[6001]={0};//char l_pkey[4096]={0}; char l_domain[64], l_domain2[64]; - if( sscanf(a_delegate->request_str,"%127s %255s %4095s ",l_login,l_password,l_pkey) >=3 || - sscanf(a_delegate->request_str,"%127s %255s %63s %4095s %63s",l_login,l_password,l_domain, l_pkey, l_domain2) >=4 ){ + //log_it(L_DEBUG, "request_size=%d request_str='%s'\n",a_delegate->request_size, a_delegate->request_str); + + if( sscanf(a_delegate->request_str,"%127s %255s %63s %6000s %63s",l_login,l_password,l_domain, l_pkey, l_domain2) >=4 || + sscanf(a_delegate->request_str,"%127s %255s %6000s ",l_login,l_password,l_pkey) >=3){ log_it(L_INFO, "Trying to login with username '%s'",l_login); if(s_input_validation(l_login)==0){ @@ -534,7 +535,7 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) enc_http_reply_f(a_delegate,"</auth_info>"); log_it(L_INFO, "Login: Successfuly logined user %s",l_login); *l_return_code = Http_Status_OK; - + //log_it(L_DEBUG, "response_size='%d'",a_delegate->response_size); DAP_DELETE(l_first_name); DAP_DELETE(l_last_name); DAP_DELETE(l_email);