void RequestCapabilities(Jid jid, string hash) { // already in cache? DiscoInfo info; if (DiscoCache.TryGetValue(hash, out info)) { AddCapabilityToResource(jid, info); return; } // prevent duplicate requests DiscoCache[hash] = null; // request it Disco.DiscoverInformation(jid, (object sender, IQEventArgs e) => OnDiscoInfo(e, hash) ); }