code: @Override
      public ChannelFuture block(
              InetAddress multicastAddress, NetworkInterface networkInterface,
              InetAddress sourceToBlock, ChannelPromise promise) {
          checkJavaVersion();
  
          if (multicastAddress == null) {
              throw new NullPointerException("multicastAddress");
          }
          if (sourceToBlock == null) {
              throw new NullPointerException("sourceToBlock");
          }
  
          if (networkInterface == null) {
              throw new NullPointerException("networkInterface");
          }
          synchronized (this) {
              if (memberships != null) {
                  List<MembershipKey> keys = memberships.get(multicastAddress);
                  for (MembershipKey key: keys) {
                      if (networkInterface.equals(key.networkInterface())) {
                          try {
                              key.block(sourceToBlock);
                          } catch (IOException e) {
                              promise.setFailure(e);
                          }
                      }
                  }
              }
          }
          promise.setSuccess();
          return promise;
      }
docs: Block the given sourceToBlock address for the given multicastAddress on the given networkInterface