exim4/4.69/memcache-support.patch
changeset 5 886f06655730
parent 4 5d6a10b5469c
child 6 0e17cffdaed0
--- a/exim4/4.69/memcache-support.patch	Thu Aug 13 14:03:43 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,894 +0,0 @@
-diff -r b4cc307a2719 .hgignore
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/.hgignore	Thu Aug 13 13:46:31 2009 +0200
-@@ -0,0 +1,325 @@
-+syntax: regexp
-+^build-tree
-+^debian/patched
-+^EDITME\.
-+^build-arch-stamp
-+^build-indep-stamp
-+^configure-stamp
-+^debian/README.Debian
-+^debian/README.Debian.html
-+^debian/debconf/exim4.conf.template
-+^debian/exim4-base.debhelper.log
-+^debian/exim4-base.postinst.debhelper
-+^debian/exim4-base.postrm.debhelper
-+^debian/exim4-base.prerm.debhelper
-+^debian/exim4-base.substvars
-+^debian/exim4-base/DEBIAN/conffiles
-+^debian/exim4-base/DEBIAN/config
-+^debian/exim4-base/DEBIAN/control
-+^debian/exim4-base/DEBIAN/md5sums
-+^debian/exim4-base/DEBIAN/postinst
-+^debian/exim4-base/DEBIAN/postrm
-+^debian/exim4-base/DEBIAN/prerm
-+^debian/exim4-base/DEBIAN/templates
-+^debian/exim4-base/etc/cron.daily/exim4-base
-+^debian/exim4-base/etc/init.d/exim4
-+^debian/exim4-base/etc/logrotate.d/exim4-base
-+^debian/exim4-base/etc/logrotate.d/exim4-paniclog
-+^debian/exim4-base/usr/sbin/exicyclog
-+^debian/exim4-base/usr/sbin/exigrep
-+^debian/exim4-base/usr/sbin/exim_checkaccess
-+^debian/exim4-base/usr/sbin/exim_convert4r4
-+^debian/exim4-base/usr/sbin/exim_dbmbuild
-+^debian/exim4-base/usr/sbin/exim_dumpdb
-+^debian/exim4-base/usr/sbin/exim_fixdb
-+^debian/exim4-base/usr/sbin/exim_lock
-+^debian/exim4-base/usr/sbin/exim_tidydb
-+^debian/exim4-base/usr/sbin/eximstats
-+^debian/exim4-base/usr/sbin/exinext
-+^debian/exim4-base/usr/sbin/exipick
-+^debian/exim4-base/usr/sbin/exiqgrep
-+^debian/exim4-base/usr/sbin/exiqsumm
-+^debian/exim4-base/usr/sbin/exiwhat
-+^debian/exim4-base/usr/sbin/syslog2eximlog
-+^debian/exim4-base/usr/share/bug/exim4-base/script
-+^debian/exim4-base/usr/share/doc-base/exim4-filter-txt
-+^debian/exim4-base/usr/share/doc-base/exim4-readme-debian
-+^debian/exim4-base/usr/share/doc-base/exim4-spec-txt
-+^debian/exim4-base/usr/share/doc/exim4-base/ACKNOWLEDGMENTS.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/Exim3.upgrade.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/Exim4.upgrade.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/NEWS.Debian.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/NOTICE.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/NewStuff.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/OptionLists.txt.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/README
-+^debian/exim4-base/usr/share/doc/exim4-base/README.Debian.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/README.Debian.html
-+^debian/exim4-base/usr/share/doc/exim4-base/README.SIEVE.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/README.UPDATING.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/TODO.Debian
-+^debian/exim4-base/usr/share/doc/exim4-base/changelog.Debian.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/changelog.Debian.old.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/changelog.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/copyright
-+^debian/exim4-base/usr/share/doc/exim4-base/dbm.discuss.txt.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/aliases
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/cramtest.pl
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/example.conf.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/exim-adduser
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/exim-gencert
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/logargs.sh
-+^debian/exim4-base/usr/share/doc/exim4-base/examples/unknownuser.sh
-+^debian/exim4-base/usr/share/doc/exim4-base/filter.txt.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/pcrepattern.txt.gz
-+^debian/exim4-base/usr/share/doc/exim4-base/spec.txt.gz
-+^debian/exim4-base/usr/share/exim4/exim4_refresh_gnutls-params
-+^debian/exim4-base/usr/share/exim4/timeout.pl
-+^debian/exim4-base/usr/share/lintian/overrides/exim4-base
-+^debian/exim4-base/usr/share/man/man8/exicyclog.8.gz
-+^debian/exim4-base/usr/share/man/man8/exigrep.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_checkaccess.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_convert4r4.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_db.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_dbmbuild.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_dumpdb.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_fixdb.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_lock.8.gz
-+^debian/exim4-base/usr/share/man/man8/exim_tidydb.8.gz
-+^debian/exim4-base/usr/share/man/man8/eximstats.8.gz
-+^debian/exim4-base/usr/share/man/man8/exinext.8.gz
-+^debian/exim4-base/usr/share/man/man8/exipick.8.gz
-+^debian/exim4-base/usr/share/man/man8/exiqgrep.8.gz
-+^debian/exim4-base/usr/share/man/man8/exiqsumm.8.gz
-+^debian/exim4-base/usr/share/man/man8/exiwhat.8.gz
-+^debian/exim4-base/usr/share/man/man8/syslog2eximlog.8.gz
-+^debian/exim4-base/var/spool/exim4/gnutls-params
-+^debian/exim4-config.debhelper.log
-+^debian/exim4-config.postrm.debhelper
-+^debian/exim4-config.substvars
-+^debian/exim4-config/DEBIAN/conffiles
-+^debian/exim4-config/DEBIAN/config
-+^debian/exim4-config/DEBIAN/control
-+^debian/exim4-config/DEBIAN/md5sums
-+^debian/exim4-config/DEBIAN/postinst
-+^debian/exim4-config/DEBIAN/postrm
-+^debian/exim4-config/DEBIAN/preinst
-+^debian/exim4-config/DEBIAN/templates
-+^debian/exim4-config/etc/email-addresses
-+^debian/exim4-config/etc/exim4/conf.d/acl/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/acl/20_exim4-config_local_deny_exceptions
-+^debian/exim4-config/etc/exim4/conf.d/acl/30_exim4-config_check_mail
-+^debian/exim4-config/etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
-+^debian/exim4-config/etc/exim4/conf.d/acl/40_exim4-config_check_data
-+^debian/exim4-config/etc/exim4/conf.d/auth/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/auth/30_exim4-config_examples
-+^debian/exim4-config/etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
-+^debian/exim4-config/etc/exim4/conf.d/main/02_exim4-config_options
-+^debian/exim4-config/etc/exim4/conf.d/main/03_exim4-config_tlsoptions
-+^debian/exim4-config/etc/exim4/conf.d/main/90_exim4-config_log_selector
-+^debian/exim4-config/etc/exim4/conf.d/retry/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/retry/30_exim4-config
-+^debian/exim4-config/etc/exim4/conf.d/rewrite/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/rewrite/31_exim4-config_rewriting
-+^debian/exim4-config/etc/exim4/conf.d/router/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/router/100_exim4-config_domain_literal
-+^debian/exim4-config/etc/exim4/conf.d/router/150_exim4-config_hubbed_hosts
-+^debian/exim4-config/etc/exim4/conf.d/router/200_exim4-config_primary
-+^debian/exim4-config/etc/exim4/conf.d/router/300_exim4-config_real_local
-+^debian/exim4-config/etc/exim4/conf.d/router/400_exim4-config_system_aliases
-+^debian/exim4-config/etc/exim4/conf.d/router/500_exim4-config_hubuser
-+^debian/exim4-config/etc/exim4/conf.d/router/600_exim4-config_userforward
-+^debian/exim4-config/etc/exim4/conf.d/router/700_exim4-config_procmail
-+^debian/exim4-config/etc/exim4/conf.d/router/800_exim4-config_maildrop
-+^debian/exim4-config/etc/exim4/conf.d/router/850_exim4-config_lowuid
-+^debian/exim4-config/etc/exim4/conf.d/router/900_exim4-config_local_user
-+^debian/exim4-config/etc/exim4/conf.d/router/mmm_mail4root
-+^debian/exim4-config/etc/exim4/conf.d/transport/00_exim4-config_header
-+^debian/exim4-config/etc/exim4/conf.d/transport/10_exim4-config_transport-macros
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_address_file
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_address_pipe
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_address_reply
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_mail_spool
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_maildir_home
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_maildrop_pipe
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_procmail_pipe
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
-+^debian/exim4-config/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost
-+^debian/exim4-config/etc/exim4/conf.d/transport/35_exim4-config_address_directory
-+^debian/exim4-config/etc/exim4/exim4.conf.template
-+^debian/exim4-config/etc/exim4/passwd.client
-+^debian/exim4-config/etc/ppp/ip-up.d/exim4
-+^debian/exim4-config/usr/sbin/update-exim4.conf
-+^debian/exim4-config/usr/sbin/update-exim4.conf.template
-+^debian/exim4-config/usr/sbin/update-exim4defaults
-+^debian/exim4-config/usr/share/bug/exim4-config/script
-+^debian/exim4-config/usr/share/doc/exim4-config/NEWS.Debian.gz
-+^debian/exim4-config/usr/share/doc/exim4-config/README.Debian.gz
-+^debian/exim4-config/usr/share/doc/exim4-config/changelog.Debian.gz
-+^debian/exim4-config/usr/share/doc/exim4-config/copyright
-+^debian/exim4-config/usr/share/lintian/overrides/exim4-config
-+^debian/exim4-config/usr/share/man/man5/etc-aliases.5.gz
-+^debian/exim4-config/usr/share/man/man5/etc-email-addresses.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4-config_files.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_exim_crt.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_exim_key.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_hubbed_hosts.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_domain_dnsbl_whitelist.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_host_blacklist.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_host_whitelist.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_rcpt_callout.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_sender_blacklist.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_sender_callout.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_local_sender_whitelist.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_passwd.5.gz
-+^debian/exim4-config/usr/share/man/man5/exim4_passwd_client.5.gz
-+^debian/exim4-config/usr/share/man/man5/update-exim4.conf.conf.5.gz
-+^debian/exim4-config/usr/share/man/man8/update-exim4.conf.8.gz
-+^debian/exim4-config/usr/share/man/man8/update-exim4.conf.template.8.gz
-+^debian/exim4-config/usr/share/man/man8/update-exim4defaults.8.gz
-+^debian/exim4-daemon-custom-dbg.debhelper.log
-+^debian/exim4-daemon-custom.debhelper.log
-+^debian/exim4-daemon-heavy-dbg.debhelper.log
-+^debian/exim4-daemon-heavy-dbg/DEBIAN/control
-+^debian/exim4-daemon-heavy-dbg/DEBIAN/md5sums
-+^debian/exim4-daemon-heavy-dbg/usr/lib/debug/usr/sbin/exim4
-+^debian/exim4-daemon-heavy-dbg/usr/share/doc/exim4-daemon-heavy-dbg/changelog.Debian.gz
-+^debian/exim4-daemon-heavy-dbg/usr/share/doc/exim4-daemon-heavy-dbg/copyright
-+^debian/exim4-daemon-heavy-dbg/usr/share/lintian/overrides/exim4-daemon-heavy-dbg
-+^debian/exim4-daemon-heavy.debhelper.log
-+^debian/exim4-daemon-heavy.postinst
-+^debian/exim4-daemon-heavy.postrm.debhelper
-+^debian/exim4-daemon-heavy.prerm
-+^debian/exim4-daemon-heavy.substvars
-+^debian/exim4-daemon-heavy/DEBIAN/config
-+^debian/exim4-daemon-heavy/DEBIAN/control
-+^debian/exim4-daemon-heavy/DEBIAN/md5sums
-+^debian/exim4-daemon-heavy/DEBIAN/postinst
-+^debian/exim4-daemon-heavy/DEBIAN/postrm
-+^debian/exim4-daemon-heavy/DEBIAN/prerm
-+^debian/exim4-daemon-heavy/DEBIAN/templates
-+^debian/exim4-daemon-heavy/usr/bin/mailq
-+^debian/exim4-daemon-heavy/usr/bin/newaliases
-+^debian/exim4-daemon-heavy/usr/lib/exim4/exim4
-+^debian/exim4-daemon-heavy/usr/lib/sendmail
-+^debian/exim4-daemon-heavy/usr/sbin/exim
-+^debian/exim4-daemon-heavy/usr/sbin/exim4
-+^debian/exim4-daemon-heavy/usr/sbin/rmail
-+^debian/exim4-daemon-heavy/usr/sbin/rsmtp
-+^debian/exim4-daemon-heavy/usr/sbin/runq
-+^debian/exim4-daemon-heavy/usr/sbin/sendmail
-+^debian/exim4-daemon-heavy/usr/share/bug/exim4-daemon-heavy/script
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/EDITME.exim4-heavy.gz
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/NEWS.Debian.gz
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/README.Debian.gz
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/changelog.Debian.gz
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/changelog.gz
-+^debian/exim4-daemon-heavy/usr/share/doc/exim4-daemon-heavy/copyright
-+^debian/exim4-daemon-heavy/usr/share/lintian/overrides/exim4-daemon-heavy
-+^debian/exim4-daemon-heavy/usr/share/man/man8/exim4.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/mailq.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/newaliases.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/rmail.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/rsmtp.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/runq.8.gz
-+^debian/exim4-daemon-heavy/usr/share/man/man8/sendmail.8.gz
-+^debian/exim4-daemon-light-dbg.debhelper.log
-+^debian/exim4-daemon-light-dbg/DEBIAN/control
-+^debian/exim4-daemon-light-dbg/DEBIAN/md5sums
-+^debian/exim4-daemon-light-dbg/usr/lib/debug/usr/sbin/exim4
-+^debian/exim4-daemon-light-dbg/usr/share/doc/exim4-daemon-light-dbg/changelog.Debian.gz
-+^debian/exim4-daemon-light-dbg/usr/share/doc/exim4-daemon-light-dbg/copyright
-+^debian/exim4-daemon-light-dbg/usr/share/lintian/overrides/exim4-daemon-light-dbg
-+^debian/exim4-daemon-light.debhelper.log
-+^debian/exim4-daemon-light.postrm.debhelper
-+^debian/exim4-daemon-light.substvars
-+^debian/exim4-daemon-light/DEBIAN/config
-+^debian/exim4-daemon-light/DEBIAN/control
-+^debian/exim4-daemon-light/DEBIAN/md5sums
-+^debian/exim4-daemon-light/DEBIAN/postinst
-+^debian/exim4-daemon-light/DEBIAN/postrm
-+^debian/exim4-daemon-light/DEBIAN/prerm
-+^debian/exim4-daemon-light/DEBIAN/templates
-+^debian/exim4-daemon-light/usr/bin/mailq
-+^debian/exim4-daemon-light/usr/bin/newaliases
-+^debian/exim4-daemon-light/usr/lib/exim4/exim4
-+^debian/exim4-daemon-light/usr/lib/sendmail
-+^debian/exim4-daemon-light/usr/sbin/exim
-+^debian/exim4-daemon-light/usr/sbin/exim4
-+^debian/exim4-daemon-light/usr/sbin/rmail
-+^debian/exim4-daemon-light/usr/sbin/rsmtp
-+^debian/exim4-daemon-light/usr/sbin/runq
-+^debian/exim4-daemon-light/usr/sbin/sendmail
-+^debian/exim4-daemon-light/usr/share/bug/exim4-daemon-light/script
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/EDITME.exim4-light.gz
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/NEWS.Debian.gz
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/README.Debian.gz
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/changelog.Debian.gz
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/changelog.gz
-+^debian/exim4-daemon-light/usr/share/doc/exim4-daemon-light/copyright
-+^debian/exim4-daemon-light/usr/share/lintian/overrides/exim4-daemon-light
-+^debian/exim4-daemon-light/usr/share/man/man8/exim4.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/mailq.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/newaliases.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/rmail.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/rsmtp.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/runq.8.gz
-+^debian/exim4-daemon-light/usr/share/man/man8/sendmail.8.gz
-+^debian/exim4-dbg.debhelper.log
-+^debian/exim4-dbg/DEBIAN/control
-+^debian/exim4-dbg/DEBIAN/md5sums
-+^debian/exim4-dbg/usr/lib/debug/usr/lib/exim4/eximon.bin
-+^debian/exim4-dbg/usr/lib/debug/usr/sbin/exim_dbmbuild
-+^debian/exim4-dbg/usr/lib/debug/usr/sbin/exim_dumpdb
-+^debian/exim4-dbg/usr/lib/debug/usr/sbin/exim_fixdb
-+^debian/exim4-dbg/usr/lib/debug/usr/sbin/exim_lock
-+^debian/exim4-dbg/usr/lib/debug/usr/sbin/exim_tidydb
-+^debian/exim4-dbg/usr/share/doc/exim4-dbg/changelog.Debian.gz
-+^debian/exim4-dbg/usr/share/doc/exim4-dbg/copyright
-+^debian/exim4-dbg/usr/share/lintian/overrides/exim4-dbg
-+^debian/exim4-dev.debhelper.log
-+^debian/exim4-dev/DEBIAN/control
-+^debian/exim4-dev/DEBIAN/md5sums
-+^debian/exim4-dev/usr/bin/exim4-localscan-plugin-config
-+^debian/exim4-dev/usr/include/exim4/config.h
-+^debian/exim4-dev/usr/include/exim4/local_scan.h
-+^debian/exim4-dev/usr/include/exim4/mytypes.h
-+^debian/exim4-dev/usr/include/exim4/store.h
-+^debian/exim4-dev/usr/share/doc/exim4-dev/README.Debian.gz
-+^debian/exim4-dev/usr/share/doc/exim4-dev/changelog.Debian.gz
-+^debian/exim4-dev/usr/share/doc/exim4-dev/changelog.gz
-+^debian/exim4-dev/usr/share/doc/exim4-dev/copyright
-+^debian/exim4-dev/usr/share/lintian/overrides/exim4-dev
-+^debian/exim4-dev/usr/share/man/man1/exim4-localscan-plugin-config.1.gz
-+^debian/exim4.debhelper.log
-+^debian/exim4.postrm.debhelper
-+^debian/exim4.substvars
-+^debian/exim4/DEBIAN/config
-+^debian/exim4/DEBIAN/control
-+^debian/exim4/DEBIAN/md5sums
-+^debian/exim4/DEBIAN/postinst
-+^debian/exim4/DEBIAN/postrm
-+^debian/exim4/DEBIAN/templates
-+^debian/exim4/usr/share/bug/exim4/script
-+^debian/exim4/usr/share/doc/exim4
-+^debian/exim4/usr/share/lintian/overrides/exim4
-+^debian/eximon4.debhelper.log
-+^debian/eximon4.postinst.debhelper
-+^debian/eximon4.postrm.debhelper
-+^debian/eximon4.substvars
-+^debian/eximon4/DEBIAN/control
-+^debian/eximon4/DEBIAN/md5sums
-+^debian/eximon4/DEBIAN/postinst
-+^debian/eximon4/DEBIAN/postrm
-+^debian/eximon4/usr/lib/exim4/eximon.bin
-+^debian/eximon4/usr/sbin/eximon
-+^debian/eximon4/usr/share/doc/eximon4/changelog.Debian.gz
-+^debian/eximon4/usr/share/doc/eximon4/copyright
-+^debian/eximon4/usr/share/lintian/overrides/eximon4
-+^debian/eximon4/usr/share/man/man8/eximon.8.gz
-+^debian/eximon4/usr/share/menu/eximon4
-+^debian/files
-+^installbase-stamp
-+^patch-stamp
-+^unpack-configs-stamp
-diff -r b4cc307a2719 debian/EDITME.exim4-light.diff
---- a/debian/EDITME.exim4-light.diff	Thu Aug 13 12:59:19 2009 +0200
-+++ b/debian/EDITME.exim4-light.diff	Thu Aug 13 13:46:31 2009 +0200
-@@ -1,5 +1,5 @@
----- /tmp/dpep-work.wG8120/trunk/build-tree/src/EDITME	2007-07-17 11:04:08.000000000 +0200
--+++ EDITME.exim4-light	2007-07-17 11:04:27.000000000 +0200
-+--- /home/luser/src/debian-packages/exim4-4.69/build-tree/src/EDITME	2009-08-10 15:37:12.000000000 +0200
-++++ EDITME.exim4-light	2009-08-10 15:45:37.000000000 +0200
- @@ -100,7 +100,7 @@
-  # /usr/local/sbin. The installation script will try to create this directory,
-  # and any superior directories, if they do not exist.
-@@ -196,9 +196,15 @@
-  
-  
-  #------------------------------------------------------------------------------
--@@ -1149,3 +1156,6 @@
-+@@ -1148,4 +1155,12 @@
-+ 
-  # ENABLE_DISABLE_FSYNC=yes
-  
-++#------------------------------------------------------------------------------
-++# support storage/retrieval of values to and from memcache servers via
-++# expansions
-++SUPPORT_MEMCACHE=yes
-++
-  # End of EDITME for Exim 4.
- +
- +# enable IPv6 support
-diff -r b4cc307a2719 debian/changelog
---- a/debian/changelog	Thu Aug 13 12:59:19 2009 +0200
-+++ b/debian/changelog	Thu Aug 13 13:46:31 2009 +0200
-@@ -1,3 +1,10 @@
-+exim4 (4.69-9.1) unstable; urgency=low
-+
-+  * Non-maintainer upload.
-+  * memcache support
-+
-+ -- Matthias Förste <foerste@schlittermann.de>  Thu, 13 Aug 2009 13:26:52 +0200
-+
- exim4 (4.69-9) unstable; urgency=medium
- 
-   * [update-exim4.conf]: Use POSIX character classes [:alnum:] or explicit
-diff -r b4cc307a2719 debian/patches/00list
---- a/debian/patches/00list	Thu Aug 13 12:59:19 2009 +0200
-+++ b/debian/patches/00list	Thu Aug 13 13:46:31 2009 +0200
-@@ -12,3 +12,4 @@
- 60_convert4r4
- 66_enlarge-dh-parameters-size
- 70_remove_exim-users_references
-+80_memcache
-diff -r b4cc307a2719 debian/patches/80_memcache.dpatch
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/debian/patches/80_memcache.dpatch	Thu Aug 13 13:46:31 2009 +0200
-@@ -0,0 +1,511 @@
-+#! /bin/sh /usr/share/dpatch/dpatch-run
-+## 80_memcache.dpatch by Matthias Förste <foerste@schlittermann.de>
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: key/value storage/retrieval via memcache
-+
-+@DPATCH@
-+diff -urNad exim4-4.69~/build-tree/OS/Makefile-Base exim4-4.69/build-tree/OS/Makefile-Base
-+--- exim4-4.69~/build-tree/OS/Makefile-Base	2009-08-13 13:12:55.000000000 +0200
-++++ exim4-4.69/build-tree/OS/Makefile-Base	2009-08-13 13:12:56.000000000 +0200
-+@@ -543,7 +543,7 @@
-+ dns.o:           $(HDRS) dns.c
-+ enq.o:           $(HDRS) enq.c
-+ exim.o:          $(HDRS) exim.c
-+-expand.o:        $(HDRS) expand.c
-++expand.o:        $(HDRS) memcache.h expand.c
-+ filter.o:        $(HDRS) filter.c
-+ filtertest.o:    $(HDRS) filtertest.c
-+ globals.o:       $(HDRS) globals.c
-+diff -urNad exim4-4.69~/build-tree/doc/OptionLists.txt exim4-4.69/build-tree/doc/OptionLists.txt
-+--- exim4-4.69~/build-tree/doc/OptionLists.txt	2007-08-29 15:37:28.000000000 +0200
-++++ exim4-4.69/build-tree/doc/OptionLists.txt	2009-08-13 13:12:56.000000000 +0200
-+@@ -11,7 +11,7 @@
-+   4. Those that can appear in the build time configuration for the Exim monitor
-+      (Local/eximon.conf).
-+ 
-+-This file was last updated for Exim release 4.67.
-++This file was last updated for Exim release 4.69.
-+ 
-+ 
-+ 1. RUN TIME OPTIONS
-+@@ -887,6 +887,7 @@
-+ SUPPORT_CRYPTEQ              optional     support crypteq (if no auths)
-+ SUPPORT_MAILDIR              optional     support for maildir delivery
-+ SUPPORT_MAILSTORE            optional     support for mailstore delivery
-++SUPPORT_MEMCACHE             optional*    support for memcache storage and retrieval
-+ SUPPORT_MBX                  optional     support for MBX delivery
-+ SUPPORT_MOVE_FROZEN_MESSAGES optional*    support for frozen message moving
-+ SUPPORT_PAM                  optional     support for PAM authentication
-+diff -urNad exim4-4.69~/build-tree/doc/memcache.txt exim4-4.69/build-tree/doc/memcache.txt
-+--- exim4-4.69~/build-tree/doc/memcache.txt	1970-01-01 01:00:00.000000000 +0100
-++++ exim4-4.69/build-tree/doc/memcache.txt	2009-08-13 13:12:56.000000000 +0200
-+@@ -0,0 +1,72 @@
-++* store some value under key; expands to 'true' if successful; expiration &
-++  timeout are optional
-++
-++  ${memcache \
-++    {+memcache_servers} \
-++    {set} \
-++    {namespace} \
-++    {key} \
-++    {value} \
-++    {expiration} \
-++    {timeout}}
-++
-++
-++* lookup the value of some key; expands to 'true' if the key has been found;
-++  stores the value in $value; timeout is optional
-++
-++  ${memcache \
-++    {+memcache_servers} \
-++    {get} \
-++    {namespace} \
-++    {key} \
-++    {$value} \
-++    {timeout}}
-++
-++
-++Currently only tcp connections are supported. No sanity checks on arguments are
-++done yet. You can use a hostlist, but its probably not useful. Each host is
-++tried in the order listed until one succeeds. Expansion will fail if none
-++suceeds.
-++
-++example usage for greylisting:
-++
-++  [...]
-++
-++  hostlist memcache_servers = <; host1:port1; host2:port2; host3
-++
-++  [...]
-++
-++  acl_check_rcpt:
-++
-++    # greylisting with memcache
-++    # do we already have a timestamp for this sender/receiver combo? try to store
-++    # one if we dont and defer if this succeeds, deny otherwise; accept the
-++    # message if we find a timestamp which is older than 5 minutes, deny
-++    # otherwise (if the timestamp is younger that is)
-++    accept
-++          logwrite = memcache \
-++                  get \
-++                  exim-lenny:${sender_address}*${local_part}@${domain}
-++          condition = ${memcache \
-++                  {+memcache_servers} \
-++                  {get} \
-++                  {exim-lenny:} \
-++                  {${sender_address}*${local_part}@${domain}} \
-++                  {$value}}
-++          endpass
-++          condition = ${if or { \
-++                  {eq {$value}{}} \
-++                  { > {$tod_epoch}{${eval: $value + 300}}} \
-++                  }}
-++    defer
-++          logwrite = memcache \
-++                  set \
-++                  exim-lenny:${sender_address}*${local_part}@${domain} \
-++                  $tod_epoch
-++          condition = ${memcache \
-++                  {+memcache_servers} \
-++                  {set} \
-++                  {exim-lenny:} \
-++                  {${sender_address}*${local_part}@${domain}} \
-++                  {$tod_epoch}}
-++    deny
-+diff -urNad exim4-4.69~/build-tree/scripts/MakeLinks exim4-4.69/build-tree/scripts/MakeLinks
-+--- exim4-4.69~/build-tree/scripts/MakeLinks	2007-09-28 14:21:57.000000000 +0200
-++++ exim4-4.69/build-tree/scripts/MakeLinks	2009-08-13 13:12:56.000000000 +0200
-+@@ -200,6 +200,7 @@
-+ ln -s ../src/globals.h         globals.h
-+ ln -s ../src/local_scan.h      local_scan.h
-+ ln -s ../src/macros.h          macros.h
-++ln -s ../src/memcache.h        memcache.h
-+ ln -s ../src/mytypes.h         mytypes.h
-+ ln -s ../src/osfunctions.h     osfunctions.h
-+ ln -s ../src/store.h           store.h
-+diff -urNad exim4-4.69~/build-tree/src/config.h.defaults exim4-4.69/build-tree/src/config.h.defaults
-+--- exim4-4.69~/build-tree/src/config.h.defaults	2009-08-13 13:12:55.000000000 +0200
-++++ exim4-4.69/build-tree/src/config.h.defaults	2009-08-13 13:12:56.000000000 +0200
-+@@ -122,6 +122,7 @@
-+ #define SUPPORT_MAILDIR
-+ #define SUPPORT_MAILSTORE
-+ #define SUPPORT_MBX
-++#define SUPPORT_MEMCACHE
-+ #define SUPPORT_MOVE_FROZEN_MESSAGES
-+ #define SUPPORT_PAM
-+ #define SUPPORT_TLS
-+diff -urNad exim4-4.69~/build-tree/src/expand.c exim4-4.69/build-tree/src/expand.c
-+--- exim4-4.69~/build-tree/src/expand.c	2007-10-04 15:23:05.000000000 +0200
-++++ exim4-4.69/build-tree/src/expand.c	2009-08-13 13:14:42.000000000 +0200
-+@@ -27,6 +27,10 @@
-+ #include "lookups/ldap.h"
-+ #endif
-+ 
-++#ifdef SUPPORT_MEMCACHE
-++#include "memcache.h"
-++#endif
-++
-+ #ifdef SUPPORT_CRYPTEQ
-+ #ifdef CRYPT_H
-+ #include <crypt.h>
-+@@ -113,6 +117,7 @@
-+   US"length",
-+   US"lookup",
-+   US"map",
-++  US"memcache",
-+   US"nhash",
-+   US"perl",
-+   US"prvs",
-+@@ -135,6 +140,7 @@
-+   EITEM_LENGTH,
-+   EITEM_LOOKUP,
-+   EITEM_MAP,
-++  EITEM_MEMCACHE,
-+   EITEM_NHASH,
-+   EITEM_PERL,
-+   EITEM_PRVS,
-+@@ -4980,6 +4986,231 @@
-+         }
-+       }
-+     #endif /* EXPAND_DLFUNC */
-++
-++    case EITEM_MEMCACHE:
-++    #ifndef SUPPORT_MEMCACHE
-++    expand_string_message = US"\"${memcache\" encountered, but this facility "
-++      "is not included in this binary";
-++    goto EXPAND_FAILED;
-++
-++    #else   /* SUPPORT_MEMCACHE */
-++    /* we dont use flags right now - should we? */
-++
-++      {
-++        uschar *memcache_timeout = US"0s";   /* with time unit postfix, fex 7d */
-++        uschar *memcache_expiration = US"0"; /* in seconds */
-++        int i_memcache_expiration = -1, i_memcache_timeout = -1;
-++        int memcache_operation;
-++        uschar *sub_arg[7];
-++
-++        uschar *memcache_servers[MEMCACHE_SERVERS_MAX];
-++        tree_node *memcache_hosts_node;
-++        uschar *memcache_hosts_string, *memcache_op_string;
-++        uschar *memcache_host;
-++        int memcache_hostlist_separator = 0;
-++        int i_memcache_server = 0;
-++        int n_memcache_servers = 0;
-++
-++        uschar *memcache_request;
-++        int memcache_request_len;
-++        BOOL memcache_request_failed = FALSE;
-++
-++        uschar *memcache_readsocket_result;
-++
-++        if ((expand_forbid & RDO_MEMCACHE) != 0)
-++          {
-++          expand_string_message = US"memcache storage/retrieval are not permitted";
-++          goto EXPAND_FAILED;
-++          }
-++
-++        /* read up to 7 args */
-++        switch(read_subs(sub_arg, 7, 5, &s, skipping, TRUE, US"memcache"))
-++          {
-++          case 1: goto EXPAND_FAILED_CURLY;
-++          case 2:
-++          case 3: goto EXPAND_FAILED;
-++          }
-++
-++        /* validate operation and set argument indices */
-++        memcache_op_string = string_sprintf(US"%S", sub_arg[1]);
-++        if (Ustrcmp(memcache_op_string, US"set") == 0)
-++          {
-++          i_memcache_expiration = 5; i_memcache_timeout = 6; memcache_operation = MEMCACHE_OP_SET;
-++          }
-++        else if (Ustrcmp(memcache_op_string, US"get") == 0)
-++          {
-++          i_memcache_timeout = 5; memcache_operation = MEMCACHE_OP_GET;
-++          }
-++        else
-++          {
-++          expand_string_message = string_sprintf(US"invalid memcache operation '%s'",
-++            sub_arg[1]);
-++          goto EXPAND_FAILED;
-++          }
-++
-++        /* expiration */
-++        if (i_memcache_expiration >=0 && sub_arg[i_memcache_expiration] != NULL)
-++          {
-++          memcache_expiration = string_sprintf(US"%d", readconf_readtime(sub_arg[i_memcache_expiration], 0, FALSE));
-++          if (memcache_expiration < 0)
-++            {
-++            expand_string_message = string_sprintf(US"bad time value %s",
-++              sub_arg[i_memcache_expiration]);
-++            goto EXPAND_FAILED;
-++            }
-++          }
-++
-++        /* now that we have an expiration time we should be able to build the request string */
-++        if (memcache_operation == MEMCACHE_OP_SET)
-++          {
-++          uschar* data = sub_arg[4];
-++          int data_len = Ustrlen(data);
-++
-++          /* writeop [namespace]key flags expiration size-in-bytes [noreply] */
-++          uschar *cmd = string_sprintf(US"%s %s%s %d %s %d %s", 
-++              US"set",
-++              sub_arg[2],
-++              sub_arg[3],
-++              0,
-++              memcache_expiration,
-++              data_len,
-++              US"");
-++          int cmd_len = Ustrlen(cmd);
-++
-++          memcache_request = string_sprintf(US"%s\r\n%s\r\n", cmd, data);
-++          memcache_request_len = Ustrlen(memcache_request);
-++          }
-++        else if (memcache_operation == MEMCACHE_OP_GET)
-++          {
-++          memcache_request = string_sprintf(US"%s %s%s\r\n", US"get", sub_arg[2], sub_arg[3]);
-++          memcache_request_len = Ustrlen(memcache_request);
-++          }
-++        else
-++          {
-++          expand_string_message = string_sprintf(US"invalid memcache operation: '%s'", memcache_op_string);
-++          goto EXPAND_FAILED;
-++          }
-++
-++        /* memcache servers - we expect either a named list or just a list */
-++        if (sub_arg[0][0] == '+')
-++          {
-++          if (NULL == (memcache_hosts_node = tree_search(hostlist_anchor, sub_arg[0] + sizeof(uschar))))
-++            {
-++            expand_string_message = string_sprintf(US"named list '%s' not found",
-++              sub_arg[0]);
-++            goto EXPAND_FAILED;
-++            }
-++            memcache_hosts_string = ((namedlist_block *) memcache_hosts_node->data.ptr)->string;
-++          }
-++        else
-++          {
-++            memcache_hosts_string = sub_arg[0];
-++          }
-++
-++        while ((NULL != (memcache_host = string_nextinlist(&memcache_hosts_string, &memcache_hostlist_separator, NULL, 0))))
-++          {
-++          if (i_memcache_server >= MEMCACHE_SERVERS_MAX)
-++            {
-++            expand_string_message = string_sprintf(US"too many memcache servers, %d is max",
-++              MEMCACHE_SERVERS_MAX);
-++            goto EXPAND_FAILED;
-++            }
-++          memcache_servers[i_memcache_server] = memcache_host;
-++          i_memcache_server++;
-++          }
-++        n_memcache_servers = i_memcache_server;
-++
-++        /* talk to server(s) unless we are skipping */
-++        if (!skipping)
-++          {
-++          for (i_memcache_server = 0; i_memcache_server < n_memcache_servers; 
-++                 i_memcache_server++)
-++            {
-++
-++            uschar *memcache_server_name = memcache_servers[i_memcache_server];
-++            uschar *memcache_port_name = Ustrrchr(memcache_server_name, ':');
-++            uschar *memcache_default_port_name = US"11211";
-++
-++            /* Sort out the port */
-++            if (memcache_port_name == NULL)
-++              {
-++              memcache_port_name = memcache_default_port_name;
-++              }
-++            else
-++              {
-++              *memcache_port_name++ = 0;           /* Terminate server name */
-++              }
-++
-++            uschar *memcache_server_readsocket =
-++              string_sprintf(US"${readsocket{inet:%s:%s}{%s}{%s}}",
-++              memcache_server_name,
-++              memcache_port_name,
-++              memcache_request,
-++              sub_arg[i_memcache_timeout] == NULL ? memcache_timeout : sub_arg[i_memcache_timeout]);
-++            DEBUG(D_memcache)
-++              {
-++              debug_printf("readsocket expansion item: '%s'\n", memcache_server_readsocket);
-++              }
-++            memcache_readsocket_result = expand_string(memcache_server_readsocket);
-++            if (memcache_readsocket_result != NULL) 
-++              {
-++              if (memcache_operation == MEMCACHE_OP_GET
-++                  && 0 == Ustrncmp(memcache_readsocket_result, US"VALUE ", Ustrlen(US"VALUE ")))
-++                {
-++                /* we tried to use expand_gettokened but it segfaults and we
-++                   didnt find out why */
-++                uschar *memcache_value_size = memcache_readsocket_result;
-++                int i;
-++                for (i = 0; i < 3; i++) { memcache_value_size = Ustrchr(memcache_value_size, ' ') + 1; }
-++
-++                lookup_value = strstr(memcache_readsocket_result, "\r\n") + Ustrlen("\r\n");
-++                lookup_value[
-++                  Ustrtol(memcache_value_size,
-++                      NULL,
-++                      0)] = 0;
-++
-++                DEBUG(D_memcache) { debug_printf("lookup_value: '%s'\n", lookup_value); }
-++
-++                }
-++              else if (memcache_operation == MEMCACHE_OP_SET
-++                  && 0 == Ustrcmp(memcache_readsocket_result, US"STORED\r\n"))
-++                {
-++                }
-++              else
-++                {
-++                /* something went wrong - try something else */
-++                memcache_request_failed = TRUE;
-++                DEBUG(D_memcache)
-++                  {
-++                  debug_printf("memcache operation '%s' failed: '%s'\n",
-++                      memcache_op_string,
-++                      memcache_readsocket_result);
-++                  }
-++                continue;
-++                }
-++
-++              yield = string_cat(yield,
-++                &size,
-++                &ptr,
-++                US"yes",
-++                Ustrlen(US"yes"));
-++              break; 
-++              }
-++
-++            }
-++
-++            if (memcache_request_failed) 
-++              {
-++              /* every try failed if we come here */
-++              expand_string_message = 
-++                string_sprintf(US"all memcache servers failed - last error was: '%s'",
-++                expand_string_message);
-++              goto EXPAND_FAILED;
-++              }
-++          }
-++        continue;
-++      }
-++    #endif /* SUPPORT_MEMCACHE */
-+     }
-+ 
-+   /* Control reaches here if the name is not recognized as one of the more
-+diff -urNad exim4-4.69~/build-tree/src/globals.c exim4-4.69/build-tree/src/globals.c
-+--- exim4-4.69~/build-tree/src/globals.c	2009-08-13 13:12:55.000000000 +0200
-++++ exim4-4.69/build-tree/src/globals.c	2009-08-13 13:12:56.000000000 +0200
-+@@ -451,6 +451,7 @@
-+   { US"load",           D_load },
-+   { US"local_scan",     D_local_scan },
-+   { US"lookup",         D_lookup },
-++  { US"memcache",       D_memcache },
-+   { US"memory",         D_memory },
-+   { US"pid",            D_pid },
-+   { US"process_info",   D_process_info },
-+diff -urNad exim4-4.69~/build-tree/src/macros.h exim4-4.69/build-tree/src/macros.h
-+--- exim4-4.69~/build-tree/src/macros.h	2007-08-22 12:10:23.000000000 +0200
-++++ exim4-4.69/build-tree/src/macros.h	2009-08-13 13:12:56.000000000 +0200
-+@@ -313,19 +313,20 @@
-+ #define D_load                       0x00008000
-+ #define D_lookup                     0x00010000
-+ #define D_memory                     0x00020000
-+-#define D_pid                        0x00040000
-+-#define D_process_info               0x00080000
-+-#define D_queue_run                  0x00100000
-+-#define D_receive                    0x00200000
-+-#define D_resolver                   0x00400000
-+-#define D_retry                      0x00800000
-+-#define D_rewrite                    0x01000000
-+-#define D_route                      0x02000000
-+-#define D_timestamp                  0x04000000
-+-#define D_tls                        0x08000000
-+-#define D_transport                  0x10000000
-+-#define D_uid                        0x20000000
-+-#define D_verify                     0x40000000
-++#define D_memcache                   0x00040000
-++#define D_pid                        0x00080000
-++#define D_process_info               0x00100000
-++#define D_queue_run                  0x00200000
-++#define D_receive                    0x00400000
-++#define D_resolver                   0x00800000
-++#define D_retry                      0x01000000
-++#define D_rewrite                    0x02000000
-++#define D_route                      0x04000000
-++#define D_timestamp                  0x08000000
-++#define D_tls                        0x10000000
-++#define D_transport                  0x20000000
-++#define D_uid                        0x40000000
-++#define D_verify                     0x80000000
-+ 
-+ /* The D_all value must always have all bits set, as it is recognized specially
-+ by the function that decodes debug and log selectors. This is to enable it to
-+@@ -515,21 +516,21 @@
-+ #define RDO_INCLUDE      0x00000100  /* Forbid :include: */
-+ #define RDO_LOG          0x00000200  /* Forbid "log" */
-+ #define RDO_LOOKUP       0x00000400  /* Forbid "lookup" in expansion in filter */
-+-#define RDO_PERL         0x00000800  /* Forbid "perl" in expansion in filter */
-+-#define RDO_READFILE     0x00001000  /* Forbid "readfile" in exp in filter */
-+-#define RDO_READSOCK     0x00002000  /* Forbid "readsocket" in exp in filter */
-+-#define RDO_RUN          0x00004000  /* Forbid "run" in expansion in filter */
-+-#define RDO_DLFUNC       0x00008000  /* Forbid "dlfunc" in expansion in filter */
-+-#define RDO_REALLOG      0x00010000  /* Really do log (not testing/verifying) */
-+-#define RDO_REWRITE      0x00020000  /* Rewrite generated addresses */
-+-#define RDO_EXIM_FILTER  0x00040000  /* Forbid Exim filters */
-+-#define RDO_SIEVE_FILTER 0x00080000  /* Forbid Sieve filters */
-+-#define RDO_PREPEND_HOME 0x00100000  /* Prepend $home to relative paths in Exim filter save commands */
-+-
-++#define RDO_MEMCACHE     0x00000800  /* Forbid "memcache" in expansion in filter */
-++#define RDO_PERL         0x00001000  /* Forbid "perl" in expansion in filter */
-++#define RDO_READFILE     0x00002000  /* Forbid "readfile" in exp in filter */
-++#define RDO_READSOCK     0x00004000  /* Forbid "readsocket" in exp in filter */
-++#define RDO_RUN          0x00008000  /* Forbid "run" in expansion in filter */
-++#define RDO_DLFUNC       0x00010000  /* Forbid "dlfunc" in expansion in filter */
-++#define RDO_REALLOG      0x00020000  /* Really do log (not testing/verifying) */
-++#define RDO_REWRITE      0x00040000  /* Rewrite generated addresses */
-++#define RDO_EXIM_FILTER  0x00080000  /* Forbid Exim filters */
-++#define RDO_SIEVE_FILTER 0x00100000  /* Forbid Sieve filters */
-++#define RDO_PREPEND_HOME 0x00200000  /* Prepend $home to relative paths in Exim filter save commands */
-+ /* This is the set that apply to expansions in filters */
-+ 
-+ #define RDO_FILTER_EXPANSIONS \
-+-  (RDO_EXISTS|RDO_LOOKUP|RDO_PERL|RDO_READFILE|RDO_READSOCK|RDO_RUN|RDO_DLFUNC)
-++  (RDO_EXISTS|RDO_LOOKUP|RDO_MEMCACHE|RDO_PERL|RDO_READFILE|RDO_READSOCK|RDO_RUN|RDO_DLFUNC)
-+ 
-+ /* As well as the RDO bits themselves, we need the bit numbers in order to
-+ access (most of) the individual bits as separate options. This could be
-+@@ -537,8 +538,9 @@
-+ 
-+ enum { RDON_BLACKHOLE, RDON_DEFER, RDON_EACCES, RDON_ENOTDIR, RDON_EXISTS,
-+   RDON_FAIL, RDON_FILTER, RDON_FREEZE, RDON_INCLUDE, RDON_LOG, RDON_LOOKUP,
-+-  RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN, RDON_DLFUNC, RDON_REALLOG,
-+-  RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER, RDON_PREPEND_HOME };
-++  RDON_MEMCACHE, RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN,
-++  RDON_DLFUNC, RDON_REALLOG, RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER,
-++  RDON_PREPEND_HOME };
-+ 
-+ /* Results of filter or forward file processing. Some are only from a filter;
-+ some are only from a forward file. */
-+diff -urNad exim4-4.69~/build-tree/src/memcache.h exim4-4.69/build-tree/src/memcache.h
-+--- exim4-4.69~/build-tree/src/memcache.h	1970-01-01 01:00:00.000000000 +0100
-++++ exim4-4.69/build-tree/src/memcache.h	2009-08-13 13:12:56.000000000 +0200
-+@@ -0,0 +1,14 @@
-++#ifndef MEMCACHE_H
-++
-++#define MEMCACHE_SERVERS_MAX 16
-++#define MEMCACHE_OP_SET 0
-++#define MEMCACHE_OP_GET 1
-++
-++/*
-++extern void memcache_addhost(uschar *, uschar *, void *);
-++*/
-++/* host list */
-++
-++/* put declarations before */
-++#define MEMCACHE_H
-++#endif