commit 2f7868e037ad2bc6efa349d660d62d428e50a531
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Sun Jun 28 10:04:16 2009 -0400

    Adapt files for local exchange-storage server.

diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index a4b3414..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,229 +0,0 @@
-Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
-
-   This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  Run `./configure --help'
-for details on some of the pertinent environment variables.
-
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
-
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
-   *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on.  Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
-     CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
-     OS KERNEL-OS
-
-   See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
-   If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
-
-   If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-   Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
-
-     ./configure CC=/usr/local2/bin/gcc
-
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-`configure' Invocation
-======================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
-     Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`--cache-file=FILE'
-     Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-     disable caching.
-
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
-
diff --git a/Makefile.am b/Makefile.am
index f44652e..8e2efe6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,5 @@
 SUBDIRS =				\
+	server				\
 	camel mail			\
 	addressbook calendar		\
 	storage				\
@@ -9,6 +10,20 @@ DISTCLEANFILES =				\
 	intltool-update				\
 	intltool-merge
 
+MAINTAINERCLEANFILES =				\
+	$(srcdir)/INSTALL			\
+	$(srcdir)/aclocal.m4			\
+	$(srcdir)/autoscan.log			\
+	$(srcdir)/config.guess			\
+	$(srcdir)/config.h.in			\
+	$(srcdir)/config.sub			\
+	$(srcdir)/configure.scan		\
+	$(srcdir)/depcomp			\
+	$(srcdir)/install-sh			\
+	$(srcdir)/ltmain.sh			\
+	$(srcdir)/missing			\
+	$(srcdir)/mkinstalldirs
+
 EXTRA_DIST =				\
 	MAINTAINERS			\
 	intltool-extract.in		\
@@ -18,5 +33,4 @@ EXTRA_DIST =				\
 
 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
 
-
 -include $(top_srcdir)/git.mk
diff --git a/addressbook/Makefile.am b/addressbook/Makefile.am
index 27fd26a..705c21f 100644
--- a/addressbook/Makefile.am
+++ b/addressbook/Makefile.am
@@ -1,6 +1,9 @@
 INCLUDES =						\
 	-I$(top_srcdir)					\
 	-I$(top_srcdir)/storage				\
+	-I$(top_srcdir)/server/lib			\
+	-I$(top_srcdir)/server/storage			\
+	-I$(top_builddir)/server/lib			\
 	-DG_LOG_DOMAIN=\"e-book-backend-exchange\"	\
 	$(ADDRESSBOOK_CFLAGS)				\
 	$(LIBEXCHANGE_CFLAGS)				\
@@ -13,7 +16,7 @@ endif
 
 # GConf schemas
 
-schemadir   = $(GCONF_SCHEMA_FILE_DIR)
+schemadir = $(GCONF_SCHEMA_FILE_DIR)
 schema_in_files = apps_exchange_addressbook.schemas.in.in
 schema_DATA = $(schema_in_files:.schemas.in.in=-$(BASE_VERSION).schemas)
 %-$(BASE_VERSION).schemas.in: %.schemas.in.in
@@ -51,12 +54,15 @@ libexchangeaddressbook_la_SOURCES =	\
 	e-book-backend-gal.c		\
 	e-book-backend-gal.h		
 
-if HAVE_LIBDB	
-libexchangeaddressbook_la_SOURCES += e-book-backend-db-cache.c	\
-			             e-book-backend-db-cache.h	
+libexchangeaddressbook_la_LIBADD =	\
+	$(top_builddir)/server/storage/libexchange-storage.la
+
+if HAVE_LIBDB
+libexchangeaddressbook_la_SOURCES +=	\
+	e-book-backend-db-cache.c	\
+	e-book-backend-db-cache.h
 
-libexchangeaddressbook_la_LIBADD = 	\
-	$(DB_LIBS)
+libexchangeaddressbook_la_LIBADD += $(DB_LIBS)
 
 libexchangeaddressbook_la_LDFLAGS =	\
 	-module -avoid-version $(NO_UNDEFINED)
diff --git a/calendar/Makefile.am b/calendar/Makefile.am
index 31084ea..f3c2f84 100644
--- a/calendar/Makefile.am
+++ b/calendar/Makefile.am
@@ -1,6 +1,9 @@
 INCLUDES =                                                      \
 	-I$(top_srcdir)						\
-        -I$(top_srcdir)/storage					\
+	-I$(top_srcdir)/storage					\
+	-I$(top_srcdir)/server/lib				\
+	-I$(top_srcdir)/server/storage				\
+	-I$(top_builddir)/server/lib				\
 	$(CALENDAR_CFLAGS)					\
 	$(LIBEXCHANGE_CFLAGS)					\
 	$(LDAP_CFLAGS)						\
@@ -23,4 +26,7 @@ libexchangecalendar_la_SOURCES = 				\
 	e2k-cal-utils.c						\
 	e2k-cal-utils.h
 
+libexchangecalendar_la_LIBADD =					\
+	$(top_builddir)/server/storage/libexchange-storage.la
+
 -include $(top_srcdir)/git.mk
diff --git a/configure.ac b/configure.ac
index 71b55bc..c934cd8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,6 +38,14 @@ EVOLUTION_API_VERSION=2.28
 EDS_API_VERSION=1.2
 EDS_BASE_VERSION=2.28
 
+LIBEXCHANGE_STORAGE_CURRENT=3
+LIBEXCHANGE_STORAGE_REVISION=0
+LIBEXCHANGE_STORAGE_AGE=0
+
+AC_SUBST(LIBEXCHANGE_STORAGE_CURRENT)
+AC_SUBST(LIBEXCHANGE_STORAGE_REVISION)
+AC_SUBST(LIBEXCHANGE_STORAGE_AGE)
+
 AC_MSG_CHECKING(Evolution version)
 EVOLUTION_VERSION=`pkg-config --modversion evolution-shell 2>/dev/null`
 if test -z "$EVOLUTION_VERSION"; then
@@ -85,7 +93,7 @@ AS_COMPILER_FLAGS(WARNING_FLAGS,
 	-Wno-unused-parameter
 	-Wdeclaration-after-statement
 	-Werror-implicit-function-declaration
-	-Wformat-nonliteral -Wformat-security -Winit-self
+	-Wformat-security -Winit-self
 	-Wmissing-declarations -Wmissing-include-dirs
 	-Wmissing-noreturn -Wnested-externs -Wpointer-arith
 	-Wredundant-decls -Wundef -Wwrite-strings")
@@ -94,6 +102,7 @@ AC_SUBST(WARNING_FLAGS)
 # Other useful compiler warnings for test builds only.
 # These may produce warnings we have no control over.
 #
+#	-Wformat-nonliteral
 #	-Wmissing-format-attribute
 #	-Wshadow
 
@@ -151,8 +160,7 @@ PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER,
 	 libedataserver-$EDS_API_VERSION >= eds_minimum_version
 	 libedataserverui-$EDS_API_VERSION >= eds_minimum_version
 	 libegroupwise-$EDS_API_VERSION >= eds_minimum_version
-	 libebackend-$EDS_API_VERSION >= eds_minimum_version
-	 libexchange-storage-$EDS_API_VERSION >= eds_minimum_version])
+	 libebackend-$EDS_API_VERSION >= eds_minimum_version])
 
 dnl *************************
 dnl CFLAGS and LIBS and stuff
@@ -184,17 +192,6 @@ AM_GCONF_SOURCE_2
 CONNECTOR_DATADIR='$(datadir)/evolution-exchange/$(BASE_VERSION)'
 AC_SUBST(CONNECTOR_DATADIR)
 
-dnl Check that e-d-s was built with Exchange support.
-EXCHANGE_PACKAGE="`pkg-config --exists libexchange-storage-$EDS_API_VERSION`"
-if test "x$EXCHANGE_PACKAGE" != "x"; then
-	echo "
-		You probably have not built evolution-data-server with 
-		Exchange support or fix your PKG_CONFIG_PATH to point 
-		it to the proper location.
-		"
-	exit 1
-fi
-
 EVOLUTION_idldir="`pkg-config --variable=idldir evolution-shell`"
 AC_SUBST(EVOLUTION_idldir)
 
@@ -230,11 +227,15 @@ AC_SUBST(CAMEL_CFLAGS)
 PKG_CHECK_MODULES(MAIL, libecal-$EDS_API_VERSION)
 AC_SUBST(MAIL_CFLAGS)
 
+PKG_CHECK_MODULES(SERVER, libedataserverui-$EDS_API_VERSION)
+AC_SUBST(SERVER_CFLAGS)
+AC_SUBST(SERVER_LIBS)
+
 PKG_CHECK_MODULES(EXCHANGE_STORAGE, evolution-shell evolution-plugin libedataserverui-$EDS_API_VERSION libedata-book-$EDS_API_VERSION libedata-cal-$EDS_API_VERSION libsoup-2.4 libglade-2.0 camel-provider-$EDS_API_VERSION)
 AC_SUBST(EXCHANGE_STORAGE_CFLAGS)
 AC_SUBST(EXCHANGE_STORAGE_LIBS)
 
-PKG_CHECK_MODULES(LIBEXCHANGE, libsoup-2.4 evolution-shell libedataserverui-$EDS_API_VERSION libebackend-$EDS_API_VERSION libexchange-storage-$EDS_API_VERSION)
+PKG_CHECK_MODULES(LIBEXCHANGE, libsoup-2.4 evolution-shell libedataserverui-$EDS_API_VERSION libebackend-$EDS_API_VERSION)
 AC_SUBST(LIBEXCHANGE_CFLAGS)
 AC_SUBST(LIBEXCHANGE_LIBS)
 
@@ -275,9 +276,27 @@ no)
 	case $with_openldap in
 	no)
 		AC_ERROR(LDAP support is required for Connector)
-	;;
+		;;
+	*)
+		case $with_static_ldap in
+		yes)
+			msg_ldap="$with_openldap (static)"
+			;;
+		*)
+			msg_ldap="$with_openldap (dynamic)"
+			;;
+		esac
 	esac
 	;;
+*)
+	case $with_static_sunldap in
+	yes)
+		msg_ldap="$with_sunldap (static)"
+		;;
+	*)
+		msg_ldap="$with_sunldap (dynamic)"
+		;;
+	esac
 esac
 
 SAVE_CFLAGS="$CFLAGS"
@@ -340,7 +359,7 @@ else
 	DB_CFLAGS="$CFLAGS -I /usr/include"
 	DB_LIBS="$LIBS -ldb"
 fi
-	
+
 AC_MSG_CHECKING([Berkeley DB])
 save_cflags=$CFLAGS; CFLAGS=$DB_CFLAGS
 save_libs=$LIBS; LIBS="$DB_LIBS"
@@ -366,6 +385,87 @@ LIBS=$save_libs
 AC_SUBST(DB_CFLAGS)
 AC_SUBST(DB_LIBS)
 
+dnl ****************
+dnl Kerberos Support
+dnl ****************
+
+AC_ARG_WITH(krb5,
+  AC_HELP_STRING( [--with-krb5=DIR],
+		  [Location of Kerberos 5 install dir]),
+  with_krb5="$withval", with_krb5="no")
+
+AC_ARG_WITH(krb5-libs,
+  AC_HELP_STRING( [--with-krb5-libs=DIR],
+		  [Location of Kerberos 5 libraries]),
+  with_krb5_libs="$withval", with_krb5_libs="$with_krb5/lib")
+
+AC_ARG_WITH(krb5-includes,
+  AC_HELP_STRING( [--with-krb5-includes=DIR],
+		  [Location of Kerberos 5 headers]),
+  with_krb5_includes="$withval", with_krb5_includes="")
+
+msg_krb5="no"
+if test "x${with_krb5}" != "xno"; then
+	LIBS_save="$LIBS"
+
+	mitlibs="-lkrb5 -lk5crypto -lcom_err -lgssapi_krb5"
+	heimlibs="-lkrb5 -lcrypto -lasn1 -lcom_err -lroken -lgssapi"
+	sunlibs="-lkrb5 -lgss"
+	AC_CACHE_CHECK([for Kerberos 5], ac_cv_lib_kerberos5,
+	[
+		LIBS="$LIBS -L$with_krb5_libs $mitlibs"
+		AC_TRY_LINK([#include <krb5.h>],krb5_init_context, ac_cv_lib_kerberos5="$mitlibs",
+		[
+			LIBS="$LIBS_save -L$with_krb5_libs $heimlibs"
+			AC_TRY_LINK_FUNC(krb5_init_context, ac_cv_lib_kerberos5="$heimlibs",
+			[
+				LIBS="$LIBS_save -L$with_krb5_libs $sunlibs"
+				AC_TRY_LINK_FUNC(krb5_init_context, ac_cv_lib_kerberos5="$sunlibs", ac_cv_lib_kerberos5="no")
+			])
+		])
+		LIBS="$LIBS_save"
+	])
+	if test "$ac_cv_lib_kerberos5" != "no"; then
+		AC_DEFINE(HAVE_KRB5,1,[Define if you have Krb5])
+		if test "$ac_cv_lib_kerberos5" = "$mitlibs"; then
+			AC_DEFINE(HAVE_MIT_KRB5,1,[Define if you have MIT Krb5])
+			if test -z "$with_krb5_includes"; then
+				KRB5_CFLAGS="-I$with_krb5/include"
+			else
+				KRB5_CFLAGS="-I$with_krb5_includes"
+			fi
+			msg_krb5="yes (MIT)"
+		else
+			if test "$ac_cv_lib_kerberos5" = "$heimlibs"; then
+				AC_DEFINE(HAVE_HEIMDAL_KRB5,1,[Define if you have Heimdal])
+				if test -z "$with_krb5_includes"; then
+					KRB5_CFLAGS="-I$with_krb5/include/heimdal"
+				else
+					KRB5_CFLAGS="-I$with_krb5_includes"
+				fi
+				msg_krb5="yes (Heimdal)"
+			else
+				AC_DEFINE(HAVE_SUN_KRB5,1,[Define if you have Sun Kerberosv5])
+				if test -z "$with_krb5_includes"; then
+					KRB5_CFLAGS="-I$with_krb5/include/kerberosv5"
+				else
+					KRB5_CFLAGS="-I$with_krb5_includes"
+				fi
+				msg_krb5="yes (Sun)"
+			fi
+		fi
+		KRB5_LDFLAGS="-L$with_krb5_libs $ac_cv_lib_kerberos5"
+		AC_MSG_RESULT(msg_krb5)
+	else
+		dnl AC_MSG_CHECKING([for Kerberos 5])
+		AC_MSG_RESULT([no])
+		AC_MSG_ERROR([You specified with krb5, but it was not found.])
+	fi
+else
+	AC_MSG_WARN([krb5 support disabled])
+fi
+
+AM_CONDITIONAL(ENABLE_KRB5, test x$with_krb5 != xno)
 
 dnl ******************************
 dnl Makefiles
@@ -374,16 +474,25 @@ dnl ******************************
 AC_OUTPUT([
 Makefile
 evolution-exchange-zip
-camel/Makefile
-mail/Makefile
 addressbook/Makefile
 calendar/Makefile
-storage/Makefile
+camel/Makefile
 docs/Makefile
 docs/reference/Makefile
+mail/Makefile
 po/Makefile.in
+server/Makefile
+server/lib/Makefile
+server/storage/Makefile
+server/xntlm/Makefile
+storage/Makefile
 ])
 
+echo "
+	evolution-exchange has been configured as follows:
+	Kerberos 5:       $msg_krb5
+	LDAP support:     $msg_ldap
+"
 case $ac_cv_func_ldap_ntlm_bind in
 no)
 	echo ""
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
index 0686bc1..ff8e155 100644
--- a/docs/reference/Makefile.am
+++ b/docs/reference/Makefile.am
@@ -37,11 +37,13 @@ CFILE_GLOB=$(top_srcdir)/*/*.c
 # if $(DOC_MODULE).types is non-empty.
 INCLUDES =					\
 	-I$(top_srcdir)/lib			\
+	-I$(top_srcdir)/server/lib		\
 	-I$(top_builddir)/lib			\
 	$(LIBEXCHANGE_CFLAGS)			\
 	$(LDAP_CFLAGS)
 
 GTKDOC_LIBS =					\
+	$(top_builddir)/server/storage/libexchange-storage.la \
 	$(LIBEXCHANGE_LIBS)			\
 	$(LDAP_LIBS)
 
diff --git a/docs/reference/tmpl/e2k-action.sgml b/docs/reference/tmpl/e2k-action.sgml
index b5ee967..b7021d0 100644
--- a/docs/reference/tmpl/e2k-action.sgml
+++ b/docs/reference/tmpl/e2k-action.sgml
@@ -22,3 +22,230 @@ information in this file about how server-side rules work is wrong.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kAction ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM E2kActionType ##### -->
+<para>
+
+</para>
+
+@E2K_ACTION_MOVE: 
+@E2K_ACTION_COPY: 
+@E2K_ACTION_REPLY: 
+@E2K_ACTION_OOF_REPLY: 
+@E2K_ACTION_DEFER: 
+@E2K_ACTION_BOUNCE: 
+@E2K_ACTION_FORWARD: 
+@E2K_ACTION_DELEGATE: 
+@E2K_ACTION_TAG: 
+@E2K_ACTION_DELETE: 
+@E2K_ACTION_MARK_AS_READ: 
+
+<!-- ##### FUNCTION e2k_action_move ##### -->
+<para>
+
+</para>
+
+@store_entryid: 
+@folder_source_key: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_copy ##### -->
+<para>
+
+</para>
+
+@store_entryid: 
+@folder_source_key: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kActionReplyFlavor ##### -->
+<para>
+
+</para>
+
+@E2K_ACTION_REPLY_FLAVOR_NOT_ORIGINATOR: 
+@E2K_ACTION_REPLY_FLAVOR_STOCK_TEMPLATE: 
+
+<!-- ##### FUNCTION e2k_action_reply ##### -->
+<para>
+
+</para>
+
+@template_entryid: 
+@template_guid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_oof_reply ##### -->
+<para>
+
+</para>
+
+@template_entryid: 
+@template_guid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_defer ##### -->
+<para>
+
+</para>
+
+@data: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kActionBounceCode ##### -->
+<para>
+
+</para>
+
+@E2K_ACTION_BOUNCE_CODE_TOO_LARGE: 
+@E2K_ACTION_BOUNCE_CODE_FORM_MISMATCH: 
+@E2K_ACTION_BOUNCE_CODE_ACCESS_DENIED: 
+
+<!-- ##### FUNCTION e2k_action_bounce ##### -->
+<para>
+
+</para>
+
+@bounce_code: 
+@Returns: 
+
+
+<!-- ##### STRUCT E2kAddrList ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM E2kActionForwardFlavor ##### -->
+<para>
+
+</para>
+
+@E2K_ACTION_FORWARD_FLAVOR_PRESERVE_SENDER: 
+@E2K_ACTION_FORWARD_FLAVOR_DO_NOT_MUNGE: 
+@E2K_ACTION_FORWARD_FLAVOR_REDIRECT: 
+@E2K_ACTION_FORWARD_FLAVOR_AS_ATTACHMENT: 
+
+<!-- ##### FUNCTION e2k_action_forward ##### -->
+<para>
+
+</para>
+
+@list: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_delegate ##### -->
+<para>
+
+</para>
+
+@list: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_tag ##### -->
+<para>
+
+</para>
+
+@propname: 
+@type: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_action_delete ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_actions_extract ##### -->
+<para>
+
+</para>
+
+@data: 
+@len: 
+@actions: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_actions_append ##### -->
+<para>
+
+</para>
+
+@ba: 
+@actions: 
+
+
+<!-- ##### FUNCTION e2k_actions_free ##### -->
+<para>
+
+</para>
+
+@actions: 
+
+
+<!-- ##### FUNCTION e2k_action_free ##### -->
+<para>
+
+</para>
+
+@act: 
+
+
+<!-- ##### FUNCTION e2k_addr_list_new ##### -->
+<para>
+
+</para>
+
+@nentries: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_addr_list_set_local ##### -->
+<para>
+
+</para>
+
+@list: 
+@entry_num: 
+@display_name: 
+@exchange_dn: 
+@email: 
+
+
+<!-- ##### FUNCTION e2k_addr_list_set_oneoff ##### -->
+<para>
+
+</para>
+
+@list: 
+@entry_num: 
+@display_name: 
+@email: 
+
+
+<!-- ##### FUNCTION e2k_addr_list_free ##### -->
+<para>
+
+</para>
+
+@list: 
+
+
diff --git a/docs/reference/tmpl/e2k-autoconfig.sgml b/docs/reference/tmpl/e2k-autoconfig.sgml
index 21a14a9..d7c5e67 100644
--- a/docs/reference/tmpl/e2k-autoconfig.sgml
+++ b/docs/reference/tmpl/e2k-autoconfig.sgml
@@ -19,3 +19,182 @@ details about the organization of the company&rsquo;s Exchange servers.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kAutoconfig ##### -->
+<para>
+
+</para>
+
+@owa_uri: 
+@gc_server: 
+@username: 
+@password: 
+@gal_limit: 
+@gal_auth: 
+@version: 
+@display_name: 
+@email: 
+@account_uri: 
+@exchange_server: 
+@timezone: 
+@nt_domain: 
+@w2k_domain: 
+@home_uri: 
+@exchange_dn: 
+@pf_server: 
+@auth_pref: 
+@require_ntlm: 
+@use_ntlm: 
+@saw_basic: 
+@saw_ntlm: 
+@nt_domain_defaulted: 
+@gc_server_autodetected: 
+
+<!-- ##### ENUM E2kExchangeVersion ##### -->
+<para>
+
+</para>
+
+@E2K_EXCHANGE_UNKNOWN: 
+@E2K_EXCHANGE_2000: 
+@E2K_EXCHANGE_2003: 
+@E2K_EXCHANGE_FUTURE: 
+
+<!-- ##### ENUM E2kAutoconfigAuthPref ##### -->
+<para>
+
+</para>
+
+@E2K_AUTOCONFIG_USE_BASIC: 
+@E2K_AUTOCONFIG_USE_NTLM: 
+@E2K_AUTOCONFIG_USE_EITHER: 
+
+<!-- ##### ENUM E2kAutoconfigResult ##### -->
+<para>
+
+</para>
+
+@E2K_AUTOCONFIG_OK: 
+@E2K_AUTOCONFIG_REDIRECT: 
+@E2K_AUTOCONFIG_TRY_SSL: 
+@E2K_AUTOCONFIG_AUTH_ERROR: 
+@E2K_AUTOCONFIG_AUTH_ERROR_TRY_DOMAIN: 
+@E2K_AUTOCONFIG_AUTH_ERROR_TRY_BASIC: 
+@E2K_AUTOCONFIG_AUTH_ERROR_TRY_NTLM: 
+@E2K_AUTOCONFIG_EXCHANGE_5_5: 
+@E2K_AUTOCONFIG_NOT_EXCHANGE: 
+@E2K_AUTOCONFIG_NO_OWA: 
+@E2K_AUTOCONFIG_NO_MAILBOX: 
+@E2K_AUTOCONFIG_CANT_BPROPFIND: 
+@E2K_AUTOCONFIG_CANT_RESOLVE: 
+@E2K_AUTOCONFIG_CANT_CONNECT: 
+@E2K_AUTOCONFIG_CANCELLED: 
+@E2K_AUTOCONFIG_FAILED: 
+
+<!-- ##### FUNCTION e2k_autoconfig_new ##### -->
+<para>
+
+</para>
+
+@owa_uri: 
+@username: 
+@password: 
+@auth_pref: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_free ##### -->
+<para>
+
+</para>
+
+@ac: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_set_owa_uri ##### -->
+<para>
+
+</para>
+
+@ac: 
+@owa_uri: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_set_gc_server ##### -->
+<para>
+
+</para>
+
+@ac: 
+@gc_server: 
+@gal_limit: 
+@gal_auth: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_set_username ##### -->
+<para>
+
+</para>
+
+@ac: 
+@username: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_set_password ##### -->
+<para>
+
+</para>
+
+@ac: 
+@password: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_get_context ##### -->
+<para>
+
+</para>
+
+@ac: 
+@op: 
+@result: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_check_exchange ##### -->
+<para>
+
+</para>
+
+@ac: 
+@op: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_get_global_catalog ##### -->
+<para>
+
+</para>
+
+@ac: 
+@op: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_check_global_catalog ##### -->
+<para>
+
+</para>
+
+@ac: 
+@op: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_autoconfig_lookup_option ##### -->
+<para>
+
+</para>
+
+@option: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-context-private.sgml b/docs/reference/tmpl/e2k-context-private.sgml
index a9efb81..332b28d 100644
--- a/docs/reference/tmpl/e2k-context-private.sgml
+++ b/docs/reference/tmpl/e2k-context-private.sgml
@@ -19,3 +19,70 @@ currently also used by mail-stub-exchange.c.)
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION e2k_soup_message_new ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@uri: 
+@method: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_soup_message_new_full ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@uri: 
+@method: 
+@content_type: 
+@use: 
+@body: 
+@length: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_queue_message ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@msg: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_context_send_message ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@msg: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_fba ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@failed_msg: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_get_last_timestamp ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-context.sgml b/docs/reference/tmpl/e2k-context.sgml
index c837cd3..5fbfeb8 100644
--- a/docs/reference/tmpl/e2k-context.sgml
+++ b/docs/reference/tmpl/e2k-context.sgml
@@ -22,3 +22,327 @@ E2kContext API</link>.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kContext ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL E2kContext::redirect ##### -->
+<para>
+
+</para>
+
+@e2kcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### FUNCTION e2k_context_new ##### -->
+<para>
+
+</para>
+
+@uri: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_set_auth ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@username: 
+@domain: 
+@authmech: 
+@password: 
+
+
+<!-- ##### FUNCTION e2k_context_get ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@content_type: 
+@response: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_get_owa ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@claim_ie: 
+@response: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_put ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@content_type: 
+@body: 
+@length: 
+@repl_uid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_post ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@content_type: 
+@body: 
+@length: 
+@location: 
+@repl_uid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_proppatch ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@props: 
+@create: 
+@repl_uid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_bproppatch_start ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@hrefs: 
+@nhrefs: 
+@props: 
+@create: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION E2kContextTestCallback ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@test_name: 
+@user_data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_put_new ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@folder_uri: 
+@object_name: 
+@test_callback: 
+@user_data: 
+@content_type: 
+@body: 
+@length: 
+@location: 
+@repl_uid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_proppatch_new ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@folder_uri: 
+@object_name: 
+@test_callback: 
+@user_data: 
+@props: 
+@location: 
+@repl_uid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_propfind ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@props: 
+@nprops: 
+@results: 
+@nresults: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_bpropfind_start ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@hrefs: 
+@nhrefs: 
+@props: 
+@nprops: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_search_start ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@props: 
+@nprops: 
+@rn: 
+@orderby: 
+@ascending: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_delete ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_bdelete_start ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@hrefs: 
+@nhrefs: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_mkcol ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@uri: 
+@props: 
+@permanent_url: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_transfer_start ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@source_folder: 
+@dest_folder: 
+@source_hrefs: 
+@delete_originals: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_context_transfer_dir ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@source_href: 
+@dest_href: 
+@delete_original: 
+@permanent_url: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kContextChangeType ##### -->
+<para>
+
+</para>
+
+@E2K_CONTEXT_OBJECT_CHANGED: 
+@E2K_CONTEXT_OBJECT_ADDED: 
+@E2K_CONTEXT_OBJECT_REMOVED: 
+@E2K_CONTEXT_OBJECT_MOVED: 
+
+<!-- ##### USER_FUNCTION E2kContextChangeCallback ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@uri: 
+@type: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_context_subscribe ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@uri: 
+@type: 
+@min_interval: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_context_unsubscribe ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@uri: 
+
+
diff --git a/docs/reference/tmpl/e2k-freebusy.sgml b/docs/reference/tmpl/e2k-freebusy.sgml
index c609623..b33cf8d 100644
--- a/docs/reference/tmpl/e2k-freebusy.sgml
+++ b/docs/reference/tmpl/e2k-freebusy.sgml
@@ -17,3 +17,97 @@ This code is not currently used.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kFreebusy ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM E2kBusyStatus ##### -->
+<para>
+
+</para>
+
+@E2K_BUSYSTATUS_FREE: 
+@E2K_BUSYSTATUS_TENTATIVE: 
+@E2K_BUSYSTATUS_BUSY: 
+@E2K_BUSYSTATUS_OOF: 
+@E2K_BUSYSTATUS_MAX: 
+@E2K_BUSYSTATUS_ALL: 
+
+<!-- ##### STRUCT E2kFreebusyEvent ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_freebusy_new ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@public_uri: 
+@dn: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_reset ##### -->
+<para>
+
+</para>
+
+@fb: 
+@nmonths: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_add_interval ##### -->
+<para>
+
+</para>
+
+@fb: 
+@busystatus: 
+@start: 
+@end: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_clear_interval ##### -->
+<para>
+
+</para>
+
+@fb: 
+@start: 
+@end: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_add_from_calendar_uri ##### -->
+<para>
+
+</para>
+
+@fb: 
+@uri: 
+@start_tt: 
+@end_tt: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_save ##### -->
+<para>
+
+</para>
+
+@fb: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_freebusy_destroy ##### -->
+<para>
+
+</para>
+
+@fb: 
+
+
diff --git a/docs/reference/tmpl/e2k-global-catalog.sgml b/docs/reference/tmpl/e2k-global-catalog.sgml
index cde98ea..0662c04 100644
--- a/docs/reference/tmpl/e2k-global-catalog.sgml
+++ b/docs/reference/tmpl/e2k-global-catalog.sgml
@@ -34,3 +34,163 @@ Exchange server their mail is on, or what their SID is.</para></listitem>
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kGlobalCatalog ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_global_catalog_new ##### -->
+<para>
+
+</para>
+
+@server: 
+@response_limit: 
+@user: 
+@domain: 
+@password: 
+@use_auth: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_global_catalog_get_ldap ##### -->
+<para>
+
+</para>
+
+@gc: 
+@op: 
+@ldap_error: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kGlobalCatalogStatus ##### -->
+<para>
+
+</para>
+
+@E2K_GLOBAL_CATALOG_OK: 
+@E2K_GLOBAL_CATALOG_NO_SUCH_USER: 
+@E2K_GLOBAL_CATALOG_NO_DATA: 
+@E2K_GLOBAL_CATALOG_BAD_DATA: 
+@E2K_GLOBAL_CATALOG_EXISTS: 
+@E2K_GLOBAL_CATALOG_AUTH_FAILED: 
+@E2K_GLOBAL_CATALOG_CANCELLED: 
+@E2K_GLOBAL_CATALOG_ERROR: 
+
+<!-- ##### ENUM E2kGlobalCatalogLookupType ##### -->
+<para>
+
+</para>
+
+@E2K_GLOBAL_CATALOG_LOOKUP_BY_EMAIL: 
+@E2K_GLOBAL_CATALOG_LOOKUP_BY_DN: 
+@E2K_GLOBAL_CATALOG_LOOKUP_BY_LEGACY_EXCHANGE_DN: 
+
+<!-- ##### ENUM E2kGlobalCatalogLookupFlags ##### -->
+<para>
+
+</para>
+
+@E2K_GLOBAL_CATALOG_LOOKUP_SID: 
+@E2K_GLOBAL_CATALOG_LOOKUP_EMAIL: 
+@E2K_GLOBAL_CATALOG_LOOKUP_MAILBOX: 
+@E2K_GLOBAL_CATALOG_LOOKUP_LEGACY_EXCHANGE_DN: 
+@E2K_GLOBAL_CATALOG_LOOKUP_DELEGATES: 
+@E2K_GLOBAL_CATALOG_LOOKUP_DELEGATORS: 
+@E2K_GLOBAL_CATALOG_LOOKUP_QUOTA: 
+@E2K_GLOBAL_CATALOG_LOOKUP_ACCOUNT_CONTROL: 
+
+<!-- ##### STRUCT E2kGlobalCatalogEntry ##### -->
+<para>
+
+</para>
+
+@dn: 
+@display_name: 
+@sid: 
+@email: 
+@exchange_server: 
+@mailbox: 
+@legacy_exchange_dn: 
+@delegates: 
+@delegators: 
+@quota_warn: 
+@quota_nosend: 
+@quota_norecv: 
+@user_account_control: 
+@mask: 
+
+<!-- ##### FUNCTION e2k_global_catalog_lookup ##### -->
+<para>
+
+</para>
+
+@gc: 
+@op: 
+@type: 
+@key: 
+@flags: 
+@entry_p: 
+@Returns: 
+
+
+<!-- ##### MACRO e2k_global_catalog_entry_free ##### -->
+<para>
+
+</para>
+
+@gc: 
+@entry: 
+
+
+<!-- ##### USER_FUNCTION E2kGlobalCatalogCallback ##### -->
+<para>
+
+</para>
+
+@gc: 
+@status: 
+@entry: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_global_catalog_async_lookup ##### -->
+<para>
+
+</para>
+
+@gc: 
+@op: 
+@type: 
+@key: 
+@flags: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_global_catalog_add_delegate ##### -->
+<para>
+
+</para>
+
+@gc: 
+@op: 
+@self_dn: 
+@delegate_dn: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_global_catalog_remove_delegate ##### -->
+<para>
+
+</para>
+
+@gc: 
+@op: 
+@self_dn: 
+@delegate_dn: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-http-utils.sgml b/docs/reference/tmpl/e2k-http-utils.sgml
index a6005e0..30f9814 100644
--- a/docs/reference/tmpl/e2k-http-utils.sgml
+++ b/docs/reference/tmpl/e2k-http-utils.sgml
@@ -17,3 +17,83 @@ HTTP utility functions
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### TYPEDEF E2kHTTPStatus ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_TRANSPORT_ERROR ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_INFORMATIONAL ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_SUCCESSFUL ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_REDIRECTION ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_CLIENT_ERROR ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### MACRO E2K_HTTP_STATUS_IS_SERVER_ERROR ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### FUNCTION e2k_http_parse_date ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_http_parse_status ##### -->
+<para>
+
+</para>
+
+@status_line: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_http_accept_language ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-kerberos.sgml b/docs/reference/tmpl/e2k-kerberos.sgml
index e3af579..72e7360 100644
--- a/docs/reference/tmpl/e2k-kerberos.sgml
+++ b/docs/reference/tmpl/e2k-kerberos.sgml
@@ -17,3 +17,40 @@ Kerberos utilities
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### ENUM E2kKerberosResult ##### -->
+<para>
+
+</para>
+
+@E2K_KERBEROS_OK: 
+@E2K_KERBEROS_USER_UNKNOWN: 
+@E2K_KERBEROS_PASSWORD_INCORRECT: 
+@E2K_KERBEROS_PASSWORD_EXPIRED: 
+@E2K_KERBEROS_PASSWORD_TOO_WEAK: 
+@E2K_KERBEROS_KDC_UNREACHABLE: 
+@E2K_KERBEROS_TIME_SKEW: 
+@E2K_KERBEROS_FAILED: 
+
+<!-- ##### FUNCTION e2k_kerberos_change_password ##### -->
+<para>
+
+</para>
+
+@user: 
+@domain: 
+@old_password: 
+@new_password: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_kerberos_check_password ##### -->
+<para>
+
+</para>
+
+@user: 
+@domain: 
+@password: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-operation-private.sgml b/docs/reference/tmpl/e2k-operation-private.sgml
index 0be291f..72c5112 100644
--- a/docs/reference/tmpl/e2k-operation-private.sgml
+++ b/docs/reference/tmpl/e2k-operation-private.sgml
@@ -18,3 +18,32 @@ These are the #E2kOperation methods used internally by #E2kContext and
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### USER_FUNCTION E2kOperationCancelFunc ##### -->
+<para>
+
+</para>
+
+@op: 
+@owner: 
+@data: 
+
+
+<!-- ##### FUNCTION e2k_operation_start ##### -->
+<para>
+
+</para>
+
+@op: 
+@canceller: 
+@owner: 
+@data: 
+
+
+<!-- ##### FUNCTION e2k_operation_finish ##### -->
+<para>
+
+</para>
+
+@op: 
+
+
diff --git a/docs/reference/tmpl/e2k-operation.sgml b/docs/reference/tmpl/e2k-operation.sgml
index fd76563..ffeded9 100644
--- a/docs/reference/tmpl/e2k-operation.sgml
+++ b/docs/reference/tmpl/e2k-operation.sgml
@@ -19,3 +19,42 @@ cancellable steps).
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kOperation ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_operation_init ##### -->
+<para>
+
+</para>
+
+@op: 
+
+
+<!-- ##### FUNCTION e2k_operation_cancel ##### -->
+<para>
+
+</para>
+
+@op: 
+
+
+<!-- ##### FUNCTION e2k_operation_is_cancelled ##### -->
+<para>
+
+</para>
+
+@op: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_operation_free ##### -->
+<para>
+
+</para>
+
+@op: 
+
+
diff --git a/docs/reference/tmpl/e2k-properties.sgml b/docs/reference/tmpl/e2k-properties.sgml
index 2769202..209376d 100644
--- a/docs/reference/tmpl/e2k-properties.sgml
+++ b/docs/reference/tmpl/e2k-properties.sgml
@@ -17,3 +17,321 @@ WebDAV properties
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### TYPEDEF E2kProperties ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_properties_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_properties_copy ##### -->
+<para>
+
+</para>
+
+@props: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_properties_empty ##### -->
+<para>
+
+</para>
+
+@props: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_properties_free ##### -->
+<para>
+
+</para>
+
+@props: 
+
+
+<!-- ##### FUNCTION e2k_properties_get_prop ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_properties_remove ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+
+
+<!-- ##### ENUM E2kPropType ##### -->
+<para>
+
+</para>
+
+@E2K_PROP_TYPE_UNKNOWN: 
+@E2K_PROP_TYPE_STRING: 
+@E2K_PROP_TYPE_BINARY: 
+@E2K_PROP_TYPE_STRING_ARRAY: 
+@E2K_PROP_TYPE_BINARY_ARRAY: 
+@E2K_PROP_TYPE_XML: 
+@E2K_PROP_TYPE_INT: 
+@E2K_PROP_TYPE_INT_ARRAY: 
+@E2K_PROP_TYPE_BOOL: 
+@E2K_PROP_TYPE_FLOAT: 
+@E2K_PROP_TYPE_DATE: 
+
+<!-- ##### MACRO E2K_PROP_TYPE_IS_ARRAY ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_string ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_string_array ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_binary ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_binary_array ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_int ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_int_array ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_xml ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_bool ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_float ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_date ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_type_as_string ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@type: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_properties_set_type_as_string_array ##### -->
+<para>
+
+</para>
+
+@props: 
+@propname: 
+@type: 
+@value: 
+
+
+<!-- ##### USER_FUNCTION E2kPropertiesForeachFunc ##### -->
+<para>
+
+</para>
+
+@propname: 
+@type: 
+@value: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_properties_foreach ##### -->
+<para>
+
+</para>
+
+@props: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_properties_foreach_removed ##### -->
+<para>
+
+</para>
+
+@props: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### USER_FUNCTION E2kPropertiesForeachNamespaceFunc ##### -->
+<para>
+
+</para>
+
+@namespace: 
+@abbrev: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_properties_foreach_namespace ##### -->
+<para>
+
+</para>
+
+@props: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_prop_namespace_name ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_prop_namespace_abbrev ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_prop_property_name ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_prop_proptag ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_proptag_prop ##### -->
+<para>
+
+</para>
+
+@proptag: 
+@Returns: 
+
+
+<!-- ##### MACRO E2K_PROPTAG_TYPE ##### -->
+<para>
+
+</para>
+
+@proptag: 
+
+
+<!-- ##### MACRO E2K_PROPTAG_ID ##### -->
+<para>
+
+</para>
+
+@proptag: 
+
+
diff --git a/docs/reference/tmpl/e2k-restriction-vapor.sgml b/docs/reference/tmpl/e2k-restriction-vapor.sgml
index f545fc6..c9bc295 100644
--- a/docs/reference/tmpl/e2k-restriction-vapor.sgml
+++ b/docs/reference/tmpl/e2k-restriction-vapor.sgml
@@ -17,3 +17,40 @@ E2kRestriction (vaporware)
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### ENUM E2kRestrictionType ##### -->
+<para>
+
+</para>
+
+@E2K_RESTRICTION_AND: 
+@E2K_RESTRICTION_OR: 
+@E2K_RESTRICTION_NOT: 
+@E2K_RESTRICTION_CONTENT: 
+@E2K_RESTRICTION_PROPERTY: 
+@E2K_RESTRICTION_COMPAREPROPS: 
+@E2K_RESTRICTION_BITMASK: 
+@E2K_RESTRICTION_SIZE: 
+@E2K_RESTRICTION_EXIST: 
+@E2K_RESTRICTION_SUBRESTRICTION: 
+@E2K_RESTRICTION_COMMENT: 
+
+<!-- ##### FUNCTION e2k_restriction_extract ##### -->
+<para>
+
+</para>
+
+@data: 
+@len: 
+@rn: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_append ##### -->
+<para>
+
+</para>
+
+@ba: 
+@rn: 
+
+
diff --git a/docs/reference/tmpl/e2k-restriction.sgml b/docs/reference/tmpl/e2k-restriction.sgml
index f71ae79..6e6623c 100644
--- a/docs/reference/tmpl/e2k-restriction.sgml
+++ b/docs/reference/tmpl/e2k-restriction.sgml
@@ -17,3 +17,249 @@ Search criteria
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kRestriction ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_restriction_and ##### -->
+<para>
+
+</para>
+
+@nrns: 
+@rns: 
+@unref: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_andv ##### -->
+<para>
+
+</para>
+
+@rn: 
+@Varargs: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_or ##### -->
+<para>
+
+</para>
+
+@nrns: 
+@rns: 
+@unref: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_orv ##### -->
+<para>
+
+</para>
+
+@rn: 
+@Varargs: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_not ##### -->
+<para>
+
+</para>
+
+@rn: 
+@unref: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kRestrictionFuzzyLevel ##### -->
+<para>
+
+</para>
+
+@E2K_FL_FULLSTRING: 
+@E2K_FL_SUBSTRING: 
+@E2K_FL_PREFIX: 
+@E2K_FL_SUFFIX: 
+@E2K_FL_IGNORECASE: 
+@E2K_FL_IGNORENONSPACE: 
+@E2K_FL_LOOSE: 
+
+<!-- ##### MACRO E2K_FL_MATCH_TYPE ##### -->
+<para>
+
+</para>
+
+@fl: 
+
+
+<!-- ##### FUNCTION e2k_restriction_content ##### -->
+<para>
+
+</para>
+
+@propname: 
+@fuzzy_level: 
+@value: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kRestrictionRelop ##### -->
+<para>
+
+</para>
+
+@E2K_RELOP_LT: 
+@E2K_RELOP_LE: 
+@E2K_RELOP_GT: 
+@E2K_RELOP_GE: 
+@E2K_RELOP_EQ: 
+@E2K_RELOP_NE: 
+@E2K_RELOP_RE: 
+@E2K_RELOP_DL_MEMBER: 
+
+<!-- ##### FUNCTION e2k_restriction_prop_bool ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_prop_int ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_prop_date ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_prop_string ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_prop_binary ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@data: 
+@len: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_compare ##### -->
+<para>
+
+</para>
+
+@propname1: 
+@relop: 
+@propname2: 
+@Returns: 
+
+
+<!-- ##### ENUM E2kRestrictionBitop ##### -->
+<para>
+
+</para>
+
+@E2K_BMR_EQZ: 
+@E2K_BMR_NEZ: 
+
+<!-- ##### FUNCTION e2k_restriction_bitmask ##### -->
+<para>
+
+</para>
+
+@propname: 
+@bitop: 
+@mask: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_size ##### -->
+<para>
+
+</para>
+
+@propname: 
+@relop: 
+@size: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_exist ##### -->
+<para>
+
+</para>
+
+@propname: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_sub ##### -->
+<para>
+
+</para>
+
+@subtable: 
+@rn: 
+@unref: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_ref ##### -->
+<para>
+
+</para>
+
+@rn: 
+
+
+<!-- ##### FUNCTION e2k_restriction_unref ##### -->
+<para>
+
+</para>
+
+@rn: 
+
+
+<!-- ##### FUNCTION e2k_restriction_to_sql ##### -->
+<para>
+
+</para>
+
+@rn: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-result-private.sgml b/docs/reference/tmpl/e2k-result-private.sgml
index 7201420..5a45c74 100644
--- a/docs/reference/tmpl/e2k-result-private.sgml
+++ b/docs/reference/tmpl/e2k-result-private.sgml
@@ -17,3 +17,89 @@ These are the #E2kOperation methods used internally by #E2kContext.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION e2k_results_array_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_results_array_add_from_multistatus ##### -->
+<para>
+
+</para>
+
+@results_array: 
+@msg: 
+
+
+<!-- ##### FUNCTION e2k_results_array_free ##### -->
+<para>
+
+</para>
+
+@results_array: 
+@free_results: 
+
+
+<!-- ##### FUNCTION e2k_results_from_multistatus ##### -->
+<para>
+
+</para>
+
+@msg: 
+@results: 
+@nresults: 
+
+
+<!-- ##### FUNCTION e2k_results_copy ##### -->
+<para>
+
+</para>
+
+@results: 
+@nresults: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION E2kResultIterFetchFunc ##### -->
+<para>
+
+</para>
+
+@iter: 
+@ctx: 
+@op: 
+@results: 
+@nresults: 
+@first: 
+@total: 
+@user_data: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION E2kResultIterFreeFunc ##### -->
+<para>
+
+</para>
+
+@iter: 
+@user_data: 
+
+
+<!-- ##### FUNCTION e2k_result_iter_new ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@op: 
+@ascending: 
+@total: 
+@fetch_func: 
+@free_func: 
+@user_data: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-result.sgml b/docs/reference/tmpl/e2k-result.sgml
index 853f99b..3aa40aa 100644
--- a/docs/reference/tmpl/e2k-result.sgml
+++ b/docs/reference/tmpl/e2k-result.sgml
@@ -17,3 +17,63 @@ WebDAV Multi-Status results
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kResult ##### -->
+<para>
+
+</para>
+
+@href: 
+@status: 
+@props: 
+
+<!-- ##### FUNCTION e2k_results_free ##### -->
+<para>
+
+</para>
+
+@results: 
+@nresults: 
+
+
+<!-- ##### TYPEDEF E2kResultIter ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_result_iter_next ##### -->
+<para>
+
+</para>
+
+@iter: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_result_iter_get_total ##### -->
+<para>
+
+</para>
+
+@iter: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_result_iter_get_index ##### -->
+<para>
+
+</para>
+
+@iter: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_result_iter_free ##### -->
+<para>
+
+</para>
+
+@iter: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-rule.sgml b/docs/reference/tmpl/e2k-rule.sgml
index a09cf8c..0a65d4d 100644
--- a/docs/reference/tmpl/e2k-rule.sgml
+++ b/docs/reference/tmpl/e2k-rule.sgml
@@ -22,3 +22,314 @@ information in this file about how server-side rules work is wrong.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kRule ##### -->
+<para>
+
+</para>
+
+@name: 
+@sequence: 
+@state: 
+@user_flags: 
+@level: 
+@condition_lcid: 
+@condition: 
+@actions: 
+@provider: 
+@provider_data: 
+
+<!-- ##### STRUCT E2kRules ##### -->
+<para>
+
+</para>
+
+@version: 
+@codepage: 
+@rules: 
+
+<!-- ##### ENUM E2kRuleState ##### -->
+<para>
+
+</para>
+
+@E2K_RULE_STATE_DISABLED: 
+@E2K_RULE_STATE_ENABLED: 
+@E2K_RULE_STATE_ERROR: 
+@E2K_RULE_STATE_ONLY_WHEN_OOF: 
+@E2K_RULE_STATE_KEEP_OOF_HISTORY: 
+@E2K_RULE_STATE_EXIT_LEVEL: 
+@E2K_RULE_STATE_CLEAR_OOF_HISTORY: 
+
+<!-- ##### FUNCTION e2k_rules_from_binary ##### -->
+<para>
+
+</para>
+
+@rules_data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rules_to_binary ##### -->
+<para>
+
+</para>
+
+@rules: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rules_to_xml ##### -->
+<para>
+
+</para>
+
+@rules: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rules_free ##### -->
+<para>
+
+</para>
+
+@rules: 
+
+
+<!-- ##### FUNCTION e2k_rule_free ##### -->
+<para>
+
+</para>
+
+@rule: 
+
+
+<!-- ##### STRUCT E2kRuleProp ##### -->
+<para>
+
+</para>
+
+@name: 
+@proptag: 
+
+<!-- ##### FUNCTION e2k_rule_prop_set ##### -->
+<para>
+
+</para>
+
+@prop: 
+@propname: 
+
+
+<!-- ##### STRUCT E2kPropValue ##### -->
+<para>
+
+</para>
+
+@prop: 
+@type: 
+@value: 
+
+<!-- ##### FUNCTION e2k_rule_append_proptag ##### -->
+<para>
+
+</para>
+
+@ba: 
+@prop: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_proptag ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_propvalue ##### -->
+<para>
+
+</para>
+
+@ba: 
+@pv: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_propvalue ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@pv: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_free_propvalue ##### -->
+<para>
+
+</para>
+
+@pv: 
+
+
+<!-- ##### FUNCTION e2k_rule_write_uint32 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@val: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_uint32 ##### -->
+<para>
+
+</para>
+
+@ba: 
+@val: 
+
+
+<!-- ##### FUNCTION e2k_rule_read_uint32 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_uint32 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@val: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_write_uint16 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@val: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_uint16 ##### -->
+<para>
+
+</para>
+
+@ba: 
+@val: 
+
+
+<!-- ##### FUNCTION e2k_rule_read_uint16 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_uint16 ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@val: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_byte ##### -->
+<para>
+
+</para>
+
+@ba: 
+@val: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_byte ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@val: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_string ##### -->
+<para>
+
+</para>
+
+@ba: 
+@str: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_string ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_unicode ##### -->
+<para>
+
+</para>
+
+@ba: 
+@str: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_unicode ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_rule_append_binary ##### -->
+<para>
+
+</para>
+
+@ba: 
+@data: 
+
+
+<!-- ##### FUNCTION e2k_rule_extract_binary ##### -->
+<para>
+
+</para>
+
+@ptr: 
+@len: 
+@data: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-security-descriptor.sgml b/docs/reference/tmpl/e2k-security-descriptor.sgml
index e50af8e..d2c8dc8 100644
--- a/docs/reference/tmpl/e2k-security-descriptor.sgml
+++ b/docs/reference/tmpl/e2k-security-descriptor.sgml
@@ -38,3 +38,203 @@ parent in order to be able to access the object.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kSecurityDescriptor ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_new ##### -->
+<para>
+
+</para>
+
+@xml_form: 
+@binary_form: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_to_binary ##### -->
+<para>
+
+</para>
+
+@sd: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_get_sids ##### -->
+<para>
+
+</para>
+
+@sd: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_get_default ##### -->
+<para>
+
+</para>
+
+@sd: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_remove_sid ##### -->
+<para>
+
+</para>
+
+@sd: 
+@sid: 
+
+
+<!-- ##### ENUM E2kPermissionsRole ##### -->
+<para>
+
+</para>
+
+@E2K_PERMISSIONS_ROLE_OWNER: 
+@E2K_PERMISSIONS_ROLE_PUBLISHING_EDITOR: 
+@E2K_PERMISSIONS_ROLE_EDITOR: 
+@E2K_PERMISSIONS_ROLE_PUBLISHING_AUTHOR: 
+@E2K_PERMISSIONS_ROLE_AUTHOR: 
+@E2K_PERMISSIONS_ROLE_NON_EDITING_AUTHOR: 
+@E2K_PERMISSIONS_ROLE_REVIEWER: 
+@E2K_PERMISSIONS_ROLE_CONTRIBUTOR: 
+@E2K_PERMISSIONS_ROLE_NONE: 
+@E2K_PERMISSIONS_ROLE_NUM_ROLES: 
+@E2K_PERMISSIONS_ROLE_CUSTOM: 
+
+<!-- ##### FUNCTION e2k_permissions_role_get_name ##### -->
+<para>
+
+</para>
+
+@role: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_permissions_role_get_perms ##### -->
+<para>
+
+</para>
+
+@role: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_permissions_role_find ##### -->
+<para>
+
+</para>
+
+@perms: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_get_permissions ##### -->
+<para>
+
+</para>
+
+@sd: 
+@sid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_security_descriptor_set_permissions ##### -->
+<para>
+
+</para>
+
+@sd: 
+@sid: 
+@perms: 
+
+
+<!-- ##### MACRO E2K_PERMISSION_READ_ANY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_CREATE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_EDIT_OWNED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_DELETE_OWNED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_EDIT_ANY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_DELETE_ANY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_CREATE_SUBFOLDER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_OWNER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_CONTACT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_FOLDER_VISIBLE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_EDIT_MASK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_PERMISSION_DELETE_MASK ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/tmpl/e2k-sid.sgml b/docs/reference/tmpl/e2k-sid.sgml
index d3035c4..73fdc22 100644
--- a/docs/reference/tmpl/e2k-sid.sgml
+++ b/docs/reference/tmpl/e2k-sid.sgml
@@ -32,3 +32,125 @@ e2k_global_catalog_lookup(), #E2kSecurityDescriptor
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kSid ##### -->
+<para>
+
+</para>
+
+@parent: 
+@priv: 
+
+<!-- ##### ENUM E2kSidType ##### -->
+<para>
+
+</para>
+
+@E2K_SID_TYPE_INVALID: 
+@E2K_SID_TYPE_USER: 
+@E2K_SID_TYPE_ALIAS: 
+@E2K_SID_TYPE_GROUP: 
+@E2K_SID_TYPE_WELL_KNOWN_GROUP: 
+@E2K_SID_TYPE_DOMAIN: 
+@E2K_SID_TYPE_DELETED_ACCOUNT: 
+@E2K_SID_TYPE_UNKNOWN: 
+@E2K_SID_TYPE_COMPUTER: 
+
+<!-- ##### FUNCTION e2k_sid_new_from_string_sid ##### -->
+<para>
+
+</para>
+
+@type: 
+@string_sid: 
+@display_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_sid_new_from_binary_sid ##### -->
+<para>
+
+</para>
+
+@type: 
+@binary_sid: 
+@display_name: 
+@Returns: 
+
+
+<!-- ##### MACRO E2K_SID_WKS_EVERYONE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO E2K_SID_WKS_ANONYMOUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION e2k_sid_get_sid_type ##### -->
+<para>
+
+</para>
+
+@sid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_sid_get_string_sid ##### -->
+<para>
+
+</para>
+
+@sid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_sid_get_binary_sid ##### -->
+<para>
+
+</para>
+
+@sid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_sid_get_display_name ##### -->
+<para>
+
+</para>
+
+@sid: 
+@Returns: 
+
+
+<!-- ##### MACRO E2K_SID_BINARY_SID_LEN ##### -->
+<para>
+
+</para>
+
+@bsid: 
+
+
+<!-- ##### FUNCTION e2k_sid_binary_sid_hash ##### -->
+<para>
+
+</para>
+
+@key: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_sid_binary_sid_equal ##### -->
+<para>
+
+</para>
+
+@a: 
+@b: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-uri.sgml b/docs/reference/tmpl/e2k-uri.sgml
index 804f8c9..2424505 100644
--- a/docs/reference/tmpl/e2k-uri.sgml
+++ b/docs/reference/tmpl/e2k-uri.sgml
@@ -17,3 +17,106 @@ URI utility routines
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### STRUCT E2kUri ##### -->
+<para>
+
+</para>
+
+@protocol: 
+@user: 
+@domain: 
+@authmech: 
+@passwd: 
+@host: 
+@port: 
+@path: 
+@params: 
+@query: 
+@fragment: 
+
+<!-- ##### FUNCTION e2k_uri_new ##### -->
+<para>
+
+</para>
+
+@uri_string: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_uri_free ##### -->
+<para>
+
+</para>
+
+@uri: 
+
+
+<!-- ##### FUNCTION e2k_uri_get_param ##### -->
+<para>
+
+</para>
+
+@uri: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_uri_decode ##### -->
+<para>
+
+</para>
+
+@part: 
+
+
+<!-- ##### FUNCTION e2k_uri_encode ##### -->
+<para>
+
+</para>
+
+@in: 
+@wss_encode: 
+@extra_enc_chars: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_uri_append_encoded ##### -->
+<para>
+
+</para>
+
+@str: 
+@in: 
+@wss_encode: 
+@extra_enc_chars: 
+
+
+<!-- ##### FUNCTION e2k_uri_path ##### -->
+<para>
+
+</para>
+
+@uri_string: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_uri_concat ##### -->
+<para>
+
+</para>
+
+@uri_prefix: 
+@tail: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_uri_relative ##### -->
+<para>
+
+</para>
+
+@uri_prefix: 
+@uri: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-utils.sgml b/docs/reference/tmpl/e2k-utils.sgml
index 135aa08..e9619ae 100644
--- a/docs/reference/tmpl/e2k-utils.sgml
+++ b/docs/reference/tmpl/e2k-utils.sgml
@@ -17,3 +17,189 @@ Random utility functions
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION e2k_parse_timestamp ##### -->
+<para>
+
+</para>
+
+@timestamp: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_make_timestamp ##### -->
+<para>
+
+</para>
+
+@when: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_make_timestamp_rfc822 ##### -->
+<para>
+
+</para>
+
+@when: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_systime_to_time_t ##### -->
+<para>
+
+</para>
+
+@systime: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_systime_from_time_t ##### -->
+<para>
+
+</para>
+
+@tt: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_filetime_to_time_t ##### -->
+<para>
+
+</para>
+
+@filetime: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_filetime_from_time_t ##### -->
+<para>
+
+</para>
+
+@tt: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_lf_to_crlf ##### -->
+<para>
+
+</para>
+
+@in: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_crlf_to_lf ##### -->
+<para>
+
+</para>
+
+@in: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_strdup_with_trailing_slash ##### -->
+<para>
+
+</para>
+
+@path: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_entryid_to_dn ##### -->
+<para>
+
+</para>
+
+@entryid: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_ascii_strcase_equal ##### -->
+<para>
+
+</para>
+
+@v: 
+@v2: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_ascii_strcase_hash ##### -->
+<para>
+
+</para>
+
+@v: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_restriction_folders_only ##### -->
+<para>
+
+</para>
+
+@rn: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_entryid_generate_oneoff ##### -->
+<para>
+
+</para>
+
+@display_name: 
+@email: 
+@unicode: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_entryid_generate_local ##### -->
+<para>
+
+</para>
+
+@exchange_dn: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_entryid_generate_contact ##### -->
+<para>
+
+</para>
+
+@contact_entryid: 
+@nth_address: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_search_key_generate ##### -->
+<para>
+
+</para>
+
+@addrtype: 
+@address: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_entryid_to_permanenturl ##### -->
+<para>
+
+</para>
+
+@entryid: 
+@base_uri: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_permanenturl_to_entryid ##### -->
+<para>
+
+</para>
+
+@permanenturl: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/e2k-xml-utils.sgml b/docs/reference/tmpl/e2k-xml-utils.sgml
index fb6658b..2b3087f 100644
--- a/docs/reference/tmpl/e2k-xml-utils.sgml
+++ b/docs/reference/tmpl/e2k-xml-utils.sgml
@@ -17,3 +17,70 @@ XML utility functions
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION e2k_parse_xml ##### -->
+<para>
+
+</para>
+
+@buf: 
+@len: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_parse_html ##### -->
+<para>
+
+</para>
+
+@buf: 
+@len: 
+@Returns: 
+
+
+<!-- ##### MACRO E2K_IS_NODE ##### -->
+<para>
+
+</para>
+
+@node: 
+@nspace: 
+@nname: 
+
+
+<!-- ##### MACRO E2K_XML_HEADER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION e2k_g_string_append_xml_escaped ##### -->
+<para>
+
+</para>
+
+@string: 
+@value: 
+
+
+<!-- ##### FUNCTION e2k_xml_find ##### -->
+<para>
+
+</para>
+
+@node: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION e2k_xml_find_in ##### -->
+<para>
+
+</para>
+
+@node: 
+@top: 
+@name: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/mapi.sgml b/docs/reference/tmpl/mapi.sgml
index 4e4f033..4d0f8cc 100644
--- a/docs/reference/tmpl/mapi.sgml
+++ b/docs/reference/tmpl/mapi.sgml
@@ -17,3 +17,147 @@ MAPI and CDO constants
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### ENUM MapiAccess ##### -->
+<para>
+
+</para>
+
+@MAPI_ACCESS_MODIFY: 
+@MAPI_ACCESS_READ: 
+@MAPI_ACCESS_DELETE: 
+@MAPI_ACCESS_CREATE_HIERARCHY: 
+@MAPI_ACCESS_CREATE_CONTENTS: 
+@MAPI_ACCESS_CREATE_ASSOCIATED: 
+
+<!-- ##### ENUM CdoInstanceTypes ##### -->
+<para>
+
+</para>
+
+@cdoSingle: 
+@cdoMaster: 
+@cdoInstance: 
+@cdoException: 
+
+<!-- ##### ENUM MapiObjectType ##### -->
+<para>
+
+</para>
+
+@MAPI_STORE: 
+@MAPI_ADDRBOOK: 
+@MAPI_FOLDER: 
+@MAPI_ABCONT: 
+@MAPI_MESSAGE: 
+@MAPI_MAILUSER: 
+@MAPI_ATTACH: 
+@MAPI_DISTLIST: 
+@MAPI_PROFSECT: 
+@MAPI_STATUS: 
+@MAPI_SESSION: 
+@MAPI_FORMINFO: 
+
+<!-- ##### ENUM MapiPrDisplayType ##### -->
+<para>
+
+</para>
+
+@DT_MAILUSER: 
+@DT_DISTLIST: 
+@DT_FORUM: 
+@DT_AGENT: 
+@DT_ORGANIZATION: 
+@DT_PRIVATE_DISTLIST: 
+@DT_REMOTE_MAILUSER: 
+@DT_MODIFIABLE: 
+@DT_GLOBAL: 
+@DT_LOCAL: 
+@DT_WAN: 
+@DT_NOT_SPECIFIC: 
+@DT_FOLDER: 
+@DT_FOLDER_LINK: 
+@DT_FOLDER_SPECIAL: 
+
+<!-- ##### ENUM MapiPrRecipientType ##### -->
+<para>
+
+</para>
+
+@MAPI_ORIG: 
+@MAPI_TO: 
+@MAPI_CC: 
+@MAPI_BCC: 
+
+<!-- ##### ENUM MapiPrMessageFlags ##### -->
+<para>
+
+</para>
+
+@MAPI_MSGFLAG_READ: 
+@MAPI_MSGFLAG_UNMODIFIED: 
+@MAPI_MSGFLAG_SUBMIT: 
+@MAPI_MSGFLAG_UNSENT: 
+@MAPI_MSGFLAG_HASATTACH: 
+@MAPI_MSGFLAG_FROMME: 
+@MAPI_MSGFLAG_ASSOCIATED: 
+@MAPI_MSGFLAG_RESEND: 
+@MAPI_MSGFLAG_RN_PENDING: 
+@MAPI_MSGFLAG_NRN_PENDING: 
+@MAPI_MSGFLAG_ORIGIN_X400: 
+@MAPI_MSGFLAG_ORIGIN_INTERNET: 
+@MAPI_MSGFLAG_ORIGIN_MISC_EXT: 
+
+<!-- ##### ENUM MapiPrAction ##### -->
+<para>
+
+</para>
+
+@MAPI_ACTION_REPLIED: 
+@MAPI_ACTION_FORWARDED: 
+
+<!-- ##### ENUM MapiPrActionFlag ##### -->
+<para>
+
+</para>
+
+@MAPI_ACTION_FLAG_REPLIED_TO_SENDER: 
+@MAPI_ACTION_FLAG_REPLIED_TO_ALL: 
+@MAPI_ACTION_FLAG_FORWARDED: 
+
+<!-- ##### ENUM MapiPrFlagStatus ##### -->
+<para>
+
+</para>
+
+@MAPI_FOLLOWUP_UNFLAGGED: 
+@MAPI_FOLLOWUP_COMPLETED: 
+@MAPI_FOLLOWUP_FLAGGED: 
+
+<!-- ##### ENUM MapiPrPriority ##### -->
+<para>
+
+</para>
+
+@MAPI_PRIO_URGENT: 
+@MAPI_PRIO_NORMAL: 
+@MAPI_PRIO_NONURGENT: 
+
+<!-- ##### ENUM MapiPrSensitivity ##### -->
+<para>
+
+</para>
+
+@MAPI_SENSITIVITY_NONE: 
+@MAPI_SENSITIVITY_PERSONAL: 
+@MAPI_SENSITIVITY_PRIVATE: 
+@MAPI_SENSITIVITY_COMPANY_CONFIDENTIAL: 
+
+<!-- ##### ENUM MapiPrImportance ##### -->
+<para>
+
+</para>
+
+@MAPI_IMPORTANCE_LOW: 
+@MAPI_IMPORTANCE_NORMAL: 
+@MAPI_IMPORTANCE_HIGH: 
+
diff --git a/docs/reference/tmpl/test-utils.sgml b/docs/reference/tmpl/test-utils.sgml
index cf22ccf..9d4b131 100644
--- a/docs/reference/tmpl/test-utils.sgml
+++ b/docs/reference/tmpl/test-utils.sgml
@@ -17,3 +17,64 @@ Utility routines for libexchange test programs
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION test_main ##### -->
+<para>
+
+</para>
+
+@argc: 
+@argv: 
+
+
+<!-- ##### FUNCTION test_quit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION test_abort_if_http_error ##### -->
+<para>
+
+</para>
+
+@status: 
+
+
+<!-- ##### FUNCTION test_ask_password ##### -->
+<para>
+
+</para>
+
+@prompt: 
+@Returns: 
+
+
+<!-- ##### FUNCTION test_get_password ##### -->
+<para>
+
+</para>
+
+@user: 
+@host: 
+@Returns: 
+
+
+<!-- ##### FUNCTION test_get_context ##### -->
+<para>
+
+</para>
+
+@uri: 
+@Returns: 
+
+
+<!-- ##### FUNCTION test_get_gc ##### -->
+<para>
+
+</para>
+
+@server: 
+@Returns: 
+
+
diff --git a/docs/reference/tmpl/xntlm-des.sgml b/docs/reference/tmpl/xntlm-des.sgml
index 303d392..5af8f83 100644
--- a/docs/reference/tmpl/xntlm-des.sgml
+++ b/docs/reference/tmpl/xntlm-des.sgml
@@ -18,3 +18,28 @@ primarly for xntlm-internal use, but can also be used by other code.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### TYPEDEF XNTLM_DES_KS ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xntlm_deskey ##### -->
+<para>
+
+</para>
+
+@ks: 
+@key: 
+@decrypt: 
+
+
+<!-- ##### FUNCTION xntlm_des ##### -->
+<para>
+
+</para>
+
+@ks: 
+@block: 
+
+
diff --git a/docs/reference/tmpl/xntlm-md4.sgml b/docs/reference/tmpl/xntlm-md4.sgml
index 7ce2ed9..12c1c54 100644
--- a/docs/reference/tmpl/xntlm-md4.sgml
+++ b/docs/reference/tmpl/xntlm-md4.sgml
@@ -17,3 +17,13 @@ This is here for use by xntlm, but can also be used by other code.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION xntlm_md4sum ##### -->
+<para>
+
+</para>
+
+@in: 
+@nbytes: 
+@digest: 
+
+
diff --git a/docs/reference/tmpl/xntlm.sgml b/docs/reference/tmpl/xntlm.sgml
index 8a2326b..7c6ccf3 100644
--- a/docs/reference/tmpl/xntlm.sgml
+++ b/docs/reference/tmpl/xntlm.sgml
@@ -17,3 +17,37 @@ These functions are the main interface to the xntlm library.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### FUNCTION xntlm_negotiate ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION xntlm_parse_challenge ##### -->
+<para>
+
+</para>
+
+@challenge: 
+@len: 
+@nonce: 
+@nt_domain: 
+@w2k_domain: 
+@Returns: 
+
+
+<!-- ##### FUNCTION xntlm_authenticate ##### -->
+<para>
+
+</para>
+
+@nonce: 
+@domain: 
+@user: 
+@password: 
+@workstation: 
+@Returns: 
+
+
diff --git a/mail/Makefile.am b/mail/Makefile.am
index 2234058..c2f11f4 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -6,6 +6,9 @@ INCLUDES =							\
 	-I$(top_srcdir)						\
 	-I$(top_srcdir)/camel					\
 	-I$(top_srcdir)/storage  				\
+	-I$(top_srcdir)/server/lib				\
+	-I$(top_srcdir)/server/storage				\
+	-I$(top_builddir)/server/lib				\
 	-DG_LOG_DOMAIN=\"exchange-mail\"			\
 	$(EXTRA_GNOME_CFLAGS)					\
 	$(BONOBO_GNOME_CFLAGS)					\
@@ -23,4 +26,7 @@ libexchangemail_la_SOURCES =					\
 	mail-utils.c						\
 	mail-utils.h
 
+libexchangemail_la_LIBADD =					\
+	$(top_builddir)/server/storage/libexchange-storage.la
+
 -include $(top_srcdir)/git.mk
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 6b1b9d4..b28e45f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,6 +12,11 @@ camel/camel-exchange-store.c
 camel/camel-exchange-transport.c
 camel/camel-stub.c
 mail/mail-stub-exchange.c
+server/lib/e2k-autoconfig.c
+server/lib/e2k-security-descriptor.c
+server/storage/e-storage.c
+server/storage/exchange-account.c
+server/storage/exchange-hierarchy-foreign.c
 storage/GNOME_Evolution_Exchange_Storage.server.in.in
 storage/exchange-autoconfig-wizard.c
 storage/exchange-autoconfig-wizard.glade
diff --git a/server/Makefile.am b/server/Makefile.am
index c004e72..0809bf2 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -1 +1,3 @@
 SUBDIRS = xntlm lib storage
+
+-include $(top_srcdir)/git.mk
diff --git a/server/lib/Makefile.am b/server/lib/Makefile.am
index cdae2fb..ab64eab 100644
--- a/server/lib/Makefile.am
+++ b/server/lib/Makefile.am
@@ -1,14 +1,11 @@
-# Fix the code to not use E_DATA_SERVER_UI_CFLAGS
-
 INCLUDES =                                                      \
 	-DCONNECTOR_PREFIX=\""$(prefix)"\"			\
 	-I$(top_srcdir)						\
-	-I$(top_srcdir)/servers/exchange/xntlm			\
+	-I$(top_srcdir)/server/xntlm				\
 	$(LDAP_CFLAGS)						\
 	$(KRB5_CFLAGS)						\
 	$(SOUP_CFLAGS)						\
-	$(E_DATA_SERVER_CFLAGS)					\
-	$(E_DATA_SERVER_UI_CFLAGS)
+	$(SERVER_CFLAGS)
 
 noinst_LTLIBRARIES =						\
 	libexchange.la
@@ -83,6 +80,7 @@ libexchange_la_SOURCES =					\
 	e2k-freebusy.c						\
 	e2k-freebusy.h						\
 	e2k-global-catalog.c					\
+	e2k-global-catalog.h					\
 	e2k-global-catalog-ldap.h				\
 	e2k-http-utils.c					\
 	e2k-http-utils.h					\
@@ -115,30 +113,6 @@ libexchange_la_SOURCES =					\
 	$(KERBEROS_FILES)					\
 	mapi.h
 
-libexchangeincludedir = $(privincludedir)/exchange
-
-libexchangeinclude_HEADERS = 					\
-	e2k-autoconfig.h					\
-	e2k-context.h						\
-	e2k-freebusy.h						\
-	e2k-global-catalog.h					\
-	e2k-global-catalog-ldap.h				\
-	e2k-http-utils.h					\
-	e2k-marshal.h						\
-	e2k-operation.h						\
-	e2k-properties.h					\
-	e2k-propnames.h						\
-	e2k-restriction.h					\
-	e2k-result.h						\
-	e2k-security-descriptor.h				\
-	e2k-sid.h						\
-	e2k-types.h						\
-	e2k-uri.h						\
-	e2k-utils.h						\
-	e2k-validate.h						\
-	e2k-xml-utils.h						\
-	mapi.h
-
 EXTRA_DIST =							\
 	e2k-marshal.list					\
 	mapi-properties						\
@@ -148,3 +122,5 @@ EXTRA_DIST =							\
 
 dist-hook:
 	cd $(distdir); rm -f $(NODIST_FILES)
+
+-include $(top_srcdir)/git.mk
diff --git a/server/storage/Makefile.am b/server/storage/Makefile.am
index 6301f6a..2ccf034 100644
--- a/server/storage/Makefile.am
+++ b/server/storage/Makefile.am
@@ -1,10 +1,3 @@
-# Fix the code to not use E_DATA_SERVER_UI_CFLAGS
-
-if OS_WIN32
-WIN32_BOOTSTRAP_LIBS =					\
-	$(top_builddir)/win32/libedataserverui-1.2.la
-endif
-
 INCLUDES =							\
 	-DG_LOG_DOMAIN=\"evolution-exchange-storage\"		\
 	-DPREFIX=\"$(prefix)\"					\
@@ -13,20 +6,18 @@ INCLUDES =							\
 	-DLIBDIR=\""$(datadir)"\"	 			\
 	-DCONNECTOR_LOCALEDIR=\""$(localedir)\""		\
 	-DCONNECTOR_GLADEDIR=\""$(gladedir)"\"			\
-	-I$(top_builddir)/servers/exchange/lib			\
+	-I$(top_builddir)/server/lib				\
 	-I$(top_srcdir)						\
-	-I$(top_srcdir)/servers/exchange/lib			\
-	-I$(top_srcdir)/servers/exchange/xntlm			\
+	-I$(top_srcdir)/server/lib				\
+	-I$(top_srcdir)/server/xntlm				\
 	$(KRB5_CFLAGS)						\
 	$(LDAP_CFLAGS)						\
 	$(SOUP_CFLAGS)						\
-	$(E_DATA_SERVER_CFLAGS)					\
-	$(E_DATA_SERVER_UI_CFLAGS)
+	$(SERVER_CFLAGS)
 
-lib_LTLIBRARIES =						\
-	libexchange-storage-1.2.la
+lib_LTLIBRARIES = libexchange-storage.la
 
-libexchange_storage_1_2_la_SOURCES =				\
+libexchange_storage_la_SOURCES =				\
 	e-folder.c						\
 	e-folder.h						\
 	e-folder-exchange.c					\
@@ -39,6 +30,7 @@ libexchange_storage_1_2_la_SOURCES =				\
 	e-storage.h						\
 	exchange-account.c					\
 	exchange-account.h					\
+	exchange-constants.h					\
 	exchange-esource.c					\
 	exchange-esource.h					\
 	exchange-folder-size.c					\
@@ -59,45 +51,17 @@ libexchange_storage_1_2_la_SOURCES =				\
 	exchange-oof.h						\
 	exchange-types.h					
 
-libexchange_storage_1_2_la_LIBADD =				\
-	$(WIN32_BOOTSTRAP_LIBS)					\
-	$(top_builddir)/servers/exchange/lib/libexchange.la	\
-	$(top_builddir)/servers/exchange/xntlm/libxntlm.la	\
-	$(top_builddir)/libedataserver/libedataserver-1.2.la	\
-	$(E_DATA_SERVER_LIBS)					\
-	$(E_DATA_SERVER_UI_LIBS)				\
+libexchange_storage_la_LIBADD =				\
+	$(top_builddir)/server/lib/libexchange.la		\
+	$(top_builddir)/server/xntlm/libxntlm.la		\
+	$(SERVER_LIBS)						\
 	$(LDAP_LIBS)						\
 	$(SOUP_LIBS)						\
 	$(SOCKET_LIBS)
 
-libexchange_storage_1_2_la_LDFLAGS =				\
+libexchange_storage_la_LDFLAGS =				\
 	$(KRB5_LDFLAGS)						\
 	$(NO_UNDEFINED)						\
 	-version-info $(LIBEXCHANGE_STORAGE_CURRENT):$(LIBEXCHANGE_STORAGE_REVISION):$(LIBEXCHANGE_STORAGE_AGE)
 
-libexchange_storageincludedir = $(privincludedir)/exchange
-
-libexchange_storageinclude_HEADERS = 				\
-	e-folder.h						\
-	e-folder-exchange.h					\
-	e-storage.h						\
-	exchange-account.h					\
-	exchange-constants.h					\
-	exchange-folder-size.h					\
-	exchange-hierarchy.h					\
-	exchange-hierarchy-somedav.h				\
-	exchange-hierarchy-webdav.h				\
-	exchange-hierarchy-foreign.h				\
-	exchange-oof.h						\
-	exchange-types.h					\
-	exchange-esource.h
-
-%-$(API_VERSION).pc: %.pc
-	cp $< $@
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libexchange-storage-$(API_VERSION).pc
-
-EXTRA_DIST = $(pkgconfig_DATA:-$(API_VERSION).pc=.pc.in)
-
-DISTCLEANFILES = $(pkgconfig_DATA)
+-include $(top_srcdir)/git.mk
diff --git a/server/xntlm/Makefile.am b/server/xntlm/Makefile.am
index ef8df16..d0bf6f6 100644
--- a/server/xntlm/Makefile.am
+++ b/server/xntlm/Makefile.am
@@ -11,3 +11,5 @@ libxntlm_la_SOURCES =	\
 INCLUDES =		\
 	-I$(top_srcdir)	\
 	$(GLIB_CFLAGS)
+
+-include $(top_srcdir)/git.mk
diff --git a/storage/Makefile.am b/storage/Makefile.am
index 714c4f6..f0f3ca4 100644
--- a/storage/Makefile.am
+++ b/storage/Makefile.am
@@ -3,6 +3,9 @@ INCLUDES =							\
 	-I$(top_srcdir)/mail					\
 	-I$(top_srcdir)/camel					\
 	-I$(top_srcdir)/calendar				\
+	-I$(top_srcdir)/server/lib				\
+	-I$(top_srcdir)/server/storage				\
+	-I$(top_builddir)/server/lib				\
 	-DG_LOG_DOMAIN=\"evolution-exchange-storage\"		\
 	$(LIBEXCHANGE_CFLAGS)				\
 	$(EXCHANGE_STORAGE_CFLAGS)				\
@@ -43,12 +46,12 @@ evolution_exchange_storage_LDADD =				\
 	$(top_builddir)/addressbook/libexchangeaddressbook.la	\
 	$(top_builddir)/calendar/libexchangecalendar.la		\
 	$(top_builddir)/camel/camel-stub-marshal.lo		\
+	$(top_builddir)/server/storage/libexchange-storage.la \
 	$(LDAP_LIBS)						\
 	$(EXCHANGE_STORAGE_LIBS)				\
 	$(LIBEXCHANGE_LIBS)					\
 	$(SOCKET_LIBS)
 
-
 exchange_connector_setup_SOURCES =				\
 	ximian-connector-setup.c				\
 	exchange-config-listener.c				\
@@ -56,6 +59,7 @@ exchange_connector_setup_SOURCES =				\
 	exchange-autoconfig-wizard.c
 
 exchange_connector_setup_LDADD =				\
+	$(top_builddir)/server/storage/libexchange-storage.la \
 	$(LDAP_LIBS)						\
 	$(EXCHANGE_STORAGE_LIBS)				\
 	$(LIBEXCHANGE_LIBS)
@@ -75,6 +79,7 @@ migr_test_SOURCES =						\
 	exchange-migrate.h
 
 migr_test_LDADD = 						\
+	$(top_builddir)/server/storage/libexchange-storage.la \
 	$(LDAP_LIBS)						\
 	$(EXCHANGE_STORAGE_LIBS)				\
 	$(LIBEXCHANGE_LIBS)
