local _ENV = nil;
+local save_roster; -- forward declaration
+
local function add_to_roster(session, jid, item)
if session.roster then
local old_item = session.roster[jid];
return roster, err;
end
-local function save_roster(username, host, roster)
+function save_roster(username, host, roster)
if not um_user_exists(username, host) then
log("debug", "not saving roster for %s@%s: the user doesn't exist", username, host);
return nil;
end
end
+local is_contact_pending_out -- forward declaration
+
local function process_inbound_subscription_cancellation(username, host, jid)
local roster = load_roster(username, host);
local item = roster[jid];
end
end
+local is_contact_pending_in -- forward declaration
+
local function process_inbound_unsubscribe(username, host, jid)
local roster = load_roster(username, host);
local item = roster[jid];
return item and (item.subscription == "from" or item.subscription == "both"), err;
end
-local function is_contact_pending_in(username, host, jid)
+function is_contact_pending_in(username, host, jid)
local roster = load_roster(username, host);
return roster[false].pending[jid];
end
roster[false].pending[jid] = true;
return save_roster(username, host, roster);
end
-local function is_contact_pending_out(username, host, jid)
+function is_contact_pending_out(username, host, jid)
local roster = load_roster(username, host);
local item = roster[jid];
return item and item.ask;