From 3e984e93df6673c7f3750e220b0cb2364c2f3279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Fri, 14 Aug 2009 10:15:13 +0200 Subject: Re-enable Limber. diff --git a/Limber/Makefile.inc b/Limber/Makefile.inc deleted file mode 100644 index fe0e7d2..0000000 --- a/Limber/Makefile.inc +++ /dev/null @@ -1,15 +0,0 @@ -LIMBER_TARGET = Limber/limber -LIMBER_SOURCES = \ - Limber/main.cpp -LIMBER_OBJECTS = \ - $(LIMBER_SOURCES:.cpp=.o) \ - -.PHONY: limber -limber: $(LIMBER_TARGET) - -$(LIMBER_TARGET): $(SWIFTEN_TARGET) $(LIMBER_OBJECTS) - $(QUIET_LINK)$(CXX) -o $(LIMBER_TARGET) $(LIMBER_OBJECTS) $(LDFLAGS) $(SWIFTEN_TARGET) $(LIBS) - -#TARGETS += $(LIMBER_TARGET) -DEPS += \ - $(LIMBER_SOURCES:.cpp=.dep) \ diff --git a/Limber/SConscript b/Limber/SConscript new file mode 100644 index 0000000..77e0c50 --- /dev/null +++ b/Limber/SConscript @@ -0,0 +1,10 @@ +Import("env") + +myenv = env.Clone() +myenv.MergeFlags(env["SWIFTEN_FLAGS"]) +myenv.MergeFlags(env["LIBIDN_FLAGS"]) +myenv.MergeFlags(env["EXPAT_FLAGS"]) +myenv.MergeFlags(env["OPENSSL_FLAGS"]) +myenv.MergeFlags(env["BOOST_FLAGS"]) + +myenv.Program("limber", ["main.cpp"]) diff --git a/Limber/main.cpp b/Limber/main.cpp index 2a2197d..686df3c 100644 --- a/Limber/main.cpp +++ b/Limber/main.cpp @@ -33,37 +33,41 @@ class Server { void handleNewConnection(boost::shared_ptr c) { boost::shared_ptr session(new ServerFromClientSession(idGenerator_.generateID(), c, &payloadParserFactories_, &payloadSerializers_, userRegistry_)); serverFromClientSessions_.push_back(session); - session->onStanzaReceived.connect(boost::bind(&Server::handleStanzaReceived, this, _1, session)); + session->onElementReceived.connect(boost::bind(&Server::handleElementReceived, this, _1, session)); session->onSessionFinished.connect(boost::bind(&Server::handleSessionFinished, this, session)); - session->start(); + session->startSession(); } void handleSessionFinished(boost::shared_ptr session) { serverFromClientSessions_.erase(std::remove(serverFromClientSessions_.begin(), serverFromClientSessions_.end(), session), serverFromClientSessions_.end()); } - void handleStanzaReceived(boost::shared_ptr stanza, boost::shared_ptr session) { - stanza->setFrom(session->getJID()); + void handleElementReceived(boost::shared_ptr element, boost::shared_ptr session) { + boost::shared_ptr stanza(boost::dynamic_pointer_cast(element)); + if (!stanza) { + return; + } + stanza->setFrom(session->getRemoteJID()); if (!stanza->getTo().isValid()) { - stanza->setTo(JID(session->getDomain())); + stanza->setTo(JID(session->getLocalJID())); } - if (!stanza->getTo().isValid() || stanza->getTo() == session->getDomain() || stanza->getTo() == session->getJID().toBare()) { + if (!stanza->getTo().isValid() || stanza->getTo() == session->getLocalJID() || stanza->getTo() == session->getRemoteJID().toBare()) { if (boost::shared_ptr iq = boost::dynamic_pointer_cast(stanza)) { if (iq->getPayload()) { - session->sendStanza(IQ::createResult(iq->getFrom(), iq->getID(), boost::shared_ptr(new RosterPayload()))); + session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), boost::shared_ptr(new RosterPayload()))); } if (iq->getPayload()) { if (iq->getType() == IQ::Get) { boost::shared_ptr vcard(new VCard()); vcard->setNickname(iq->getFrom().getNode()); - session->sendStanza(IQ::createResult(iq->getFrom(), iq->getID(), vcard)); + session->sendElement(IQ::createResult(iq->getFrom(), iq->getID(), vcard)); } else { - session->sendStanza(IQ::createError(iq->getFrom(), iq->getID(), Error::Forbidden, Error::Cancel)); + session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), Error::Forbidden, Error::Cancel)); } } else { - session->sendStanza(IQ::createError(iq->getFrom(), iq->getID(), Error::FeatureNotImplemented, Error::Cancel)); + session->sendElement(IQ::createError(iq->getFrom(), iq->getID(), Error::FeatureNotImplemented, Error::Cancel)); } } } -- cgit v0.10.2-6-g49f6