Make Camel's SASL framework more extensible.
authorMatthew Barnes <mbarnes@redhat.com>
Fri, 24 Jun 2011 15:29:04 +0000 (11:29 -0400)
committerMatthew Barnes <mbarnes@redhat.com>
Fri, 24 Jun 2011 17:28:21 +0000 (13:28 -0400)
commit75cc27f6f649ca274ed27e392883f2e990e46a82
treebc2bd913e4051fa23bd171682bfc4845678ce3cb
parentd285e117a39ba49bec3a84e3c910f12721960a8a
Make Camel's SASL framework more extensible.

Gather SASL mechanism names by traversing subclasses of CamelSasl
instead of hard-coding all known mechanism names.  This allows
mechanisms to be added from outside of libcamel.

This adds a CamelServiceAuthType pointer to CamelSaslClass, which
changes the ABI.  Statically registered subclasses can just point to a
static CamelServiceAuthType struct.  Dynamically registered subclasses
should allocate a CamelServiceAuthType struct in their base_init class
method and free it in their base_finalize class method.

Adapt CamelSasl subclasses to the new approach.
29 files changed:
camel/camel-sasl-anonymous.c
camel/camel-sasl-anonymous.h
camel/camel-sasl-cram-md5.c
camel/camel-sasl-cram-md5.h
camel/camel-sasl-digest-md5.c
camel/camel-sasl-digest-md5.h
camel/camel-sasl-gssapi.c
camel/camel-sasl-gssapi.h
camel/camel-sasl-login.c
camel/camel-sasl-login.h
camel/camel-sasl-ntlm.c
camel/camel-sasl-ntlm.h
camel/camel-sasl-plain.c
camel/camel-sasl-plain.h
camel/camel-sasl-popb4smtp.c
camel/camel-sasl-popb4smtp.h
camel/camel-sasl.c
camel/camel-sasl.h
configure.ac
docs/reference/camel/camel-sections.txt
docs/reference/camel/tmpl/camel-sasl-anonymous.sgml
docs/reference/camel/tmpl/camel-sasl-cram-md5.sgml
docs/reference/camel/tmpl/camel-sasl-digest-md5.sgml
docs/reference/camel/tmpl/camel-sasl-gssapi.sgml
docs/reference/camel/tmpl/camel-sasl-login.sgml
docs/reference/camel/tmpl/camel-sasl-ntlm.sgml
docs/reference/camel/tmpl/camel-sasl-plain.sgml
docs/reference/camel/tmpl/camel-sasl-popb4smtp.sgml
docs/reference/camel/tmpl/camel-unused.sgml