… | |
… | |
24 | $ns->query ($flags, $text, Coro::rouse_cb); |
24 | $ns->query ($flags, $text, Coro::rouse_cb); |
25 | Coro::rouse_wait |
25 | Coro::rouse_wait |
26 | } |
26 | } |
27 | |
27 | |
28 | sub can_cleanup { |
28 | sub can_cleanup { |
|
|
29 | # highscore list is not cleared out, rethink |
|
|
30 | # also, admin accounts can be hacked this way, if unused for long. |
|
|
31 | return 0; |
|
|
32 | |
29 | my ($pl, $mtime) = @_; |
33 | my ($pl, $mtime) = @_; |
30 | |
34 | |
31 | my $age = time - $mtime; |
35 | my $age = time - $mtime; |
32 | my $level = $pl->ob->level; |
36 | my $level = $pl->ob->level; |
33 | |
37 | |
… | |
… | |
137 | if ($token =~ /!!(.*)/) { |
141 | if ($token =~ /!!(.*)/) { |
138 | return +(substr $pass, 0, 8) eq pack "H*", $1; |
142 | return +(substr $pass, 0, 8) eq pack "H*", $1; |
139 | } elsif ($token =~ /!(.*)/) { |
143 | } elsif ($token =~ /!(.*)/) { |
140 | return $pass eq pack "H*", $1; |
144 | return $pass eq pack "H*", $1; |
141 | } else { |
145 | } else { |
142 | return $token eq crypt $pass, $token; |
146 | return $token eq encode_password $pass; |
143 | } |
147 | } |
144 | } |
148 | } |
145 | |
149 | |
146 | # delete a player directory |
150 | # delete a player directory |
147 | sub nuke_playerdir { |
151 | sub nuke_playerdir { |