public PacketExtension parseExtension(XmlPullParser parser) throws XmlPullParserException, IOException, XMPPException { String hash = null; String version = null; String node = null; if (parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equalsIgnoreCase(EntityCapsManager.ELEMENT)) { hash = parser.getAttributeValue(null, "hash"); version = parser.getAttributeValue(null, "ver"); node = parser.getAttributeValue(null, "node"); } else { throw new XMPPException("Malformed Caps element"); } parser.next(); if (!(parser.getEventType() == XmlPullParser.END_TAG && parser.getName().equalsIgnoreCase(EntityCapsManager.ELEMENT))) { throw new XMPPException("Malformed nested Caps element"); } if (hash != null && version != null && node != null) { return new CapsExtension(node, version, hash); } else { throw new XMPPException("Caps elment with missing attributes"); } }
public PacketExtension parseExtension(XmlPullParser parser) throws XmlPullParserException, IOException, XMPPException { String hash = null; String version = null; String node = null; int depth = 0; while (true) { if (parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equalsIgnoreCase("c")) { hash = parser.getAttributeValue(null, "hash"); version = parser.getAttributeValue(null, "ver"); node = parser.getAttributeValue(null, "node"); } if (parser.getEventType() == XmlPullParser.END_TAG && parser.getName().equalsIgnoreCase("c")) { break; } else { parser.next(); } if (depth < MAX_DEPTH) { depth++; } else { throw new XMPPException("Malformed caps element"); } } if (hash != null && version != null && node != null) { return new CapsExtension(node, version, hash); } else { throw new XMPPException("Caps elment with missing attributes"); } }
public void processPacket(Packet packet) { CapsExtension ext = (CapsExtension) packet.getExtension( CapsExtension.NODE_NAME, CapsExtension.XMLNS); String nodeVer = ext.getNode() + "#" + ext.getVersion(); String user = packet.getFrom(); manager.addUserCapsNode(user, nodeVer); }
public void addPacketListener(Connection connection) { PacketFilter f = new AndFilter( new PacketTypeFilter(Presence.class), new PacketExtensionFilter(CapsExtension.NODE_NAME, CapsExtension.XMLNS)); connection.addPacketListener(new CapsPacketListener(this), f); }
public void processPacket(Packet packet) { CapsExtension ext = (CapsExtension) packet.getExtension(CapsExtension.NODE_NAME, CapsExtension.XMLNS); String nodeVer = ext.getNode() + "#" + ext.getVersion(); String user = packet.getFrom(); manager.addUserCapsNode(user, nodeVer); }
public void addPacketListener(Connection connection) { PacketFilter f = new AndFilter(new PacketTypeFilter(Presence.class), new PacketExtensionFilter(CapsExtension.NODE_NAME, CapsExtension.XMLNS)); connection.addPacketListener(new CapsPacketListener(this), f); }
public PacketExtension parseExtension(XmlPullParser parser) throws XmlPullParserException, IOException { // Original implementation by jonas // boolean done = false; // int startDepth = parser.getDepth(); // // String hash = parser.getAttributeValue(null, "hash"); // String node = parser.getAttributeValue(null, "node"); // String ver = parser.getAttributeValue(null, "ver"); // // // Make the parser // while (true) { // int eventType = parser.next(); // // if (eventType == XmlPullParser.END_TAG && // parser.getDepth() == startDepth) // break; // } // // if (hash != null && node != null && ver != null) { // return new CapsExtension(node, ver, hash); // } // else { // //throw new XMPPException("Malformed caps element."); // // Malformed, ignore it // return null; // } boolean done = false; String hash = null; String version = null; String node = null; while (!done) { if (parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equalsIgnoreCase("c")) { hash = parser.getAttributeValue(null, "hash"); version = parser.getAttributeValue(null, "ver"); node = parser.getAttributeValue(null, "node"); } if (parser.getEventType() == XmlPullParser.END_TAG && parser.getName().equalsIgnoreCase("c")) { done = true; } else { parser.next(); } } return new CapsExtension(node, version, hash); }