Maint: dns package state rework

- Interface composition with loopstate interfaces
- Use loopstate.Manager
- Create dns/state package for handling settings
This commit is contained in:
Quentin McGaw (laptop)
2021-07-24 18:34:55 +00:00
parent 3f1fb52fcb
commit 7479974d79
7 changed files with 130 additions and 216 deletions

View File

@@ -6,23 +6,11 @@ import (
"github.com/qdm12/gluetun/internal/models"
)
type StatusGetterApplier interface {
StatusGetter
StatusApplier
}
type StatusGetter interface {
GetStatus() (status models.LoopStatus)
}
func (l *Loop) GetStatus() (status models.LoopStatus) { return l.state.GetStatus() }
type StatusApplier interface {
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
func (l *Loop) GetStatus() (status models.LoopStatus) {
return l.statusManager.GetStatus()
}
func (l *Loop) ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error) {
return l.state.ApplyStatus(ctx, status)
return l.statusManager.ApplyStatus(ctx, status)
}