Search in sources :

Example 6 with StreamInitiation

use of org.jivesoftware.smackx.packet.StreamInitiation in project ecf by eclipse.

the class FileTransferManager method rejectIncomingFileTransfer.

protected void rejectIncomingFileTransfer(FileTransferRequest request) {
    StreamInitiation initiation = request.getStreamInitiation();
    IQ rejection = FileTransferNegotiator.createIQ(initiation.getPacketID(), initiation.getFrom(), initiation.getTo(), IQ.Type.ERROR);
    rejection.setError(new XMPPError(XMPPError.Condition.no_acceptable));
    connection.sendPacket(rejection);
}
Also used : StreamInitiation(org.jivesoftware.smackx.packet.StreamInitiation) IQ(org.jivesoftware.smack.packet.IQ) XMPPError(org.jivesoftware.smack.packet.XMPPError)

Example 7 with StreamInitiation

use of org.jivesoftware.smackx.packet.StreamInitiation in project ecf by eclipse.

the class StreamInitiationProvider method parseIQ.

public IQ parseIQ(final XmlPullParser parser) throws Exception {
    boolean done = false;
    // si
    String id = parser.getAttributeValue("", "id");
    String mimeType = parser.getAttributeValue("", "mime-type");
    StreamInitiation initiation = new StreamInitiation();
    // file
    String name = null;
    String size = null;
    String hash = null;
    String date = null;
    String desc = null;
    boolean isRanged = false;
    // feature
    DataForm form = null;
    DataFormProvider dataFormProvider = new DataFormProvider();
    int eventType;
    String elementName;
    String namespace;
    while (!done) {
        eventType = parser.next();
        elementName = parser.getName();
        namespace = parser.getNamespace();
        if (eventType == XmlPullParser.START_TAG) {
            if (elementName.equals("file")) {
                name = parser.getAttributeValue("", "name");
                size = parser.getAttributeValue("", "size");
                hash = parser.getAttributeValue("", "hash");
                date = parser.getAttributeValue("", "date");
            } else if (elementName.equals("desc")) {
                desc = parser.nextText();
            } else if (elementName.equals("range")) {
                isRanged = true;
            } else if (elementName.equals("x") && namespace.equals("jabber:x:data")) {
                form = (DataForm) dataFormProvider.parseExtension(parser);
            }
        } else if (eventType == XmlPullParser.END_TAG) {
            if (elementName.equals("si")) {
                done = true;
            } else if (elementName.equals("file")) {
                long fileSize = 0;
                if (size != null && size.trim().length() != 0) {
                    try {
                        fileSize = Long.parseLong(size);
                    } catch (NumberFormatException e) {
                        e.printStackTrace();
                    }
                }
                Date fileDate = new Date();
                if (date != null) {
                    try {
                        fileDate = StringUtils.parseXEP0082Date(date);
                    } catch (ParseException e) {
                    // couldn't parse date, use current date-time
                    }
                }
                File file = new File(name, fileSize);
                file.setHash(hash);
                file.setDate(fileDate);
                file.setDesc(desc);
                file.setRanged(isRanged);
                initiation.setFile(file);
            }
        }
    }
    initiation.setSesssionID(id);
    initiation.setMimeType(mimeType);
    initiation.setFeatureNegotiationForm(form);
    return initiation;
}
Also used : StreamInitiation(org.jivesoftware.smackx.packet.StreamInitiation) DataForm(org.jivesoftware.smackx.packet.DataForm) ParseException(java.text.ParseException) File(org.jivesoftware.smackx.packet.StreamInitiation.File) Date(java.util.Date)

Aggregations

StreamInitiation (org.jivesoftware.smackx.packet.StreamInitiation)7 XMPPException (org.jivesoftware.smack.XMPPException)3 IQ (org.jivesoftware.smack.packet.IQ)3 Packet (org.jivesoftware.smack.packet.Packet)3 PacketCollector (org.jivesoftware.smack.PacketCollector)2 XMPPError (org.jivesoftware.smack.packet.XMPPError)2 FormField (org.jivesoftware.smackx.FormField)2 DataForm (org.jivesoftware.smackx.packet.DataForm)2 ParseException (java.text.ParseException)1 Date (java.util.Date)1 PacketListener (org.jivesoftware.smack.PacketListener)1 AndFilter (org.jivesoftware.smack.filter.AndFilter)1 IQTypeFilter (org.jivesoftware.smack.filter.IQTypeFilter)1 PacketIDFilter (org.jivesoftware.smack.filter.PacketIDFilter)1 PacketTypeFilter (org.jivesoftware.smack.filter.PacketTypeFilter)1 File (org.jivesoftware.smackx.packet.StreamInitiation.File)1