docs: @Override
      public <T> T setOption(final Option<T> option, final T value) throws IllegalArgumentException, IOException {
          if (option == Options.SSL_CLIENT_AUTH_MODE) {
              try {
                  return option.cast(engine.getNeedClientAuth() ? SslClientAuthMode.REQUIRED : engine.getWantClientAuth() ? SslClientAuthMode.REQUESTED : SslClientAuthMode.NOT_REQUESTED);
              } finally {
                  engine.setNeedClientAuth(value == SslClientAuthMode.REQUIRED);
                  engine.setWantClientAuth(value == SslClientAuthMode.REQUESTED);
              }
          } else if (option == Options.SECURE) {
              throw new IllegalArgumentException();
          } else {
              return delegate.setOption(option, value);
          }
      }