Esempio n. 1
0
  @Override
  public String next(final ProtocolCodecs<ClientState> codecs, final ClientState sessionState) {
    if (isCompleted()) {

      Set<String> exts = sessionState.getExtensions();

      boolean pipelining = exts.contains(SMTPExtensions.PIPELINING);
      boolean enhancedCodes = exts.contains(SMTPExtensions.ENHANCEDSTATUSCODES);

      if (pipelining) {
        codecs.register(
            ProtocolState.MAIL.name(),
            new PipeliningSendEnvelopCodec(this.iobuffers, enhancedCodes));
        codecs.register(
            ProtocolState.DATA.name(), new SendDataCodec(this.iobuffers, enhancedCodes));
      }
      if (useAuth) {
        return ProtocolState.AUTH.name();
      } else {
        return ProtocolState.MAIL.name();
      }
    } else {
      return null;
    }
  }
 @Override
 public String next(final ProtocolCodecs<ServerState> codecs, final ServerState sessionState) {
   if (isCompleted()) {
     if (sessionState.isTerminated()) {
       return ProtocolState.QUIT.name();
     }
     return ProtocolState.DATA.name();
   } else {
     return null;
   }
 }