parsav  Diff

Differences From Artifact [f6e2d18341]:

To Artifact [d16c1b9a13]:


     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, &timestr[0])
    46         -				var cmt: lib.str.acc
    47         -				cmt:init(48):lpush('enrolled over http on '):push(&timestr[0],0)
           46  +				var cmt = co:stra(48)
           47  +				cmt:lpush('enrolled over http on '):push(&timestr[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