diff --git a/server/store/client_store.go b/server/store/client_store.go index 90c8b28..c6e7059 100644 --- a/server/store/client_store.go +++ b/server/store/client_store.go @@ -36,13 +36,10 @@ func RegisterClientStoreDriver(name string, driver ClientStoreDriver) { } // OpenClientStore returns a ClientStore specified by a configuration. -func OpenClientStore(name string, cfg *Config) (ClientStore, error) { - driver, ok := clientStoreDrivers[name] +func OpenClientStore(cfg *Config) (ClientStore, error) { + driver, ok := clientStoreDrivers[cfg.ClientStore] if !ok { - return nil, fmt.Errorf( - "store: unknown driver %q (forgotten import?)", - name, - ) + return nil, fmt.Errorf("store: unknown driver %q (forgotten import?)", cfg.ClientStore) } return driver.New(cfg) diff --git a/server/store/peer_store.go b/server/store/peer_store.go index 568905d..92cc52e 100644 --- a/server/store/peer_store.go +++ b/server/store/peer_store.go @@ -49,13 +49,10 @@ func RegisterPeerStoreDriver(name string, driver PeerStoreDriver) { } // OpenPeerStore returns a PeerStore specified by a configuration. -func OpenPeerStore(name string, cfg *Config) (PeerStore, error) { - driver, ok := peerStoreDrivers[name] +func OpenPeerStore(cfg *Config) (PeerStore, error) { + driver, ok := peerStoreDrivers[cfg.PeerStore] if !ok { - return nil, fmt.Errorf( - "storage: unknown driver %q (forgotten import?)", - name, - ) + return nil, fmt.Errorf("storage: unknown driver %q (forgotten import?)", cfg.PeerStore) } return driver.New(cfg) diff --git a/server/store/store.go b/server/store/store.go index 9ed2d0b..4d8da45 100644 --- a/server/store/store.go +++ b/server/store/store.go @@ -30,9 +30,27 @@ func constructor(srvcfg *config.ServerConfig, tkr *tracker.Tracker) (server.Serv return nil, errors.New("store: invalid store config: " + err.Error()) } + cs, err := OpenClientStore(cfg) + if err != nil { + return nil, err + } + + ps, err := OpenPeerStore(cfg) + if err != nil { + return nil, err + } + + ips, err := OpenIPStore(cfg) + if err != nil { + return nil, err + } + theStore = &Store{ - cfg: cfg, - tkr: tkr, + cfg: cfg, + tkr: tkr, + ClientStore: cs, + PeerStore: ps, + IPStore: ips, } } return theStore, nil