Differences From
Artifact [4fc07a70c1]:
284 284 return 1
285 285 end
286 286 if dbmode.arglist.ct < 1 then goto cmderr end
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 - dlg:tx_enter()
291 + --dlg:tx_enter()
292 292 if dlg:dbsetup() then
293 293 srv:conprep(lib.store.prepmode.conf)
294 294
295 295 do var newkp = lib.crypt.genkp()
296 296 -- generate server privkey
297 297 var kbuf: uint8[lib.crypt.const.maxdersz]
298 - var derkey = lib.crypt.der(false,&newkp, kbuf)
298 + var derkey = lib.crypt.der(false,&newkp, &kbuf[0])
299 + if not derkey then
300 + lib.bail('could not write out DER form of server pubkey!')
301 + end
299 302 dlg:server_setup_self(dbmode.arglist(1), derkey)
300 303 end
301 304
302 305 dlg:conf_set('instance-name', dbmode.arglist(1))
303 306 dlg:conf_set('domain', dbmode.arglist(1))
304 307 do var sec: int8[65] gensec(&sec[0])
305 308 dlg:conf_set('server-secret', &sec[0])
306 309 end
307 310 lib.report('database setup complete; use mkroot to create an administrative user')
308 311 else lib.bail('initialization process interrupted') end
309 - dlg:tx_complete()
312 + --dlg:tx_complete()
310 313 elseif lib.str.cmp(dbmode.arglist(0),'obliterate') == 0 then
311 314 var cfmstr: int8[64] gen_cfstr(&cfmstr[0],0)
312 315
313 316 if dbmode.arglist.ct == 1 then
314 317 lib.bail('you are attempting to completely obliterate all data! make sure you have selected your target correctly. if you really want to do this, pass the confirmation string ', &cfmstr[0])
315 318 elseif dbmode.arglist.ct == 2 then
316 319 if lib.str.cmp(dbmode.arglist(1), cfmstr) == 0 then