From 7ebb858551e626555bf52ec9f97f9f6de06f0081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Wed, 2 Mar 2011 22:56:23 +0100 Subject: Sluift: Added subscription confirm/cancel. diff --git a/Sluift/sluift.cpp b/Sluift/sluift.cpp index 98922cb..5d24276 100644 --- a/Sluift/sluift.cpp +++ b/Sluift/sluift.cpp @@ -253,6 +253,7 @@ static int sluift_client_get_roster(lua_State *L) { } Lua::Value groups(std::vector(item.getGroups().begin(), item.getGroups().end())); Lua::Table itemTable = boost::assign::map_list_of + ("jid", boost::make_shared(item.getJID().toString())) ("name", boost::make_shared(item.getName())) ("subscription", boost::make_shared(subscription)) ("groups", boost::make_shared(std::vector(item.getGroups().begin(), item.getGroups().end()))); @@ -504,6 +505,32 @@ static int sluift_client_remove_contact(lua_State* L) { } } +static int sluift_client_confirm_subscription(lua_State* L) { + try { + eventLoop.runOnce(); + SluiftClient* client = getClient(L); + JID jid(luaL_checkstring(L, 2)); + client->getClient()->getSubscriptionManager()->confirmSubscription(jid); + return 0; + } + catch (const SluiftException& e) { + return luaL_error(L, e.getReason().c_str()); + } +} + +static int sluift_client_cancel_subscription(lua_State* L) { + try { + eventLoop.runOnce(); + SluiftClient* client = getClient(L); + JID jid(luaL_checkstring(L, 2)); + client->getClient()->getSubscriptionManager()->cancelSubscription(jid); + return 0; + } + catch (const SluiftException& e) { + return luaL_error(L, e.getReason().c_str()); + } +} + static int sluift_client_gc (lua_State *L) { SluiftClient* client = getClient(L); delete client; @@ -529,6 +556,8 @@ static const luaL_reg sluift_client_functions[] = { {"get_next_event", sluift_client_get_next_event}, {"add_contact", sluift_client_add_contact}, {"remove_contact", sluift_client_remove_contact}, + {"confirm_subscription", sluift_client_confirm_subscription}, + {"cancel_subscription", sluift_client_cancel_subscription}, {"__gc", sluift_client_gc}, {NULL, NULL} }; -- cgit v0.10.2-6-g49f6