Merge branch 'master' of https://github.com/hanzz/libtransport
This commit is contained in:
commit
794b2dbaa0
2 changed files with 17 additions and 8 deletions
|
@ -211,6 +211,7 @@ int main(int argc, char **argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
if (!CONFIG_STRING(&config, "service.group").empty() ||!CONFIG_STRING(&config, "service.user").empty() ) {
|
||||
struct group *gr;
|
||||
if ((gr = getgrnam(CONFIG_STRING(&config, "service.group").c_str())) == NULL) {
|
||||
|
@ -225,7 +226,6 @@ int main(int argc, char **argv)
|
|||
chown(CONFIG_STRING(&config, "service.working_dir").c_str(), pw->pw_uid, gr->gr_gid);
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
if (!no_daemon) {
|
||||
// daemonize
|
||||
daemonize(CONFIG_STRING(&config, "service.working_dir").c_str(), CONFIG_STRING(&config, "service.pidfile").c_str());
|
||||
|
@ -260,7 +260,7 @@ int main(int argc, char **argv)
|
|||
std::string dir;
|
||||
BOOST_FOREACH(const log4cxx::LogString &prop, p.propertyNames()) {
|
||||
if (boost::ends_with(prop, ".File")) {
|
||||
dir = p.get(prop);
|
||||
log4cxx::helpers::Transcoder::encode(p.get(prop), dir);
|
||||
boost::replace_all(dir, "${jid}", jid);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -116,9 +116,18 @@ void RosterManager::sendBuddyRosterPush(Buddy *buddy) {
|
|||
|
||||
payload->addItem(item);
|
||||
|
||||
std::vector<Swift::Presence::ref> presences = m_component->getPresenceOracle()->getAllPresence(m_user->getJID().toBare());
|
||||
BOOST_FOREACH(Swift::Presence::ref presence, presences) {
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, presence->getFrom(), m_component->getIQRouter());
|
||||
// In server mode we have to send pushes to all resources, but in gateway-mode we send it only to bare JID
|
||||
if (m_component->inServerMode()) {
|
||||
std::vector<Swift::Presence::ref> presences = m_component->getPresenceOracle()->getAllPresence(m_user->getJID().toBare());
|
||||
BOOST_FOREACH(Swift::Presence::ref presence, presences) {
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, presence->getFrom(), m_component->getIQRouter());
|
||||
request->onResponse.connect(boost::bind(&RosterManager::handleBuddyRosterPushResponse, this, _1, request, buddy->getName()));
|
||||
request->send();
|
||||
m_requests.push_back(request);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, m_user->getJID().toBare(), m_component->getIQRouter());
|
||||
request->onResponse.connect(boost::bind(&RosterManager::handleBuddyRosterPushResponse, this, _1, request, buddy->getName()));
|
||||
request->send();
|
||||
m_requests.push_back(request);
|
||||
|
@ -332,8 +341,8 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
|
|||
else {
|
||||
Swift::Presence::ref response = Swift::Presence::create();
|
||||
Swift::Presence::ref currentPresence;
|
||||
response->setTo(presence->getFrom());
|
||||
response->setFrom(presence->getTo());
|
||||
response->setTo(presence->getFrom().toBare());
|
||||
response->setFrom(presence->getTo().toBare().toString() + "/bot");
|
||||
|
||||
Buddy *buddy = getBuddy(Buddy::JIDToLegacyName(presence->getTo()));
|
||||
if (buddy) {
|
||||
|
@ -355,7 +364,7 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
|
|||
break;
|
||||
// just send response
|
||||
case Swift::Presence::Unsubscribed:
|
||||
// response->setType(Swift::Presence::Unsubscribe);
|
||||
response->setType(Swift::Presence::Unsubscribe);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
|
|
Loading…
Add table
Reference in a new issue