diff --git a/apps/roster/src/protocol/roster_auth.erl b/apps/roster/src/protocol/roster_auth.erl index 424d0ea141550beec0e2bca41091deb062c451bb..9a0cb05ddb270107c04d00aaf72684a1e7be2224 100644 --- a/apps/roster/src/protocol/roster_auth.erl +++ b/apps/roster/src/protocol/roster_auth.erl @@ -318,7 +318,7 @@ proc({sms, Phone, SmsCode}, #handler{} = H) -> Half = size(SmsCode) - round(size(SmsCode) / 2), [Codes1, Codes2] = [binary:part(SmsCode, S, Half) || S <- [0, Half]], ClientSms = <<"Welcome to Nynja! Your verification code: ", Codes1/binary, " ", Codes2/binary>>, - telesign_api:send_sms(Phone, ClientSms, fun(_) -> ok end), + spawn(fun () -> telesign_api:send_sms(Phone, ClientSms, fun(_) -> ok end) end), {reply, [], H}; proc({voice, Phone, SmsCode, Lang}, #handler{} = H) -> diff --git a/apps/roster/src/protocol/roster_presence.erl b/apps/roster/src/protocol/roster_presence.erl index 1c3c60048e786fb5cb1ec2bf2832537b4a58b8e4..604de499ed95106d5dcf6fd1de6f50513f74192f 100644 --- a/apps/roster/src/protocol/roster_presence.erl +++ b/apps/roster/src/protocol/roster_presence.erl @@ -22,12 +22,13 @@ on_connect(Phone, ClientId, C, Ver) -> case send_presence(online, Phone, C, ClientId) of {error, profile_not_found} -> roster:info(?MODULE, "~p:~p:Connect:ProfileNotFound", [Phone, ClientId]), roster:delete_sessions(Phone); - #'Profile'{} = P when Ver==?VERSION -> ok; + #'Profile'{} = P when Ver==?VERSION -> + ok; #'Profile'{} = P-> roster:send_profile(P#'Profile'{settings = amazon_settings(P), status = init}, [], 0, ClientId, C) end catch Err:Rea -> - n2o:error(?MODULE, "Catch:~p~n", [n2o:stack_trace(Err, Rea)]) + roster:info(?MODULE, "Catch:~p", [n2o:stack_trace(Err, Rea)]) end. on_disconnect(#'Auth'{type = logout, phone = Phone, client_id = ClientId, user_id = PhoneId}, C) -> @@ -56,8 +57,9 @@ send_presence(Status, Phone, C, ClientId) when Status == online; Status == offli [roster:Send(C, PhoneId, #'Contact'{phone_id = PhoneId, presence = Status, update = Now, status = internal}) || Send <- [send_muc, send_ac]]; #error{} -> skip - end || AccId <- Rosters], P2; - _ -> P end; + end || AccId <- Rosters], + P2; + _ -> roster:info(?MODULE, "~p:~p:~p",[Phone, ClientId,P]), P end; _ -> {error, profile_not_found} end. diff --git a/apps/roster/src/rest/rest_metric.erl b/apps/roster/src/rest/rest_metric.erl index efd80c2948ba9a63cf7aa08e5dbebf756ec22ba1..96058662c4d1d54a77a1e58dee2795ee0e637c12 100644 --- a/apps/roster/src/rest/rest_metric.erl +++ b/apps/roster/src/rest/rest_metric.erl @@ -11,7 +11,7 @@ handle_request('GET', _, Req) -> prometheus_gauge:set(?METRIC_CHATS_TOTAL, [?METRIC_LABEL_P2P_CHAT], roster_db:p2p_stats()), prometheus_gauge:set(?METRIC_CHATS_TOTAL, [?METRIC_LABEL_GROUP_CHAT], roster_db:room_stats()), [prometheus_gauge:set(?METRIC_USERS_PER_COUNTRY, [Country], Value) || {Country, Value} <- roster_db:country_user_stats()], - [prometheus_gauge:set(?METRIC_USERS_PER_COUNTRY_ONLINE, [Country], Value) || {Country, Value} <- roster_db:country_user_stats(online)], +% [prometheus_gauge:set(?METRIC_USERS_PER_COUNTRY_ONLINE, [Country], Value) || {Country, Value} <- roster_db:country_user_stats(online)], [prometheus_gauge:set(?METRIC_MSGS_BY_TYPE_NMBR, [Mime], Value) || {Mime, Value} <- roster_db:msg_stats()], [prometheus_gauge:set(?METRIC_SESSIONS_PER_COUNTRY_ONLINE, [Country], Value) || {Country, Value} <- roster_db:country_session_stats(online)], rest_response_helper:response(Req, 200, prometheus_text_format:format(), "text/plain"); diff --git a/apps/roster/src/roster.erl b/apps/roster/src/roster.erl index 1e61740f2d0ee16728ab5ce65944eae9bfd9d3d7..5bb2a3e65370a9f777906fdf6844362bfd11f8fd 100644 --- a/apps/roster/src/roster.erl +++ b/apps/roster/src/roster.erl @@ -152,10 +152,12 @@ list_rosters(Phone, Fun) -> {ok, #'Profile'{rosters = Rosters}} -> ?MODULE:Fun(Phone, Rosters) end. -send_profile(#'Profile'{rosters = []}, _N, _LastSync, _ClientId, _C) -> ok; +send_profile(#'Profile'{rosters = []}, _N, _LastSync, _ClientId, _C) -> + ok; send_profile(#'Profile'{rosters = [RosterId|TRosterIds], phone = Phone, status = Status} = P, N, LastSync, ClientId, C) -> case kvs:get('Roster', RosterId) of - {error, _} -> roster:error(?MODULE, "roster ~p not found in profile ~p", [RosterId, Phone]); + {error, _} -> + roster:info(?MODULE, "roster ~p not found in profile ~p", [RosterId, Phone]); {ok, #'Roster'{} = R} -> Rosters = split_roster(R, N, LastSync, []), [roster:send_action(C, ClientId, P#'Profile'{rosters = [Roster]}) || Roster<-Rosters], @@ -1012,7 +1014,14 @@ feed(#'Contact'{phone_id = P} , PhoneId) -> feed_key(#p2p{from = feed(#'Star'{message = #'Message'{feed_id = Feed}}, _) -> Feed. last_upd(#'Room'{id = Room}) -> - {ok, #'Room'{update = Update}} = kvs:get('Room', Room), Update; %% get update field from Room table! + case kvs:get('Room', Room) of + {ok, #'Room'{update = Update}} -> Update; + {error, _} -> 0 + end; %% get update field from Room table! + +%last_upd(#'Room'{id = Room}) -> +% {ok, #'Room'{update = Update}} = kvs:get('Room', Room), Update; %% get update field from Room table! + last_upd(#'Contact'{phone_id = PhoneId, update = Update}) -> case roster:is_online2(phone(PhoneId)) of {online, _} -> []; _-> Update end; last_upd(#'Star'{message = #'Message'{created = Update}}) -> Update. diff --git a/apps/roster/src/test/roster_test.erl b/apps/roster/src/test/roster_test.erl index 018c30ccab6737887d294d778f5d5e752e6e04f5..5ccd44fc64d14eaf6d4e1cf03fbee1bd8a176e98 100644 --- a/apps/roster/src/test/roster_test.erl +++ b/apps/roster/src/test/roster_test.erl @@ -1462,8 +1462,8 @@ suite() -> muc_remove_test(), test_call_room(), pagination_test(), - event_securty_test(), - test_messages() + event_securty_test() +% test_messages() ]. check() -> case lists:all(fun(X) -> X == ok end, suite()) of @@ -1507,7 +1507,7 @@ bpe() -> PhoneA = <<"773">>, Phones = [<<"5333">>, <<"377">>], [kvs:put(#'Whitelist'{phone = Phone, created = roster:now_msec()}) || Phone <- Phones ++ [PhoneA]], - [roster:purge_user(Phone) || Phone <- [PhoneA | Phones]], + [ begin try roster:purge_user(Phone) catch _:_ -> skip end end || Phone <- [PhoneA | Phones]], [{B, BClientId, _}, {C, _, _}, {A, AClientId, _}] = [begin C = roster_client:gen_name_reg(Phone), {ClientId, Token} = roster_client:reg_fake_user(Phone),