From owner-freebsd-www@FreeBSD.ORG Thu Dec 18 12:50:16 2003 Return-Path: Delivered-To: freebsd-www@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8329F16A4CF for ; Thu, 18 Dec 2003 12:50:16 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7D8A243D1D for ; Thu, 18 Dec 2003 12:50:13 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) hBIKoDFR068071 for ; Thu, 18 Dec 2003 12:50:13 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id hBIKoDwl068066; Thu, 18 Dec 2003 12:50:13 -0800 (PST) (envelope-from gnats) Resent-Date: Thu, 18 Dec 2003 12:50:13 -0800 (PST) Resent-Message-Id: <200312182050.hBIKoDwl068066@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-www@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Eric Anderson Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ABD2516A4CE for ; Thu, 18 Dec 2003 12:48:58 -0800 (PST) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id E1E3643D41 for ; Thu, 18 Dec 2003 12:48:56 -0800 (PST) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.12.10/8.12.10) with ESMTP id hBIKmudL061344 for ; Thu, 18 Dec 2003 12:48:56 -0800 (PST) (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.12.10/8.12.10/Submit) id hBIKmuu8061343; Thu, 18 Dec 2003 12:48:56 -0800 (PST) (envelope-from nobody) Message-Id: <200312182048.hBIKmuu8061343@www.freebsd.org> Date: Thu, 18 Dec 2003 12:48:56 -0800 (PST) From: Eric Anderson To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.0 Subject: www/60375: [FILE] Cleans sendpr-code db by removing expired codes. X-BeenThere: freebsd-www@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD Project Webmasters List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2003 20:50:16 -0000 >Number: 60375 >Category: www >Synopsis: [FILE] Cleans sendpr-code db by removing expired codes. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-www >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Dec 18 12:50:13 PST 2003 >Closed-Date: >Last-Modified: >Originator: Eric Anderson >Release: 5.2-CURRENT >Organization: >Environment: 5.2-CURRENT FreeBSD 5.2-CURRENT >Description: Perl program that is cronable - removes stale codes from sendpr db based on an expired time. Ceri requested this. >How-To-Repeat: No problems reported yet.. :) File for Ceri.. >Fix: #!/usr/bin/perl -T # # # # Copyright (c) 2003 Eric Anderson use DB_File; use Fcntl qw(:DEFAULT :flock); use strict; $ENV{"PATH"} = "/bin:/usr/bin"; $ENV{"TMPDIR"} = "/tmp"; my($fd, $db_obj, %db_hash, $currenttime, $randomcode, $expiretime, $dbpath); ############################################ $dbpath = "/tmp/sendpr-code.db"; $expiretime = 900; # seconds until code expires ############################################ $currenttime = time(); # DB stuff here $db_obj = tie(%db_hash, 'DB_File', $dbpath, O_CREAT|O_RDWR, 0644) or die "dbcreate $dbpath $!"; $fd = $db_obj->fd; open(DB_FH, "+<&=$fd") or die "fdopen $!"; unless (flock (DB_FH, LOCK_EX | LOCK_NB)) { unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } } foreach $randomcode (keys %db_hash) { if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { delete $db_hash{"$randomcode"}; } } $db_obj->sync(); # to flush flock(DB_FH, LOCK_UN); undef $db_obj; untie %db_hash; >Release-Note: >Audit-Trail: >Unformatted: