aboutsummaryrefslogtreecommitdiff
path: root/src/mod_roster.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_roster.erl')
-rw-r--r--src/mod_roster.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mod_roster.erl b/src/mod_roster.erl
index 2d0e8882f..6f3234e62 100644
--- a/src/mod_roster.erl
+++ b/src/mod_roster.erl
@@ -397,7 +397,8 @@ process_subscription(Direction, User, JID1, Type) ->
%% NewState = none | {NewSubscription, NewPending}
in_state_change(none, none, subscribe) -> {none, in};
-in_state_change(none, none, subscribed) -> none;
+in_state_change(none, none, subscribed) -> {to, none}; % Workaround for gateways
+%in_state_change(none, none, subscribed) -> none;
in_state_change(none, none, unsubscribe) -> none;
in_state_change(none, none, unsubscribed) -> none;
in_state_change(none, out, subscribe) -> {none, both};
@@ -405,7 +406,8 @@ in_state_change(none, out, subscribed) -> {to, none};
in_state_change(none, out, unsubscribe) -> none;
in_state_change(none, out, unsubscribed) -> {none, none};
in_state_change(none, in, subscribe) -> none;
-in_state_change(none, in, subscribed) -> none;
+in_state_change(none, in, subscribed) -> {to, in}; % Workaround for gateways
+%in_state_change(none, in, subscribed) -> none;
in_state_change(none, in, unsubscribe) -> {none, none};
in_state_change(none, in, unsubscribed) -> none;
in_state_change(none, both, subscribe) -> none;