Source of tarpit_php:
Show as raw file
#! /usr/local/bin/php
<?php
/*
 * Copyright (C) 2003-2004 Pawel Foremski <pjf@gna.org>
 *
 * This program is free software; you can redistribute it and/or 
 * modify it under the terms of the GNU General Public License 
 * as published by the Free Software Foundation; either 
 * version 2 of the License, or (at your option) any later 
 * version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 ***
 *
 * $Id: tarpit.php,v 1.1 2004/07/05 18:27:21 pavcio Exp $
 *
 */

error_reporting(0);

if (!
$_ENV['TARPITCOUNT'] ||        /* wrong settings */
    
!$_ENV['TARPITDELAY'] ) exit(); /* given          */

$tcount $_ENV['TARPITCOUNT'];
$rcount $_ENV['SMTPRCPTCOUNT'];

if (
$rcount $tcount) exit(); /* under limit */

if ($rcount == $tcountfwrite(STDERR"started tarpitting mail from $_ENV[SMTPMAILFROM]\n");

switch (
$_ENV['TARPITDELAY']) {
    case 
'NORMAL':
        
sleep(($rcount $tcount 1) * 2);
        break;
    case 
'MEDIUM':
        
sleep(($rcount $tcount 1) * 5);
        break;
    case 
'HARD':
        
sleep(pow(($rcount $tcount 1), 2));
        break;
    case 
'RAND':
        
sleep(rand(150));
        break;
    default:
        
sleep($_ENV['TARPITDELAY']);
        break;
}

?>