@@ -89,7 +89,10 @@ func NewStores(cfg *Config, clock clock.Clock) (*stores, error) {
8989		networkDir  =  filepath .Join (cfg .LitDir , cfg .Network )
9090		acctStore   accounts.Store 
9191		sessStore   session.Store 
92- 		closeFns    =  make (map [string ]func () error )
92+ 
93+ 		stores  =  & stores {
94+ 			closeFns : make (map [string ]func () error ),
95+ 		}
9396	)
9497
9598	switch  cfg .DatabaseBackend  {
@@ -98,76 +101,68 @@ func NewStores(cfg *Config, clock clock.Clock) (*stores, error) {
98101		// the directory where we will store the database file exists. 
99102		err  :=  makeDirectories (networkDir )
100103		if  err  !=  nil  {
101- 			return  nil , err 
104+ 			return  stores , err 
102105		}
103106
104107		sqlStore , err  :=  db .NewSqliteStore (cfg .Sqlite )
105108		if  err  !=  nil  {
106- 			return  nil , err 
109+ 			return  stores , err 
107110		}
108111
109112		acctStore  =  accounts .NewSQLStore (sqlStore .BaseDB , clock )
110113		sessStore  =  session .NewSQLStore (sqlStore .BaseDB , clock )
111- 		closeFns ["sqlite" ] =  sqlStore .BaseDB .Close 
114+ 
115+ 		stores .accounts  =  acctStore 
116+ 		stores .sessions  =  sessStore 
117+ 		stores .closeFns ["sqlite" ] =  sqlStore .BaseDB .Close 
112118
113119	case  DatabaseBackendPostgres :
114120		sqlStore , err  :=  db .NewPostgresStore (cfg .Postgres )
115121		if  err  !=  nil  {
116- 			return  nil , err 
122+ 			return  stores , err 
117123		}
118124
119125		acctStore  =  accounts .NewSQLStore (sqlStore .BaseDB , clock )
120126		sessStore  =  session .NewSQLStore (sqlStore .BaseDB , clock )
121- 		closeFns ["postgres" ] =  sqlStore .BaseDB .Close 
127+ 
128+ 		stores .accounts  =  acctStore 
129+ 		stores .sessions  =  sessStore 
130+ 		stores .closeFns ["postgres" ] =  sqlStore .BaseDB .Close 
122131
123132	default :
124133		accountStore , err  :=  accounts .NewBoltStore (
125134			filepath .Dir (cfg .MacaroonPath ), accounts .DBFilename ,
126135			clock ,
127136		)
128137		if  err  !=  nil  {
129- 			return  nil , err 
138+ 			return  stores , err 
130139		}
131- 		closeFns ["bbolt-accounts" ] =  accountStore .Close 
140+ 
141+ 		stores .accounts  =  accountStore 
142+ 		stores .closeFns ["bbolt-accounts" ] =  accountStore .Close 
132143
133144		sessionStore , err  :=  session .NewDB (
134145			networkDir , session .DBFilename , clock , accountStore ,
135146		)
136147		if  err  !=  nil  {
137- 			return  nil , err 
148+ 			return  stores , err 
138149		}
139- 		closeFns ["bbolt-sessions" ] =  sessionStore .Close 
140150
141- 		acctStore  =  accountStore 
142- 		sessStore  =  sessionStore 
151+ 		stores . sessions  =  sessionStore 
152+ 		stores . closeFns [ "bbolt-sessions" ]  =  sessionStore . Close 
143153	}
144154
145155	firewallBoltDB , err  :=  firewalldb .NewBoltDB (
146156		networkDir , firewalldb .DBFilename , sessStore ,
147157	)
148158	if  err  !=  nil  {
149- 		return  nil , fmt .Errorf ("error creating firewall BoltDB: %v" ,
159+ 		return  stores , fmt .Errorf ("error creating firewall BoltDB: %v" ,
150160			err )
151161	}
152- 	closeFns ["bbolt-firewalldb" ] =  firewallBoltDB .Close 
153- 
154- 	return  & stores {
155- 		accounts :     acctStore ,
156- 		sessions :     sessStore ,
157- 		firewall :     firewalldb .NewDB (firewallBoltDB ),
158- 		firewallBolt : firewallBoltDB ,
159- 		close : func () error  {
160- 			var  returnErr  error 
161- 			for  storeName , fn  :=  range  closeFns  {
162- 				err  :=  fn ()
163- 				if  err  !=  nil  {
164- 					log .Errorf ("error closing %s store: %v" ,
165- 						storeName , err )
166- 					returnErr  =  err 
167- 				}
168- 			}
169- 
170- 			return  returnErr 
171- 		},
172- 	}, nil 
162+ 
163+ 	stores .firewall  =  firewalldb .NewDB (firewallBoltDB )
164+ 	stores .firewallBolt  =  firewallBoltDB 
165+ 	stores .closeFns ["bbolt-firewalldb" ] =  firewallBoltDB .Close 
166+ 
167+ 	return  stores , nil 
173168}
0 commit comments