Differences From
Artifact [b1a646e421]:
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)