]> granicus.if.org Git - ejabberd/commitdiff
Make auto generated resources shorter
authorPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 16 Mar 2016 10:30:35 +0000 (11:30 +0100)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 16 Mar 2016 10:30:45 +0000 (11:30 +0100)
src/ejabberd_c2s.erl

index 97b759161fe1bc3dfe3a6829fd92dc89046b9ff2..a5802a5b3eb0c974d765cc6664b6889837cfaeb7 100644 (file)
@@ -999,7 +999,7 @@ resource_conflict_action(U, S, R) ->
       acceptnew -> {accept_resource, R};
       closenew -> closenew;
       setresource ->
-         Rnew = iolist_to_binary([randoms:get_string(),randoms:get_string(),randoms:get_string()]),
+         Rnew = new_uniq_id(),
          {accept_resource, Rnew}
     end.
 
@@ -1026,8 +1026,7 @@ wait_for_bind({xmlstreamelement, El}, StateData) ->
                              [{elem, <<"resource">>}, cdata]),
          R = case jid:resourceprep(R1) of
                error -> error;
-               <<"">> ->
-                      iolist_to_binary([randoms:get_string(),randoms:get_string(),randoms:get_string()]);
+               <<"">> -> new_uniq_id();
                Resource -> Resource
              end,
          case R of
@@ -1913,6 +1912,10 @@ send_trailer(StateData) ->
 
 new_id() -> randoms:get_string().
 
+new_uniq_id() ->
+    iolist_to_binary([randoms:get_string(),
+                     jlib:integer_to_binary(p1_time_compat:unique_integer(positive))]).
+
 is_auth_packet(El) ->
     case jlib:iq_query_info(El) of
        #iq{id = ID, type = Type, xmlns = ?NS_AUTH, sub_el = SubEl} ->