public List getSocketInfo(IOR ior) {
    SocketInfo socketInfo;
    List result = new ArrayList();

    IIOPProfileTemplate iiopProfileTemplate =
        (IIOPProfileTemplate) ior.getProfile().getTaggedProfileTemplate();
    IIOPAddress primary = iiopProfileTemplate.getPrimaryAddress();
    String hostname = primary.getHost().toLowerCase();
    int port = primary.getPort();
    // NOTE: we could check for 0 (i.e., CSIv2) but, for a
    // non-CSIv2-configured client ORB talking to a CSIv2 configured
    // server ORB you might end up with an empty contact info list
    // which would then report a failure which would not be as
    // instructive as leaving a ContactInfo with a 0 port in the list.
    socketInfo = createSocketInfo(hostname, port);
    result.add(socketInfo);

    Iterator iterator = iiopProfileTemplate.iteratorById(TAG_ALTERNATE_IIOP_ADDRESS.value);

    while (iterator.hasNext()) {
      AlternateIIOPAddressComponent alternate = (AlternateIIOPAddressComponent) iterator.next();
      hostname = alternate.getAddress().getHost().toLowerCase();
      port = alternate.getAddress().getPort();
      socketInfo = createSocketInfo(hostname, port);
      result.add(socketInfo);
    }
    return result;
  }
 /*    */ public boolean equals(Object paramObject) /*    */ {
   /* 69 */ if (!(paramObject instanceof IIOPAddress)) {
     /* 70 */ return false;
     /*    */ }
   /* 72 */ IIOPAddress localIIOPAddress = (IIOPAddress) paramObject;
   /*    */
   /* 74 */ return (getHost().equals(localIIOPAddress.getHost()))
       && (getPort() == localIIOPAddress.getPort());
   /*    */ }