Differences From
Artifact [f6e2d18341]:
9 9 lib.osclock.ctime_r(&time, &tstr[0])
10 10 var body = data.view.conf_sec {
11 11 lastreset = pstr {
12 12 ptr = &tstr[0], ct = lib.str.sz(&tstr[0])
13 13 }
14 14 }
15 15
16 - var a: lib.str.acc a:init(768) defer a:free()
16 + var a = co:stra(768) -- defer a:free()
17 17
18 18 if co.srv.cfg.credmgd then
19 19 var new = co:pgetv('new')
20 20 if not new then
21 21 body:append(&a)
22 22 var credmgr = data.view.conf_sec_credmg {
23 23 credlist = pstr{'',0};
24 24 }
25 25 var creds = co.srv:auth_enum_uid(uid)
26 26 if creds.ct > 0 then defer creds:free()
27 - var cl: lib.str.acc cl:init(256)
27 + var cl = co:stra(256)
28 28 for i=0, creds.ct do var c = creds(i).ptr
29 29 if not c.blacklist then
30 30 cl:lpush('<option value="'):shpush(c.aid):lpush('"> ['):push(c.kind,0):lpush('] '):push(c.comment,0)
31 31 if c.netmask.pv ~= 0 then
32 32 -- push string rep
33 33 end
34 34 cl:lpush('</option>')
35 35 end
36 36 end
37 37 credmgr.credlist = cl:finalize()
38 38 end
39 39 credmgr:append(&a)
40 - if credmgr.credlist.ct > 0 then credmgr.credlist:free() end
40 + --if credmgr.credlist.ct > 0 then credmgr.credlist:free() end
41 41 else
42 42 if new:cmp(lib.str.plit'pw') then
43 43 var d: data.view.conf_sec_pwnew
44 44 var time = lib.osclock.time(nil)
45 45 var timestr: int8[26] lib.osclock.ctime_r(&time, ×tr[0])
46 - var cmt: lib.str.acc
47 - cmt:init(48):lpush('enrolled over http on '):push(×tr[0],0)
46 + var cmt = co:stra(48)
47 + cmt:lpush('enrolled over http on '):push(×tr[0],0)
48 48 d.comment = cmt:finalize()
49 49
50 - var st = d:tostr()
51 - d.comment:free()
50 + var st = d:poolstr(&co.srv.pool)
51 + --d.comment:free()
52 52 return st
53 53 elseif new:cmp(lib.str.plit'challenge') then
54 54 -- we're going to break the rules a bit and do database munging from
55 55 -- the rendering code, because doing otherwise in this case would be
56 56 -- genuinely nightmarish
57 57 elseif new:cmp(lib.str.plit'otp') then
58 58 elseif new:cmp(lib.str.plit'api') then