@Override
  protected void loadFrom(Connection conn, Attributes attrs) throws NamingException {
    super.loadFrom(conn, attrs);
    if (!hasObjectClass(attrs, "dcmNetworkConnection")) return;

    conn.setProtocol(Protocol.valueOf(stringValue(attrs.get("dcmProtocol"), "DICOM")));
    conn.setHttpProxy(stringValue(attrs.get("dcmHTTPProxy"), null));
    conn.setBlacklist(stringArray(attrs.get("dcmBlacklistedHostname")));
    conn.setBacklog(intValue(attrs.get("dcmTCPBacklog"), Connection.DEF_BACKLOG));
    conn.setConnectTimeout(intValue(attrs.get("dcmTCPConnectTimeout"), Connection.NO_TIMEOUT));
    conn.setRequestTimeout(intValue(attrs.get("dcmAARQTimeout"), Connection.NO_TIMEOUT));
    conn.setAcceptTimeout(intValue(attrs.get("dcmAAACTimeout"), Connection.NO_TIMEOUT));
    conn.setReleaseTimeout(intValue(attrs.get("dcmARRPTimeout"), Connection.NO_TIMEOUT));
    conn.setResponseTimeout(intValue(attrs.get("dcmResponseTimeout"), Connection.NO_TIMEOUT));
    conn.setRetrieveTimeout(intValue(attrs.get("dcmRetrieveTimeout"), Connection.NO_TIMEOUT));
    conn.setIdleTimeout(intValue(attrs.get("dcmIdleTimeout"), Connection.NO_TIMEOUT));
    conn.setSocketCloseDelay(intValue(attrs.get("dcmTCPCloseDelay"), Connection.DEF_SOCKETDELAY));
    conn.setSendBufferSize(intValue(attrs.get("dcmTCPSendBufferSize"), Connection.DEF_BUFFERSIZE));
    conn.setReceiveBufferSize(
        intValue(attrs.get("dcmTCPReceiveBufferSize"), Connection.DEF_BUFFERSIZE));
    conn.setTcpNoDelay(booleanValue(attrs.get("dcmTCPNoDelay"), true));
    conn.setTlsNeedClientAuth(booleanValue(attrs.get("dcmTLSNeedClientAuth"), true));
    String[] tlsProtocols = stringArray(attrs.get("dcmTLSProtocol"));
    if (tlsProtocols.length > 0) conn.setTlsProtocols(tlsProtocols);
    conn.setSendPDULength(intValue(attrs.get("dcmSendPDULength"), Connection.DEF_MAX_PDU_LENGTH));
    conn.setReceivePDULength(
        intValue(attrs.get("dcmReceivePDULength"), Connection.DEF_MAX_PDU_LENGTH));
    conn.setMaxOpsPerformed(intValue(attrs.get("dcmMaxOpsPerformed"), Connection.SYNCHRONOUS_MODE));
    conn.setMaxOpsInvoked(intValue(attrs.get("dcmMaxOpsInvoked"), Connection.SYNCHRONOUS_MODE));
    conn.setPackPDV(booleanValue(attrs.get("dcmPackPDV"), true));
  }