Management/openfire
[ openfire ] 친구초대 버그 수정.
에블릿
2010. 11. 29. 13:35
openfire 서버에서 자기 자신을 초대하는 버그(?)가 있어 수정을 해야 합니다.
문제) 메신져 클라이언트에서 자기 자신을 초대(?) 웅? 왜?
그래서 다음과 같이 수정하였습니다.
IQRosterHandler.java
문제) 메신져 클라이언트에서 자기 자신을 초대(?) 웅? 왜?
그래서 다음과 같이 수정하였습니다.
IQRosterHandler.java
for (org.xmpp.packet.Roster.Item item : packet.getItems()) {
if (item.getSubscription() == org.xmpp.packet.Roster.Subscription.remove) {
removeItem(cachedRoster, packet.getFrom(), item);
} else {
/**
* 자기 자신을 초대 못하게 정의함.
*/
if (sender.getNode().equals(item.getJID().getNode())) {
Log.debug("IQRosterHandle : " + sender.getNode() + "Invite friends failed!");
return null;
}
if (cachedRoster.isRosterItem(item.getJID())) {
// existing item
RosterItem cachedItem = cachedRoster
.getRosterItem(item.getJID());
cachedItem.setAsCopyOf(item);
cachedRoster.updateRosterItem(cachedItem);
} else {
// new item
cachedRoster.createRosterItem(item);
}
}
}
if (item.getSubscription() == org.xmpp.packet.Roster.Subscription.remove) {
removeItem(cachedRoster, packet.getFrom(), item);
} else {
/**
* 자기 자신을 초대 못하게 정의함.
*/
if (sender.getNode().equals(item.getJID().getNode())) {
Log.debug("IQRosterHandle : " + sender.getNode() + "Invite friends failed!");
return null;
}
if (cachedRoster.isRosterItem(item.getJID())) {
// existing item
RosterItem cachedItem = cachedRoster
.getRosterItem(item.getJID());
cachedItem.setAsCopyOf(item);
cachedRoster.updateRosterItem(cachedItem);
} else {
// new item
cachedRoster.createRosterItem(item);
}
}
}