+proc userdb_exists {n} {
+
+ binary scan [irctolower $n] H* nhex
+ return [file exists users/$nhex]
+}
+
+proc md5sum {value} { exec md5sum << $value }
+
+# proc userdb_store {n args} { }
+
+def_ucmd newuser {
+ global ownmailaddr ownfullname nick globalsecret
+ prefix_nick
+ if {[ischan $dest]} {
+ error "You must register privately."
+ }
+ if {[userdb_exists $n]} {
+ error "You (or someone else) have already registered the nick $n."
+ }
+ set ownermail [ta_word]
+
+ set now [clock seconds]
+ set small 100000
+ set mult 6
+ set ksecs [expr {$now / $small}]
+ set kmod [expr {$ksecs % $mult}]
+
+ if {[string length $text]} {
+ if {![regexp -nocase {^([0-5])[0-9a-f]+\s+(.*)$} $text pass_sup kmod text]} {
+ error ...
+ }
+ set ksecs [expr {(($ksecs - $kmod) / $mult) * 6 + $kmod}]
+ }
+ set hash [md5sum "$ksecs\n$ownermail\n"]
+ set passwd "$kmod[string range $hash 0 15]"
+
+ if {[info exists pass_sup]} {
+ if {"$passwd" != "$pass_sup"} {
+ error "Incorrect registration password."
+ }
+ userdb_store $n \
+
+ sendaction $n "ignores your ok"
+ } else {
+ set mailmsg \
+"From: $ownmailaddr ($ownfullname)
+Subject: $nick registration
+To: $ownermail
+
+Thanks for starting the registration process. You must now issue the
+`newuser' command with both the same email address again, and your
+registration password from this mail.
+
+Nick: $n
+Email address: $ownermail
+Password: $passwd
+
+This password will be valid for approximately the next 600ks
+(or until I am restarted).
+
+For example,
+ /msg $nick newuser $ownermail $passwd"
+ exec /usr/sbin/sendmail -odi -oee -oi -t << $mailmsg
+ sendaction $n "has sent your registration mail to $ownermail."
+ }
+}
+