package com.sissi.pipeline.in.starttls;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.Input;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.Stream;
import com.sissi.protocol.starttls.Failure;
import com.sissi.protocol.starttls.Proceed;
/**
* <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
*
* @author kim 2013年12月17日
*/
public class StarttlsProcessor implements Input {
@Override
public boolean input(JIDContext context, Protocol protocol) {
return context.encrypt() ? this.writeAndTrue(context) : this.writeAndFalse(context);
}
private boolean writeAndFalse(JIDContext context) {
context.write(Failure.FAILURE).write(Stream.closeGraceFully()).close();
return false;
}
private boolean writeAndTrue(JIDContext context) {
context.write(Proceed.PROCEED);
return true;
}
}