본문 바로가기

Management/openfire

[ openfire ] 친구초대 버그 수정.

openfire 서버에서 자기 자신을 초대하는 버그(?)가 있어 수정을 해야 합니다.

문제) 메신져 클라이언트에서 자기 자신을 초대(?) 웅? 왜?

그래서 다음과 같이 수정하였습니다.

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);
                        }
                    }
                }