#! /bin/sh include(confFEATURES_DIR/`cfhead.m4')dnl include(confM4_DIR`/conf.default')dnl include(confSITE_DIR/`conf')dnl ifelse(confGREYLIST_BACKEND, `DBM', ` cache_file=confGREYLIST_DBM_CACHE confCONTRIB_DIR/greylist/greylist_dbm_del_expired.pl ${cache_file} ') dnl ifelse(confGREYLIST_BACKEND, `DBM', `') ifelse(confGREYLIST_BACKEND, `SQLITE', ` if [ -f /usr/local/bin/sqlite3 ] ; then echo "confGREYLIST_SQLITE_DELETE_EXPIRED" | /usr/local/bin/sqlite3 confGREYLIST_SQLITE_CACHE elif [ -f /usr/bin/sqlite3 ] ; then echo "confGREYLIST_SQLITE_DELETE_EXPIRED" | /usr/bin/sqlite3 confGREYLIST_SQLITE_CACHE else echo "confGREYLIST_SQLITE_DELETE_EXPIRED" | sqlite3 confGREYLIST_SQLITE_CACHE fi ') dnl ifelse(confGREYLIST_BACKEND, `SQLITE', `') ifelse(confGREYLIST_BACKEND, `MYSQL', ` if [ -f /usr/local/bin/mysql ] ; then MYSQL=/usr/local/bin/mysql elif [ -f /usr/bin/mysql ] ; then MYSQL=/usr/bin/mysql else MYSQL=mysql fi echo "confGREYLIST_MYSQL_DELETE_EXPIRED" | ${MYSQL} -h EXTRACT_DELIMITED(`1', `/', confMYSQL) -u`'EXTRACT_DELIMITED(`3', `/', confMYSQL) -p"EXTRACT_DELIMITED(`4', `/', confMYSQL)" EXTRACT_DELIMITED(`2', `/', confMYSQL) ') dnl ifelse(confGREYLIST_BACKEND, `MYSQL', `') ifelse(confAWL, `REDIS', `PASSWORD=EXTRACT_DELIMITED(`3', `/', confREDIS)') changequote([[, ]]) ifelse(confAWL, [[REDIS]], [[ NOW=$(date +%s) (echo "AUTH $PASSWORD" ; echo "KEYS *" ; echo "QUIT") | redis-cli | grep ^greylist: | while read KEY ; do VALUE=`(echo "AUTH $PASSWORD" ; echo "GET $KEY" ; echo "QUIT") | redis-cli | tail -n +2 | perl -n -e 'print $1 if (/record_expires=(\d+)/);'` if [ ! -z "$VALUE" ] && [ $VALUE -lt $NOW ] ; then echo "delete AWL cached record for key $KEY" (echo "AUTH $PASSWORD" ; echo "DEL $KEY" ; echo "QUIT") | redis-cli fi done ]]) changequote