$error= 0;
$registernew= 0;
$pick= 0;
+$deleted= 0;
$pickvarsubnet= 8;
$pickvarprefix= 24;
$pick28check= '';
read_database();
$id= randnybs(16);
- $generation= 0;
$db{$id}= $ent= { };
$ent->{'created'}= $now;
$ent->{'changed'}= 0;
- $email= $in{'email'};
+ $alwaysemail= $email= $in{'email'};
set_entry();
$justcreated= 1;
read_database();
get_entry();
check_password();
- check_generation();
$ent->{'changed'}= $now;
$email= length($in{'email'}) ? $in{'email'} : $db{$id}->{'email'};
read_database();
get_entry();
check_password();
- check_generation();
-
+
+ $deleted= 1;
+ show_entry();
+
delete $db{$id};
write_database();
- $deleted= 1;
finish();
} elsif (length $in{'pick'}) {
$$dk= gmtime($$k)." GMT";
}
$alwaysemail= $email;
- if ($ent->{'hiddenemail'} && !$justcreated && !$fulldetails && !$justupdated) {
+ if ($ent->{'hiddenemail'} && !$justcreated && \
+ !$fulldetails && !$justupdated && !$deleted) {
$displayemail= 0;
$email= '';
} else {
$emailhidechecked= $ent->{'hiddenemail'} ? 'checked' : '';
}
-sub check_generation () {
- $ent->{'generation'} eq $ent->{'generation'} or finish_error('generation');
-}
-
sub set_entry () {
my ($v, $b, @b, $val, $mask);
$net= $in{'net'};
print DEBUG "$current_areai\n";
$current_areai>=0 or finish_error("wrongnet");
print DEBUG "ok\n";
-
+
foreach $v (qw(name contact email)) {
$$v= $in{$v} unless $v eq 'email';
length $$v or finish_error("no$v");
}
$hiddenemail= !!length $in{'hiddenemail'};
- foreach $k (qw(generation network prefix name contact email hiddenemail)) {
+ foreach $k (qw(network prefix name contact email hiddenemail)) {
$ent->{$k}= $$k;
}
my ($type) = @_;
my ($t, $esel, $f);
foreach $t (qw(noemail nonet noname nocontact badsize wrongsize badnet wrongnet
- nopassword badpassword notfound generation badchar)) {
+ nopassword badpassword notfound badchar)) {
$esel= "error_$t";
$$esel= 0;
$f=1 if $type eq $t;
$contactboxlen= 55;
$emailboxlen= 55;
$nullemail= 'discard-all@chiark.greenend.org.uk';
-$cgi= 'http://www.chiark.greenend.org.uk/ucgi/~ijackson/cam-g-rin';
+$cgi= 'http://www.chiark.greenend.org.uk/ucgi/~ijackson/cam-grin';
$ENV{'PATH'}= '/usr/local/bin:/bin:/usr/bin';
#
-@db_fields= qw(generation network prefix name contact email hiddenemail created changed);
+@db_fields= qw(network prefix name contact email hiddenemail created changed);
sub read_database () {
print DEBUG "reading\n";
sub send_password ($) {
$password= make_password($id);
process_file('notice.txt');
- print DEBUG "---\n$out---\n";
+ open SM, "| /usr/sbin/sendmail -odb -oi -oee -f $nullemail -t" or die $!;
+ print SM $out or die $!;
+ close SM; $? and die $?;
}
1;
updated @@@name@@@
@@@endif:@@@
+@@@if:deleted@@@
+deleted @@@name@@@
+@@@endif:@@@
+
@@@if:listingall@@@
entire database
@@@endif:@@@
Password sent
@@@endif:@@@
+@@@if:deleted@@@
+Database entry deleted
+@@@endif:@@@
+
@@@if:listingall@@@
Entire database listing
@@@endif:@@@
registry administrator, @@@adminemail@@@, quoting identifier @@@id@@@.
@@@endif:@@@
-@@@if:error_generation@@@
-Another modification has been made to the record. Please use the
-`view' option to see the new values, before making any further
-changes.
-@@@endif:@@@
-
@@@if:error_noemail@@@
You must provide an email address.
@@@endif:@@@
database entry.
@@@endif:@@@
+@@@if:deleted@@@
+<h2>Deleted entry</h2>
+The following entry has been deleted. If this was a mistake, you may
+re-register it now.
+@@@endif:@@@
+
@@@if:details|fulldetails@@@
<h2>Entry details</h2>
@@@endif:@@@
password, requesting confirmation. When you have received the email
you may use `confirm/update', below, to confirm your database entry.
If you do not confirm it it will expire in a few days.
-
@@@endif:@@@
@@@if:justupdated@@@
The database entry below has been updated/confirmed/renewed.
@@@endif:@@@
-
-@@@if:registernew|details|fulldetails|justcreated|justupdated|picked|passwordsent@@@
+@@@if:registernew|details|fulldetails|justcreated|justupdated|picked|passwordsent|deleted@@@
<p>
<form method="POST" action="@@@cgi@@@">
<input type=submit name="register" value="Register.">
@@@endif:@@@
+@@@if:deleted@@@
+<input type=submit name="register" value="Re-register.">
+@@@endif:@@@
+
@@@if:details|fulldetails|justcreated|justupdated|passwordsent@@@
<p>
@@@ifnot:changed@@@
Not yet confirmed.
@@@endif:@@@
-<input type=hidden name="generation" value="@@@generation@@@">
@@@endif:@@@
@@@if:details@@@
<p>
@@@endif:@@@
+@@@if:details|justcreated|passwordsent@@@
+Password: <input type=text name="pw" size="30">
+<br>
+@@@endif:@@@
+
@@@ifnot:displayemail@@@
<input type=submit name="view" value="View full details.">
@@@endif:@@@
@@@if:details|fulldetails|justcreated|justupdated|passwordsent@@@
<input type=submit name="update" value="Update/confirm/renew.">
<input type=submit name="delete" value="Delete.">
-<br>
-@@@endif:@@@
-
-@@@if:details|justcreated|passwordsent@@@
-Password: <input type=text name="pw" size="30">
@@@endif:@@@
@@@if:fulldetails|justupdated@@@
+<br>
<input type=hidden name="pw" value="@@@password@@@">
Password: supplied.
@@@endif:@@@