parsav  Diff

Differences From Artifact [854410a8ca]:

To Artifact [baac561cfe]:


     3      3   local secmode = lib.enum { 'public', 'private', 'lockdown', 'isolate' }
     4      4   local pstring = lib.mem.ptr(int8)
     5      5   local struct srv
     6      6   local struct cfgcache {
     7      7   	secret: pstring
     8      8   	pol_sec: secmode.t
     9      9   	pol_reg: bool
           10  +	pol_autoherald: bool
    10     11   	credmgd: bool
    11     12   	maxupsz: intptr
    12     13   	poolinitsz: intptr
    13     14   	instance: pstring
    14     15   	overlord: &srv
    15     16   	ui_cue_staff: pstring
    16     17   	ui_cue_founder: pstring
................................................................................
   324    325   end
   325    326   
   326    327   terra convo:stra(sz: intptr) -- convenience function
   327    328   	var s: lib.str.acc
   328    329   	s:pool(&self.srv.pool,sz)
   329    330   	return s
   330    331   end
          332  +
          333  +convo.methods.qstr = macro(function(self, ...) -- convenience string builder
          334  +	local exp = {...}
          335  +	return `lib.str.acc{}:pcompose(&self.srv.pool, [exp]):finalize()
          336  +end)
   331    337   
   332    338   convo.methods.assertpow = macro(function(self, pow)
   333    339   	return quote
   334    340   		var ok = true
   335    341   		if self.aid == 0 or self.who.rights.powers.[pow:asvalue()]() == false then
   336    342   			ok = false
   337    343   			self:complain(403,'insufficient privileges',['you lack the <strong>'..pow:asvalue()..'</strong> power and cannot perform this action'])
................................................................................
   950    956   end
   951    957   
   952    958   terra cfgcache:load()
   953    959   	self.instance = self.overlord:conf_get('instance-name')
   954    960   	self.secret = self.overlord:conf_get('server-secret')
   955    961   
   956    962   	self.pol_reg = self:cfbool('policy-self-register', false)
          963  +	self.pol_autoherald = self:cfbool('policy-self-herald', true)
   957    964   
   958    965   	do self.credmgd = false
   959    966   	var sreg = self.overlord:conf_get('credential-store')
   960    967   	if sreg:ref() then
   961    968   		if lib.str.cmp(sreg.ptr, 'managed') == 0
   962    969   			then self.credmgd = true
   963    970   			else self.credmgd = false