(a filtered version of) the default logger which we implemented in
the library but was no longer accessible. This makes it much easier
for the caller to turn logging on by just passing this default
log handler callback pointer into xmpp_ctx_new() instead of having
to always implement boilerplate.
Another option would have been xmpp_get_default_log_level(ctx, level)
to change the filter level of the build in logger, which is installed
if you pass NULL to xmpp_ctx_new(). In this method the logger would
filter everything by default.
Defining static data in the header causes warnings on Apple gcc, and in general
this should be the client's responsibility. The names are obvious from the
log_level enum, which is public, and it's only one line of boilerplate to
copy in implementing a custom logging function.
now derives the domain from the jid.
Is it reasonable to just remove the 'domain' (more properly server) argument directly?
The library should always handle this and I can't think why you'd want to override unless
maybe if you have a proxy.
we did not proceed with legacy authentication. The second bug was that
if no resource was specified, legacy authentication must fail, and this
condition was not being detected.
C-style callbacks. Note that this requires the memory callbacks to
have a userdata pointer (so that we can pass the class instance). Also,
the Context class has to be passed into the constructors for Connection and
Stanza.