24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-14 22:00:16 +02:00

* src/ejabberd_s2s.erl: Added remove_connection/3

* src/ejabberd_s2s_out.erl: Bugfix: remove only own s2s record

SVN Revision: 812
This commit is contained in:
Alexey Shchepin 2007-07-15 07:28:47 +00:00
parent 907878081d
commit 2810c2b300
3 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2007-07-15 Alexey Shchepin <alexey@sevcom.net>
* src/ejabberd_s2s.erl: Added remove_connection/3
* src/ejabberd_s2s_out.erl: Bugfix: remove only own s2s record
2007-07-11 Alexey Shchepin <alexey@sevcom.net> 2007-07-11 Alexey Shchepin <alexey@sevcom.net>
* src/ejabberd_s2s_out.erl: Bounce packets after unregistering s2s * src/ejabberd_s2s_out.erl: Bounce packets after unregistering s2s

View File

@ -19,6 +19,7 @@
get_key/1, get_key/1,
try_register/1, try_register/1,
remove_connection/1, remove_connection/1,
remove_connection/3,
dirty_get_connections/0, dirty_get_connections/0,
ctl_process/2 ctl_process/2
]). ]).
@ -59,6 +60,14 @@ remove_connection(FromTo) ->
end, end,
mnesia:transaction(F). mnesia:transaction(F).
remove_connection(FromTo, Pid, Key) ->
F = fun() ->
mnesia:delete_object(#s2s{fromto = FromTo,
pid = Pid,
key = Key})
end,
mnesia:transaction(F).
have_connection(FromTo) -> have_connection(FromTo) ->
case catch mnesia:dirty_read(s2s, FromTo) of case catch mnesia:dirty_read(s2s, FromTo) of
[_] -> [_] ->

View File

@ -656,8 +656,8 @@ terminate(Reason, StateName, StateData) ->
false -> false ->
ok; ok;
Key -> Key ->
ejabberd_s2s:remove_connection({StateData#state.myname, ejabberd_s2s:remove_connection(
StateData#state.server}) {StateData#state.myname, StateData#state.server}, self(), Key)
end, end,
bounce_queue(StateData#state.queue, ?ERR_REMOTE_SERVER_NOT_FOUND), bounce_queue(StateData#state.queue, ?ERR_REMOTE_SERVER_NOT_FOUND),
case StateData#state.socket of case StateData#state.socket of