+def_ucmd newuser {
+ global ownmailaddr ownfullname nick globalsecret
+ prefix_nick
+ if {[ischan $dest]} {
+ error "You must register privately."
+ }
+ binary scan [irctolower $n] H* nhex
+ if {[file exists users/$nhex]} {
+ 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]+)$} $text pass_sup kmod]} {
+ }
+ set ksecs [expr {(($ksecs - $kmod) / $mult) * 6 + $kmod}]
+ }
+ set tohash "$ksecs\n$ownermail\n"
+ set hash [exec md5sum << $tohash]
+ set passwd "$kmod[string range $hash 0 15]"
+
+ if {[info exists pass_sup]} {
+ if {"$passwd" != "$pass_sup"} {
+ error "Incorrect registration password."
+ }
+ 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."
+ }
+}
+