… | |
… | |
3 | * Rights to this code are documented in doc/pod/license.pod. |
3 | * Rights to this code are documented in doc/pod/license.pod. |
4 | * |
4 | * |
5 | * Copyright © 2005-2007 Atheme Project (http://www.atheme.org) |
5 | * Copyright © 2005-2007 Atheme Project (http://www.atheme.org) |
6 | */ |
6 | */ |
7 | |
7 | |
8 | static char const rcsid[] = "$Id: function.C,v 1.4 2007/08/28 17:08:12 pippijn Exp $"; |
8 | static char const rcsid[] = "$Id: function.C,v 1.5 2007/08/30 19:56:25 pippijn Exp $"; |
9 | |
9 | |
10 | #include "atheme.h" |
10 | #include "atheme.h" |
11 | #include <ermyth/crypto.h> |
11 | #include <ermyth/crypto.h> |
12 | #include <account/mychan.h> |
12 | #include <account/mychan.h> |
13 | #include <account/chanacs.h> |
13 | #include <account/chanacs.h> |
… | |
… | |
21 | */ |
21 | */ |
22 | char * |
22 | char * |
23 | gen_pw (int sz) |
23 | gen_pw (int sz) |
24 | { |
24 | { |
25 | int i; |
25 | int i; |
26 | char *buf = alloc<char> (sz + 1); /* padding */ |
26 | char *buf = salloc<char> (sz + 1); /* padding */ |
27 | |
27 | |
28 | for (i = 0; i < sz; i++) |
28 | for (i = 0; i < sz; i++) |
29 | { |
29 | { |
30 | buf[i] = ch[gen_rand32 () % 26]; |
30 | buf[i] = ch[gen_rand32 () % 26]; |
31 | } |
31 | } |
… | |
… | |
302 | } |
302 | } |
303 | |
303 | |
304 | if (type == EMAIL_SETEMAIL) |
304 | if (type == EMAIL_SETEMAIL) |
305 | { |
305 | { |
306 | /* special case for e-mail change */ |
306 | /* special case for e-mail change */ |
307 | metadata *md = mu->find_metadata ("private:verify:emailchg:newemail"); |
307 | metadata::item *md = mu->find_metadata ("private:verify:emailchg:newemail"); |
308 | |
308 | |
309 | if (md && md->value) |
309 | if (md && md->value) |
310 | email = md->value; |
310 | email = md->value; |
311 | else /* should NEVER happen */ |
311 | else /* should NEVER happen */ |
312 | { |
312 | { |