Example #1
0
  /**
   * Open channels for each listen address and register them against this ConnectionHandler's {@link
   * Selector}.
   *
   * @return the number of successfully registered channel
   */
  private int registerChannels() {
    int numRegistered = 0;
    for (InetAddress a : listenAddresses) {
      try {
        ServerSocketChannel channel = ServerSocketChannel.open();
        channel.socket().setReuseAddress(allowReuseAddress);
        channel.socket().bind(new InetSocketAddress(a, listenPort), backlog);
        channel.configureBlocking(false);
        channel.register(selector, SelectionKey.OP_ACCEPT);
        numRegistered++;

        logger.info(NOTE_CONNHANDLER_STARTED_LISTENING, handlerName);
      } catch (Exception e) {
        logger.traceException(e);

        logger.error(
            ERR_LDAP_CONNHANDLER_CREATE_CHANNEL_FAILED,
            currentConfig.dn(),
            a.getHostAddress(),
            listenPort,
            stackTraceToSingleLineString(e));
      }
    }
    return numRegistered;
  }