diff --git a/include/mod_bosh.hrl b/include/mod_bosh.hrl index e8f4543de9b..438df5d4129 100644 --- a/include/mod_bosh.hrl +++ b/include/mod_bosh.hrl @@ -5,5 +5,5 @@ -record(bosh_socket, {sid :: mod_bosh:sid(), pid :: pid(), - peer :: {inet:ip_address(), inet:port_number()}, + peer :: mongoose_transport:peer(), peercert :: undefined | binary()}). diff --git a/src/c2s/mongoose_c2s.erl b/src/c2s/mongoose_c2s.erl index fa9dad7e67d..329b70d91e6 100644 --- a/src/c2s/mongoose_c2s.erl +++ b/src/c2s/mongoose_c2s.erl @@ -56,6 +56,9 @@ max_stanza_size := non_neg_integer(), backwards_compatible_session := boolean(), c2s_state_timeout := non_neg_integer(), + port := inet:port_number(), + ip_tuple := inet:ip_address(), + proto := tcp, term() => term()}. -export_type([packet/0, data/0, state/0, state/1, listener_opts/0]). diff --git a/src/mod_bosh_socket.erl b/src/mod_bosh_socket.erl index 642b491cc74..c4a21618cfa 100644 --- a/src/mod_bosh_socket.erl +++ b/src/mod_bosh_socket.erl @@ -104,14 +104,13 @@ binary() | undefined) -> {'error', _} | {'ok', 'undefined' | pid()} | {'ok', 'undefined' | pid(), _}. start(HostType, Sid, Peer, PeerCert) -> - supervisor:start_child(?BOSH_SOCKET_SUP, [HostType, Sid, Peer, PeerCert]). - + supervisor:start_child(?BOSH_SOCKET_SUP, [{HostType, Sid, Peer, PeerCert}]). -spec start_link(mongooseim:host_type(), mod_bosh:sid(), mongoose_transport:peer(), binary() | undefined) -> 'ignore' | {'error', _} | {'ok', pid()}. start_link(HostType, Sid, Peer, PeerCert) -> - gen_fsm_compat:start_link(?MODULE, [HostType, Sid, Peer, PeerCert], []). + gen_fsm_compat:start_link(?MODULE, [{HostType, Sid, Peer, PeerCert}], []). -spec start_supervisor() -> {ok, pid()} | {error, any()}. start_supervisor() -> @@ -193,7 +192,9 @@ get_cached_responses(Pid) -> %% {stop, StopReason} %% @end %%-------------------------------------------------------------------- -init([HostType, Sid, {IPTuple, Port} = Peer, PeerCert]) -> +-spec init([{mongooseim:host_type(), mod_bosh:sid(), mongoose_transport:peer(), undefined | binary()}]) -> + {ok, accumulate, state()}. +init([{HostType, Sid, Peer = {IPTuple, Port}, PeerCert}]) -> BoshSocket = #bosh_socket{sid = Sid, pid = self(), peer = Peer, peercert = PeerCert}, C2SOpts = #{access => all, shaper => none,