package com.sissi.pipeline.in.stream;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.Input;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.Stream;
import com.sissi.protocol.feature.Starttls;
/**
* @author kim 2013年12月18日
*/
public class StreamFeatureStarttlsProcessor implements Input {
/*
* 已经启动TLS或已经验证身份则不重复开启
*
* @see com.sissi.pipeline.Input#input(com.sissi.context.JIDContext, com.sissi.protocol.Protocol)
*/
@Override
public boolean input(JIDContext context, Protocol protocol) {
return context.encrypted() || context.auth() ? true : this.writeFeature(protocol.cast(Stream.class));
}
private boolean writeFeature(Stream stream) {
stream.addFeature(Starttls.FEATURE);
return true;
}
}