diff --git a/en/cgi/Makefile b/en/cgi/Makefile index 04a16ab5a8..fe2dc7a4e6 100644 --- a/en/cgi/Makefile +++ b/en/cgi/Makefile @@ -1,46 +1,46 @@ -# $FreeBSD: www/en/cgi/Makefile,v 1.27 2005/11/06 22:29:45 ceri Exp $ +# $FreeBSD: www/en/cgi/Makefile,v 1.28 2005/12/04 12:50:17 ceri Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif DATA= DATA+= Gnats.pm DATA+= cgi-lib.pl DATA+= cgi-style.pl DATA+= cvsweb.conf DATA+= cvsweb.conf-freebsd DATA+= cvsweb.conf-netbsd DATA+= cvsweb.conf-openbsd DATA+= ftp.mirrors DATA+= html.pl CGI= +CGI+= confirm-code.cgi CGI+= cvsweb.cgi CGI+= dosendpr.cgi CGI+= ftp.cgi CGI+= gallery.cgi CGI+= getmsg.cgi CGI+= mailindex.cgi CGI+= man.cgi CGI+= mid.cgi CGI+= mirror.cgi CGI+= missing_handler.cgi CGI+= monthly.cgi CGI+= pds.cgi CGI+= ports.cgi CGI+= query-pr.cgi CGI+= query-pr-summary.cgi CGI+= search.cgi -CGI+= sendpr-code.cgi CGI+= url.cgi .SUFFIXES: .C .cgi .C.cgi: ${CXX} ${CFLAGS} -o ${.TARGET} ${.IMPSRC} .include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/cgi/confirm-code.cgi b/en/cgi/confirm-code.cgi index 411113f0c0..503de5c647 100755 --- a/en/cgi/confirm-code.cgi +++ b/en/cgi/confirm-code.cgi @@ -1,83 +1,114 @@ #!/usr/bin/perl -T # -# $FreeBSD: www/en/cgi/confirm-code.cgi,v 1.4 2004/12/13 22:43:05 ceri Exp $ +# $FreeBSD: www/en/cgi/confirm-code.cgi,v 1.5 2005/11/11 08:58:06 ceri Exp $ # # Copyright (c) 2003 Eric Anderson +# Copyright (c) 2005 Ceri Davies use DB_File; use Fcntl qw(:DEFAULT :flock); -use strict; +use POSIX qw(strftime); + +require 'cgi-lib.pl'; $ENV{"PATH"} = "/bin:/usr/bin"; $ENV{"TMPDIR"} = "/tmp"; my($fd, $db_obj, %db_hash, $currenttime, $randomcode, $pngbindata, $randompick, $pnmlist, $i); -my($expiretime, $pnmcat, $pnmtopng, $pnmdatadir, $dbpath); +my(%db, $expiretime, $rfc1123_expiry, $pnmcat, $pnmtopng, $pnmdatadir, $dbpath, $FORM_db); ############################################ # generate 8 character code from A-Z0-9 (no I,O,0,1 for clarity) my @availchars = qw(A B C D E F G H J K L M N P Q R S T U V W X Y Z 2 3 4 5 6 7 8 9); $pnmcat = "/usr/local/bin/pnmcat"; $pnmtopng = "/usr/local/bin/pnmtopng"; $pnmdatadir = "../gifs/"; -$dbpath = "/tmp/sendpr-code.db"; -$expiretime = 2700; # seconds until code expires +$expiretime = 0; # Default for the Expires: header ############################################ +# The code databases that we know about. If a query comes in for +# anything else, we return a zero byte "image" (rather than an image +# with a rude word in, which was tempting). + +%db = ( +# The querypr one is not used, but stands as an example. +# querypr => { +# path => '/tmp/querypr-code.db', +# lifespan => 2700, +# }, + sendpr => { + path => '/tmp/sendpr-code.db', + lifespan => 2700, + }, +); + +&ReadParse(*in); +$FORM_db = $in{"db"}; $FORM_db ||= "junk"; + $currenttime = time(); +$rfc1123_expiry = strftime "%a, %b %d %H:%M:%S %Y %Z", + gmtime($currenttime + $expiretime); -# DB stuff here -$db_obj = tie(%db_hash, 'DB_File', $dbpath, O_CREAT|O_RDWR, 0644) +if (exists($db{$FORM_db})) { + $dbpath = $db{$FORM_db}->{'path'}; + $expiretime = $db{$FORM_db}->{'lifespan'}; + + # 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 $!"; + $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: $!" } -} + unless (flock (DB_FH, LOCK_EX | LOCK_NB)) { + unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } + } -&gencode; - -while ($db_hash{$randomcode}) { - # it already exists so: - # we check age (over x seconds old?) - # if it is, override with new date - # if not, generate a new code - if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { - &gencode; - } else { - delete $db_hash{"$randomcode"}; + &gencode; + + while ($db_hash{$randomcode}) { + # it already exists so: + # we check age (over x seconds old?) + # if it is, override with new date + # if not, generate a new code + if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { + &gencode; + } else { + delete $db_hash{"$randomcode"}; + } } -} -$db_hash{$randomcode} = $currenttime; + $db_hash{$randomcode} = $currenttime; -$db_obj->sync(); # to flush -flock(DB_FH, LOCK_UN); -undef $db_obj; # removing the last reference to the DB - # closes it. Closing DB_FH is implicit. -untie %db_hash; + $db_obj->sync(); # to flush + flock(DB_FH, LOCK_UN); + undef $db_obj; # removing the last reference to the DB + # closes it. Closing DB_FH is implicit. + untie %db_hash; -$/ = ""; + $/ = ""; + + open(BUILDPNG, "$pnmcat -lr $pnmlist | $pnmtopng 2>/dev/null |"); + $pngbindata = ; + close(BUILDPNG); +} else { + $pngbindata = undef; +}; -open(BUILDPNG, "$pnmcat -lr $pnmlist | $pnmtopng 2>/dev/null |"); -$pngbindata = ; print "Pragma: no-cache\n"; +print "Expires: $rfc1123_expiry\n"; print "Content-type: image/png\n\n"; print "$pngbindata"; -close(BUILDPNG); ############################################ sub gencode { srand( time() ^ ($$ + ($$ << 15)) ); for ($i = 0; $i < 8; $i++) { $randompick = $availchars[int(rand(@availchars))]; $randomcode .= "$randompick"; $pnmlist .= "$pnmdatadir$randompick\.pnm "; } } - diff --git a/en/cgi/sendpr-code.cgi b/en/cgi/sendpr-code.cgi deleted file mode 100755 index 1fa3b1d851..0000000000 --- a/en/cgi/sendpr-code.cgi +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/perl -T -# -# $FreeBSD: www/en/cgi/sendpr-code.cgi,v 1.5 2005/11/11 08:58:06 ceri Exp $ -# -# Copyright (c) 2003 Eric Anderson -# Copyright (c) 2005 Ceri Davies - -use DB_File; -use Fcntl qw(:DEFAULT :flock); -use POSIX qw(strftime); -use strict; - -$ENV{"PATH"} = "/bin:/usr/bin"; -$ENV{"TMPDIR"} = "/tmp"; - -my($fd, $db_obj, %db_hash, $currenttime, $randomcode, $pngbindata, $randompick, $pnmlist, $i); -my($expiretime, $rfc1123_expiry, $pnmcat, $pnmtopng, $pnmdatadir, $dbpath); - -############################################ -# generate 8 character code from A-Z0-9 (no I,O,0,1 for clarity) -my @availchars = qw(A B C D E F G H J K L M N P Q R S T U V W X Y Z - 2 3 4 5 6 7 8 9); - -$pnmcat = "/usr/local/bin/pnmcat"; -$pnmtopng = "/usr/local/bin/pnmtopng"; -$pnmdatadir = "../gifs/"; -$dbpath = "/tmp/sendpr-code.db"; -$expiretime = 2700; # seconds until code expires -############################################ - -$currenttime = time(); -$rfc1123_expiry = strftime "%a, %b %d %H:%M:%S %Y %Z", gmtime($currenttime + $expiretime); - -# 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: $!" } -} - -&gencode; - -while ($db_hash{$randomcode}) { - # it already exists so: - # we check age (over x seconds old?) - # if it is, override with new date - # if not, generate a new code - if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { - &gencode; - } else { - delete $db_hash{"$randomcode"}; - } -} - -$db_hash{$randomcode} = $currenttime; - -$db_obj->sync(); # to flush -flock(DB_FH, LOCK_UN); -undef $db_obj; # removing the last reference to the DB - # closes it. Closing DB_FH is implicit. -untie %db_hash; - -$/ = ""; - -open(BUILDPNG, "$pnmcat -lr $pnmlist | $pnmtopng 2>/dev/null |"); -$pngbindata = ; -print "Pragma: no-cache\n"; -print "Expires: $rfc1123_expiry\n"; -print "Content-type: image/png\n\n"; -print "$pngbindata"; -close(BUILDPNG); - -############################################ -sub gencode { - srand( time() ^ ($$ + ($$ << 15)) ); - - for ($i = 0; $i < 8; $i++) { - $randompick = $availchars[int(rand(@availchars))]; - $randomcode .= "$randompick"; - $pnmlist .= "$pnmdatadir$randompick\.pnm "; - } -} - - diff --git a/en/send-pr.sgml b/en/send-pr.sgml index 585d384711..e99e59e509 100644 --- a/en/send-pr.sgml +++ b/en/send-pr.sgml @@ -1,157 +1,157 @@ + %navincludes; %includes; ]> &header; Bugs

