diff --git a/modules/service/vpn/dap_chain_net_srv_vpn_cdb_auth.c b/modules/service/vpn/dap_chain_net_srv_vpn_cdb_auth.c index 931f437f7fb8dff998464a58ffe83f909dd7780e..d68c5d7a24d66592e64026372ce1106026d3c6f8 100644 --- a/modules/service/vpn/dap_chain_net_srv_vpn_cdb_auth.c +++ b/modules/service/vpn/dap_chain_net_srv_vpn_cdb_auth.c @@ -126,7 +126,7 @@ static int run_hook(char *a_hook_path, char *a_format, ...) return -1; char *l_params = NULL; va_list l_args; - va_start(l_args, a_hook_path); + va_start(l_args, a_format); l_params = dap_strdup_vprintf(a_format, l_args); va_end(l_args); char *l_cmd = dap_strdup_printf("%s %s", a_hook_path, l_params); @@ -188,7 +188,7 @@ int dap_chain_net_srv_vpn_cdb_auth_init (const char * a_domain, const char * a_m s_hook_serial_delete = register_hook("hook_serial_delete"); s_hook_serial_deactivate = register_hook("hook_serial_deactivate"); //run_hook(s_hook_serial_update, "serial=%s active_days=%lld", l_serial.header.serial, l_active_days); - + return 0; } /** @@ -596,14 +596,14 @@ int dap_chain_net_srv_vpn_cdb_auth_cli_cmd_serial(const char *a_serial_str, int const char *l_group; dap_serial_key_t *l_serial_key = dap_chain_net_srv_vpn_cdb_auth_get_serial_param(l_serial_number_str, &l_group); if(l_serial_key){ - l_serial_key->header.expired = l_active_days; + l_serial_key->header.expired = l_serial_key->header.activated + l_active_days * 86400; // 24*3600 = days to sec; // save updated serial if(dap_chain_global_db_gr_set(dap_strdup(l_serial_key->header.serial), l_serial_key, dap_serial_key_len(l_serial_key), l_group)) { dap_chain_node_cli_set_reply_text(a_str_reply, "serial '%s' successfully updated", l_serial_key->header.serial); - DAP_DELETE(l_serial_key); // save gdb dap_chain_global_db_flush(); - run_hook(s_hook_serial_update, "serial=%s active_days=%lld", l_serial_key->header.serial, l_serial_key->header.activated ? "activated" : "inactive", l_active_days); + run_hook(s_hook_serial_update, "serial=%s status=%s active_days=%lld", l_serial_key->header.serial, l_serial_key->header.activated ? "activated" : "inactive", l_active_days); + DAP_DELETE(l_serial_key); return 0; } else{ @@ -698,6 +698,8 @@ int dap_chain_net_srv_vpn_cdb_auth_cli_cmd_serial(const char *a_serial_str, int if(dap_chain_global_db_gr_del(l_serial_key->header.serial, l_group)){ dap_chain_node_cli_set_reply_text(a_str_reply, "serial '%s' deleted", l_serial_key->header.serial); run_hook(s_hook_serial_delete, "serial=%s", l_serial_key->header.serial); + // save gdb + dap_chain_global_db_flush(); } else { dap_chain_node_cli_set_reply_text(a_str_reply, "serial '%s' not deleted", l_serial_key->header.serial); @@ -739,11 +741,16 @@ int dap_chain_net_srv_vpn_cdb_auth_cli_cmd_serial(const char *a_serial_str, int // save updated serial if(dap_chain_global_db_gr_set(dap_strdup(l_serial_key->header.serial), l_serial_key, dap_serial_key_len(l_serial_key), s_group_serials)) { dap_chain_global_db_gr_del(l_serial_key->header.serial, s_group_serials_activated); + dap_chain_node_cli_set_reply_text(a_str_reply, "serial '%s' deactivated successfully", l_serial_number_str); run_hook(s_hook_serial_deactivate, "serial=%s", l_serial_key->header.serial); l_ret = 0; // OK + // save gdb + dap_chain_global_db_flush(); } - else + else{ l_ret = -5; + dap_chain_node_cli_set_reply_text(a_str_reply, "serial '%s' not deactivated", l_serial_number_str); + } } } else { @@ -1105,9 +1112,9 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) } int l_login_result = dap_chain_net_srv_vpn_cdb_auth_check_login(l_login, l_password); - run_hook(s_hook_user_login, "login=%s pass=%s result=%d", l_login, l_password, l_login_result); switch (l_login_result) { case 0: { + run_hook(s_hook_user_login, "login=%s pass=%s result=true", l_login, l_password); size_t l_tmp_size; char * l_first_name = (char*) dap_chain_global_db_gr_get(l_login, &l_tmp_size, s_group_first_name); @@ -1156,10 +1163,12 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) } break; case -1: + run_hook(s_hook_user_login, "login=%s pass=%s result=false error=user_no_found", l_login, l_password); enc_http_reply_f(a_delegate, OP_CODE_NOT_FOUND_LOGIN_IN_DB); *l_return_code = Http_Status_OK; break; case -2: + run_hook(s_hook_user_login, "login=%s pass=%s result=false error=passwd_not_correct", l_login, l_password); enc_http_reply_f(a_delegate, OP_CODE_LOGIN_INCORRECT_PSWD); *l_return_code = Http_Status_OK; break; @@ -1168,6 +1177,7 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) *l_return_code = Http_Status_OK; break; case -4: + run_hook(s_hook_user_login, "login=%s pass=%s result=false error=expired", l_login, l_password); enc_http_reply_f(a_delegate, OP_CODE_SUBSCRIBE_EXPIRIED); *l_return_code = Http_Status_PaymentRequired; break; @@ -1211,9 +1221,9 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) } int l_login_result = dap_chain_net_srv_vpn_cdb_auth_check_serial(l_serial, l_pkey); log_it(L_INFO, "Check serial '%s' with code %d (Ok=0)", l_serial, l_login_result); - run_hook(s_hook_serial_login, "serial=%s result=%d", l_serial, l_login_result); switch (l_login_result) { case 0: { + run_hook(s_hook_serial_login, "serial=%s result=true", l_serial); size_t l_tmp_size; enc_http_reply_f(a_delegate, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n" @@ -1246,10 +1256,12 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) } break; case -1: + run_hook(s_hook_serial_login, "serial=%s result=false error=serial_no_found", l_serial); enc_http_reply_f(a_delegate, OP_CODE_NOT_FOUND_LOGIN_IN_DB); *l_return_code = Http_Status_OK; break; case -2: + run_hook(s_hook_serial_login, "serial=%s result=false error=other_device", l_serial); enc_http_reply_f(a_delegate, OP_CODE_LOGIN_INCORRECT_SIGN);// incorrect pkey *l_return_code = Http_Status_OK; break; @@ -1258,6 +1270,7 @@ static void s_http_enc_proc(enc_http_delegate_t *a_delegate, void * a_arg) *l_return_code = Http_Status_OK; break; case -4: + run_hook(s_hook_serial_login, "serial=%s result=false error=expired", l_serial); enc_http_reply_f(a_delegate, OP_CODE_SUBSCRIBE_EXPIRIED); *l_return_code = Http_Status_PaymentRequired; break; @@ -1409,18 +1422,20 @@ static void s_http_enc_proc_key(enc_http_delegate_t *a_delegate, void * a_arg) return; } int l_activate_result = dap_chain_net_srv_vpn_cdb_auth_activate_serial(l_serial_raw, l_serial, l_serial_sign, l_pkey); - run_hook(s_hook_serial_activate, "serial=%s result=%d", l_serial, l_activate_result); log_it(L_INFO, "Serial '%s' activated with code %d (Ok=0)", l_serial, l_activate_result); switch (l_activate_result) { case 0: + run_hook(s_hook_serial_activate, "serial=%s result=true", l_serial); enc_http_reply_f(a_delegate, OP_CODE_SERIAL_ACTIVED); *l_return_code = Http_Status_OK; break; case -1: + run_hook(s_hook_serial_activate, "serial=%s result=false error=serial_no_found", l_serial); enc_http_reply_f(a_delegate, OP_CODE_NOT_FOUND_LOGIN_IN_DB); *l_return_code = Http_Status_OK; break; case -2: + run_hook(s_hook_serial_activate, "serial=%s result=false error=sign_incorrect", l_serial); enc_http_reply_f(a_delegate, OP_CODE_LOGIN_INCORRECT_SIGN); *l_return_code = Http_Status_OK; break; @@ -1429,6 +1444,7 @@ static void s_http_enc_proc_key(enc_http_delegate_t *a_delegate, void * a_arg) *l_return_code = Http_Status_OK; break;*/ case -4: + run_hook(s_hook_serial_activate, "serial=%s result=false error=expired", l_serial); enc_http_reply_f(a_delegate, OP_CODE_SUBSCRIBE_EXPIRIED); *l_return_code = Http_Status_PaymentRequired; break;