Fixed 3 crashes in gateway mode

This commit is contained in:
HanzZ 2011-07-12 21:18:56 +02:00
parent ecbfbd5b50
commit 751eaaaf32
2 changed files with 9 additions and 6 deletions

View file

@ -151,6 +151,9 @@ void RosterManager::sendRIE() {
Swift::RosterItemExchangePayload::ref payload = Swift::RosterItemExchangePayload::ref(new Swift::RosterItemExchangePayload());
for (std::map<std::string, Buddy *>::const_iterator it = m_buddies.begin(); it != m_buddies.end(); it++) {
Buddy *buddy = (*it).second;
if (!buddy) {
continue;
}
Swift::RosterItemExchangePayload::Item item;
item.setJID(buddy->getJID().toBare());
item.setName(buddy->getAlias());
@ -217,7 +220,7 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
}
else {
Swift::Presence::ref response = Swift::Presence::create();
Swift::Presence::ref presence;
Swift::Presence::ref currentPresence;
response->setTo(presence->getFrom());
response->setFrom(presence->getTo());
@ -227,10 +230,10 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
// buddy is already there, so nothing to do, just answer
case Swift::Presence::Subscribe:
response->setType(Swift::Presence::Subscribed);
presence = buddy->generatePresenceStanza(255);
if (presence) {
presence->setTo(presence->getFrom());
m_component->getStanzaChannel()->sendPresence(presence);
currentPresence = buddy->generatePresenceStanza(255);
if (currentPresence) {
currentPresence->setTo(presence->getFrom());
m_component->getStanzaChannel()->sendPresence(currentPresence);
}
break;
// remove buddy

View file

@ -159,7 +159,7 @@ void Component::setBuddyFeatures(std::list<std::string> &features) {
}
void Component::start() {
if (m_component) {
if (m_component && !m_component->isAvailable()) {
LOG4CXX_INFO(logger, "Connecting XMPP server " << CONFIG_STRING(m_config, "service.server") << " port " << CONFIG_INT(m_config, "service.port"));
m_reconnectCount++;
m_component->connect(CONFIG_STRING(m_config, "service.server"), CONFIG_INT(m_config, "service.port"));