public KnownVersion getClientVersion(ClientConnInfo connInfo) {
    if (cache.getCacheServers().size() == 0) {
      return null;
    }

    CacheServerImpl server = (CacheServerImpl) cache.getCacheServers().iterator().next();

    if (server == null) {
      return null;
    }

    Acceptor acceptor = server.getAcceptor();
    if (acceptor == null) {
      return null;
    }

    ServerConnection[] serverConnections = acceptor.getAllServerConnectionList();

    boolean flag = connInfo.toString().contains("primary=true");

    for (ServerConnection conn : serverConnections) {
      ClientProxyMembershipID cliIdFrmProxy = conn.getProxyID();
      ClientConnInfo cci =
          new ClientConnInfo(conn.getProxyID(), conn.getSocketHost(), conn.getSocketPort(), flag);
      if (connInfo.toString().equals(cci.toString())) {
        return cliIdFrmProxy.getClientVersion();
      }
    }

    // check form ccp
    ClientProxyMembershipID proxyId = connInfo.getClientId();
    CacheClientProxy proxy = CacheClientNotifier.getInstance().getClientProxy(proxyId);
    if (proxy != null) {
      return proxy.getVersion();
    } else {
      return null;
    }
  }
@return a list of client Ids connected to this particular server instance
geode-core/src/main/java/org/apache/geode/management/internal/beans/CacheServerBridge.java