X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=update.cgi;h=223559f276b32786f05c8604892b29be428a1db2;hb=cf6454a1b253861a7167037e07cc2693bf4fe66a;hp=676d2d7e47b59777ae41a5341b4287485f64e272;hpb=b564a1a3a3b8c9363004b2f0f6bc4fe761d4a2d8;p=mirror%2Fuserdir-ldap-cgi.git diff --git a/update.cgi b/update.cgi index 676d2d7..223559f 100755 --- a/update.cgi +++ b/update.cgi @@ -8,7 +8,10 @@ use lib '.'; use strict vars; #use Apache::Registry; use CGI; +use Data::UUID; +use Digest::HMAC_SHA1 qw(hmac_sha1_hex); use Util; +use English; use URI::Escape; use Net::LDAP qw(:all); @@ -29,6 +32,11 @@ if ($proto eq "http" || !($id && $password)) { my $ldap; +open (F, "<$config{passdir}/key-hmac-$UID") || &Util::HTMLError($!); +my $hmac_key = ; +close(F); +chomp($hmac_key); + sub DieHandler { $ldap->unbind if (defined($ldap)); } @@ -58,7 +66,11 @@ my $entries = $mesg->as_struct; if ($mesg->count != 1) { # complain and quit } - + +$mesg = $ldap->search(base => $config{hostbasedn}, filter => 'host=*'); +$mesg->code && &Util::HTMLError($mesg->error); +my $host_entries = $mesg->as_struct; + my @dns = keys(%$entries); my $entry = $entries->{$dns[0]}; @@ -105,6 +117,39 @@ if (!($query->param('doupdate'))) { . '>male