Thank you for taking the time to let us know about a problem with FreeBSD.

This form allows you to submit Problem Reports about issues that you believe are actual bugs in either the source, the documentation, or the website itself. If you are having problems with initially installing FreeBSD, or have other questions of the form "why doesn't foo work" or "does FreeBSD work with bar", please ask these questions in the appropriate support forums; see the support page for more information.

Before filling out the form, please take the time to read the Writing FreeBSD Problem Reports guidelines. This may save you time and frustration getting help with your problem.

Please fill out the form as completely as possible. Make sure you fill in the "Environment" field as requested with the output from the machine on which the problem occurred.

Note: copy/paste will destroy TABs and spacing, and this web form should not be used to submit code as plain text.

Please note that, unless you explicitly state otherwise, any changes you submit to the FreeBSD Project are assumed to be under the same license as FreeBSD. Also, the email address that you use will be available to the public through the web interface, so you should already have an effective spam filter in place.

Finally, be forewarned that this page requires that you are able to view images as a measure against abuse of the system. We regret having to have imposed this measure, but it is completey unavoidable. If you are unable to view images for any reason, please accept our apologies for the inconvenience and email your problem report to the bugbusters team for submission into the bug tracking system.

Note: before hitting 'submit', please save your work. If your browser caches images, you may have a stale image shown on your page, and your submission will be rejected. Depending on your browser, you might lose work in this case. Help save yourself from this common frustration.

:


:


:





:

:

:



:


:


:


:


:




&footer;