Skip to content

Commit

Permalink
revert back to one time store get
Browse files Browse the repository at this point in the history
  • Loading branch information
ingon committed Jan 15, 2025
1 parent cebf8c6 commit cf58a9a
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 41 deletions.
8 changes: 4 additions & 4 deletions cmd/connet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -663,11 +663,11 @@ func relayRun(ctx context.Context, cfg RelayConfig, logger *slog.Logger) error {

if cfg.StoreDir == "" {
relayCfg.Stores, err = relay.NewTmpFileStores()
if err != nil {
return err
}
} else {
relayCfg.Stores, err = relay.NewFileStores(cfg.StoreDir)
}
if err != nil {
return err
relayCfg.Stores = relay.NewFileStores(cfg.StoreDir)
}

srv, err := relay.NewServer(relayCfg)
Expand Down
12 changes: 4 additions & 8 deletions relay/control.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,12 @@ type controlClient struct {
logger *slog.Logger
}

func newControlClient(cfg Config) (*controlClient, error) {
func newControlClient(cfg Config, configStore logc.KV[ConfigKey, ConfigValue]) (*controlClient, error) {
root, err := certc.NewRoot()
if err != nil {
return nil, err
}

config, err := cfg.Stores.Config()
if err != nil {
return nil, err
}
clients, err := cfg.Stores.Clients()
if err != nil {
return nil, err
Expand All @@ -81,12 +77,12 @@ func newControlClient(cfg Config) (*controlClient, error) {
serverByName[srv.name] = srv
}

clientsStreamOffset, err := config.GetOrDefault(configClientsStreamOffset, ConfigValue{Int64: logc.OffsetOldest})
clientsStreamOffset, err := configStore.GetOrDefault(configClientsStreamOffset, ConfigValue{Int64: logc.OffsetOldest})
if err != nil {
return nil, err
}

clientsLogOffset, err := config.GetOrDefault(configClientsLogOffset, ConfigValue{Int64: logc.OffsetOldest})
clientsLogOffset, err := configStore.GetOrDefault(configClientsLogOffset, ConfigValue{Int64: logc.OffsetOldest})
if err != nil {
return nil, err
}
Expand All @@ -103,7 +99,7 @@ func newControlClient(cfg Config) (*controlClient, error) {
NextProtos: []string{"connet-relays"},
},

config: config,
config: configStore,
clients: clients,
servers: servers,

Expand Down
2 changes: 1 addition & 1 deletion relay/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func NewServer(cfg Config) (*Server, error) {
var statelessResetKey quic.StatelessResetKey
copy(statelessResetKey[:], statelessResetVal.Bytes)

control, err := newControlClient(cfg)
control, err := newControlClient(cfg, config)
if err != nil {
return nil, err
}
Expand Down
29 changes: 7 additions & 22 deletions relay/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,32 @@ type Stores interface {
Servers() (logc.KV[ServerKey, ServerValue], error)
}

func NewFileStores(dir string) (Stores, error) {
config, err := logc.NewKV[ConfigKey, ConfigValue](filepath.Join(dir, "config"))
if err != nil {
return nil, err
}
clients, err := logc.NewKV[ClientKey, ClientValue](filepath.Join(dir, "clients"))
if err != nil {
return nil, err
}
servers, err := logc.NewKV[ServerKey, ServerValue](filepath.Join(dir, "servers"))
if err != nil {
return nil, err
}

return &fileStores{config, clients, servers}, nil
func NewFileStores(dir string) Stores {
return &fileStores{dir}
}

func NewTmpFileStores() (Stores, error) {
dir, err := os.MkdirTemp("", "connet-relay-")
if err != nil {
return nil, err
}
return NewFileStores(dir)
return NewFileStores(dir), nil
}

type fileStores struct {
config logc.KV[ConfigKey, ConfigValue]
clients logc.KV[ClientKey, ClientValue]
servers logc.KV[ServerKey, ServerValue]
dir string
}

func (f *fileStores) Config() (logc.KV[ConfigKey, ConfigValue], error) {
return f.config, nil
return logc.NewKV[ConfigKey, ConfigValue](filepath.Join(f.dir, "config"))
}

func (f *fileStores) Clients() (logc.KV[ClientKey, ClientValue], error) {
return f.clients, nil
return logc.NewKV[ClientKey, ClientValue](filepath.Join(f.dir, "clients"))
}

func (f *fileStores) Servers() (logc.KV[ServerKey, ServerValue], error) {
return f.servers, nil
return logc.NewKV[ServerKey, ServerValue](filepath.Join(f.dir, "servers"))
}

type ConfigKey string
Expand Down
7 changes: 1 addition & 6 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,13 @@ func NewServer(opts ...ServerOption) (*Server, error) {
return nil, err
}

relayStores, err := relay.NewFileStores(filepath.Join(cfg.dir, "relay"))
if err != nil {
return nil, err
}

controlCAs := x509.NewCertPool()
controlCAs.AddCert(cfg.controlCert.Leaf)
relay, err := relay.NewServer(relay.Config{
Addr: cfg.relayAddr,
Hostport: model.HostPort{Host: cfg.relayHostname, Port: cfg.relayAddr.AddrPort().Port()},
Logger: cfg.logger,
Stores: relayStores,
Stores: relay.NewFileStores(filepath.Join(cfg.dir, "relay")),

ControlAddr: cfg.controlAddr,
ControlHost: "localhost",
Expand Down

0 comments on commit cf58a9a

Please sign in to comment.