Differences From
Artifact [854410a8ca]:
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
................................................................................
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
................................................................................
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