We shouldn't need to disco the Google Talk clients' many many caps bundles: either we already know what they mean, or we don't care about them. We also should cache what the caps hashes we publish mean, to stop us discoing anyone else (possibly even ourself!) with the same hash. Finally, we should remember our past caps hashes, and respond to disco requests for them, both to be a better-behaved client and to work around an iChat bug. The attached branch, 'improve-caps-cache', fixes these issues. While working on it, I worried briefly that caching all of our past caps hashes is a memory leak, and realised that it's a moot point because we cache every hash we see from contacts too. :)
The test would be more obviously correct if the forbidden event was forbidden as soon as possible. Otherwise, looks good. Merging this to 0.9 is going to be a pain...
Merged to 0.8; I'll clone the bug for 0.9 and try to port the branch...
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.