parsav  Diff

Differences From Artifact [4fc07a70c1]:

To Artifact [63607cdb2b]:


   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