parsav  Diff

Differences From Artifact [b1a646e421]:

To Artifact [b40be7a821]:


   287    287   
   288    288   			srv:setup(cnf) 
   289    289   			if lib.str.cmp(dbmode.arglist(0),'init') == 0 and dbmode.arglist.ct == 2 then
   290    290   				lib.report('initializing new database structure for domain ', dbmode.arglist(1))
   291    291   				dlg:tx_enter()
   292    292   				if dlg:dbsetup() then
   293    293   					srv:conprep(lib.store.prepmode.conf)
          294  +
          295  +					do var newkp = lib.crypt.genkp()
          296  +					 -- generate server privkey
          297  +						var kbuf: uint8[lib.crypt.const.maxdersz]
          298  +						var privsz = lib.crypt.der(false,&newkp, kbuf)
          299  +						dlg:server_setup_self(dbmode.arglist(1), [lib.mem.ptr(uint8)] {
          300  +							ptr = &kbuf[0], ct = privsz
          301  +						})
          302  +					end
          303  +
   294    304   					dlg:conf_set('instance-name', dbmode.arglist(1))
   295    305   					dlg:conf_set('domain', dbmode.arglist(1))
   296    306   					do var sec: int8[65] gensec(&sec[0])
   297         -						dlg:conf_set('server-secret', &sec[0])
   298    307   						dlg:conf_set('server-secret', &sec[0])
   299    308   					end
   300    309   					lib.report('database setup complete; use mkroot to create an administrative user')
   301    310   				else lib.bail('initialization process interrupted') end
   302    311   				dlg:tx_complete()
   303    312   			elseif lib.str.cmp(dbmode.arglist(0),'obliterate') == 0 then
   304    313   				var cfmstr: int8[64] gen_cfstr(&cfmstr[0],0)