2017-08-11 13:47:54 +02:00
|
|
|
package de.vanitasvitae.sync_client;
|
|
|
|
|
|
|
|
import java.io.File;
|
2017-08-15 17:44:02 +02:00
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
import java.security.InvalidAlgorithmParameterException;
|
|
|
|
import java.security.InvalidKeyException;
|
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
|
import java.security.NoSuchProviderException;
|
|
|
|
import javax.crypto.BadPaddingException;
|
|
|
|
import javax.crypto.IllegalBlockSizeException;
|
|
|
|
import javax.crypto.NoSuchPaddingException;
|
2017-08-11 13:47:54 +02:00
|
|
|
|
|
|
|
import org.jivesoftware.smack.SmackException;
|
|
|
|
import org.jivesoftware.smack.XMPPException;
|
2017-08-15 17:44:02 +02:00
|
|
|
import org.jivesoftware.smackx.jingle_filetransfer.JingleFileTransferManager;
|
|
|
|
import org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException;
|
2017-08-11 13:47:54 +02:00
|
|
|
|
|
|
|
import org.jxmpp.stringprep.XmppStringprepException;
|
|
|
|
|
|
|
|
public class Slave extends Client {
|
|
|
|
|
2017-08-15 17:44:02 +02:00
|
|
|
public Slave(String username, String password, String dir) throws XmppStringprepException,
|
|
|
|
InvalidAlgorithmParameterException, NoSuchAlgorithmException, UnsupportedEncodingException,
|
|
|
|
InvalidKeyException, InterruptedException, XMPPException.XMPPErrorException, NoSuchPaddingException,
|
|
|
|
BadPaddingException, CorruptedOmemoKeyException, NoSuchProviderException, IllegalBlockSizeException,
|
|
|
|
SmackException {
|
2017-08-11 13:47:54 +02:00
|
|
|
super(username, password, dir);
|
|
|
|
JingleFileTransferManager jingleFileTransferManager = JingleFileTransferManager.getInstanceFor(connection);
|
|
|
|
jingleFileTransferManager.addIncomingFileOfferListener(offer -> {
|
|
|
|
try {
|
|
|
|
File target = new File(root.toFile(), offer.getFile().getName());
|
|
|
|
target.getParentFile().mkdirs();
|
|
|
|
offer.accept(connection, target);
|
2017-08-15 17:44:02 +02:00
|
|
|
} catch (InterruptedException | XMPPException.XMPPErrorException | SmackException.NoResponseException | SmackException.NotConnectedException | IOException e) {
|
2017-08-11 13:47:54 +02:00
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|