diff options
author | 2022-05-30 13:41:24 +0100 | |
---|---|---|
committer | 2022-05-30 14:41:24 +0200 | |
commit | 43ac0cdb9c4eea9d3c5eceb2c11b9e5b98b87b00 (patch) | |
tree | f0d5967d0ce639b6bc82aaf607f62e228fdf4559 /internal/federation | |
parent | [chore] Mastodon api fixups (#617) (diff) | |
download | gotosocial-43ac0cdb9c4eea9d3c5eceb2c11b9e5b98b87b00.tar.xz |
[chore] Global server configuration overhaul (#575)
* move config flag names and usage to config package, rewrite config package to use global Configuration{} struct
Signed-off-by: kim <grufwub@gmail.com>
* improved code comment
Signed-off-by: kim <grufwub@gmail.com>
* linter
Signed-off-by: kim <grufwub@gmail.com>
* fix unmarshaling
Signed-off-by: kim <grufwub@gmail.com>
* remove kim's custom go compiler changes
Signed-off-by: kim <grufwub@gmail.com>
* generate setter and flag-name functions, implement these in codebase
Signed-off-by: kim <grufwub@gmail.com>
* update deps
Signed-off-by: kim <grufwub@gmail.com>
* small change
Signed-off-by: kim <grufwub@gmail.com>
* appease the linter...
Signed-off-by: kim <grufwub@gmail.com>
* move configuration into ConfigState structure, ensure reloading to/from viper settings to keep in sync
Signed-off-by: kim <grufwub@gmail.com>
* lint
Signed-off-by: kim <grufwub@gmail.com>
* update code comments
Signed-off-by: kim <grufwub@gmail.com>
* fix merge issue
Signed-off-by: kim <grufwub@gmail.com>
* fix merge issue
Signed-off-by: kim <grufwub@gmail.com>
* improved version string (removes time + go version)
Signed-off-by: kim <grufwub@gmail.com>
* fix version string build to pass test script + consolidate logic in func
Signed-off-by: kim <grufwub@gmail.com>
* add license text, update config.Defaults comment
Signed-off-by: kim <grufwub@gmail.com>
* add license text to generated config helpers file
Signed-off-by: kim <grufwub@gmail.com>
* defer unlock on config.Set___(), to ensure unlocked on panic
Signed-off-by: kim <grufwub@gmail.com>
* make it more obvious which cmd flags are being attached
Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/federation')
-rw-r--r-- | internal/federation/authenticate.go | 4 | ||||
-rw-r--r-- | internal/federation/dereferencing/thread.go | 13 | ||||
-rw-r--r-- | internal/federation/federatingdb/inbox.go | 3 | ||||
-rw-r--r-- | internal/federation/federatingdb/owns.go | 4 | ||||
-rw-r--r-- | internal/federation/federatingdb/update.go | 4 | ||||
-rw-r--r-- | internal/federation/federatingdb/util.go | 5 |
6 files changed, 9 insertions, 24 deletions
diff --git a/internal/federation/authenticate.go b/internal/federation/authenticate.go index 380fa1448..1d0a4a7ef 100644 --- a/internal/federation/authenticate.go +++ b/internal/federation/authenticate.go @@ -29,7 +29,6 @@ import ( "strings" "github.com/sirupsen/logrus" - "github.com/spf13/viper" "github.com/go-fed/httpsig" "github.com/superseriousbusiness/activity/pub" @@ -168,8 +167,7 @@ func (f *federator) AuthenticateFederatedRequest(ctx context.Context, requestedU requestingRemoteAccount := >smodel.Account{} requestingLocalAccount := >smodel.Account{} requestingHost := requestingPublicKeyID.Host - host := viper.GetString(config.Keys.Host) - if strings.EqualFold(requestingHost, host) { + if host := config.GetHost(); strings.EqualFold(requestingHost, host) { // LOCAL ACCOUNT REQUEST // the request is coming from INSIDE THE HOUSE so skip the remote dereferencing l.Tracef("proceeding without dereference for local public key %s", requestingPublicKeyID) diff --git a/internal/federation/dereferencing/thread.go b/internal/federation/dereferencing/thread.go index 4e161952d..096d0e8ae 100644 --- a/internal/federation/dereferencing/thread.go +++ b/internal/federation/dereferencing/thread.go @@ -24,7 +24,6 @@ import ( "net/url" "github.com/sirupsen/logrus" - "github.com/spf13/viper" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/uris" @@ -45,8 +44,7 @@ func (d *deref) DereferenceThread(ctx context.Context, username string, statusIR l.Debug("entering DereferenceThread") // if it's our status we already have everything stashed so we can bail early - host := viper.GetString(config.Keys.Host) - if statusIRI.Host == host { + if statusIRI.Host == config.GetHost() { l.Debug("iri belongs to us, bailing") return nil } @@ -80,8 +78,7 @@ func (d *deref) iterateAncestors(ctx context.Context, username string, statusIRI l.Debug("entering iterateAncestors") // if it's our status we don't need to dereference anything so we can immediately move up the chain - host := viper.GetString(config.Keys.Host) - if statusIRI.Host == host { + if statusIRI.Host == config.GetHost() { l.Debug("iri belongs to us, moving up to next ancestor") // since this is our status, we know we can extract the id from the status path @@ -132,8 +129,7 @@ func (d *deref) iterateDescendants(ctx context.Context, username string, statusI l.Debug("entering iterateDescendants") // if it's our status we already have descendants stashed so we can bail early - host := viper.GetString(config.Keys.Host) - if statusIRI.Host == host { + if statusIRI.Host == config.GetHost() { l.Debug("iri belongs to us, bailing") return nil } @@ -209,8 +205,7 @@ pageLoop: continue } - host := viper.GetString(config.Keys.Host) - if itemURI.Host == host { + if itemURI.Host == config.GetHost() { // skip if the reply is from us -- we already have it then continue } diff --git a/internal/federation/federatingdb/inbox.go b/internal/federation/federatingdb/inbox.go index 20a9bb06c..8d8ffffed 100644 --- a/internal/federation/federatingdb/inbox.go +++ b/internal/federation/federatingdb/inbox.go @@ -23,7 +23,6 @@ import ( "fmt" "net/url" - "github.com/spf13/viper" "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/config" @@ -80,7 +79,7 @@ func (f *federatingDB) SetInbox(c context.Context, inbox vocab.ActivityStreamsOr // The library makes this call only after acquiring a lock first. func (f *federatingDB) InboxesForIRI(c context.Context, iri *url.URL) (inboxIRIs []*url.URL, err error) { // check if this is a followers collection iri for a local account... - if iri.Host == viper.GetString(config.Keys.Host) && uris.IsFollowersPath(iri) { + if iri.Host == config.GetHost() && uris.IsFollowersPath(iri) { localAccountUsername, err := uris.ParseFollowersPath(iri) if err != nil { return nil, fmt.Errorf("couldn't extract local account username from uri %s: %s", iri, err) diff --git a/internal/federation/federatingdb/owns.go b/internal/federation/federatingdb/owns.go index bfb656a16..aaa58348f 100644 --- a/internal/federation/federatingdb/owns.go +++ b/internal/federation/federatingdb/owns.go @@ -24,7 +24,6 @@ import ( "net/url" "github.com/sirupsen/logrus" - "github.com/spf13/viper" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" @@ -44,8 +43,7 @@ func (f *federatingDB) Owns(ctx context.Context, id *url.URL) (bool, error) { l.Debug("entering Owns") // if the id host isn't this instance host, we don't own this IRI - host := viper.GetString(config.Keys.Host) - if id.Host != host { + if host := config.GetHost(); id.Host != host { l.Tracef("we DO NOT own activity because the host is %s not %s", id.Host, host) return false, nil } diff --git a/internal/federation/federatingdb/update.go b/internal/federation/federatingdb/update.go index 7930cde12..525932ea8 100644 --- a/internal/federation/federatingdb/update.go +++ b/internal/federation/federatingdb/update.go @@ -24,7 +24,6 @@ import ( "fmt" "github.com/sirupsen/logrus" - "github.com/spf13/viper" "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/config" @@ -125,8 +124,7 @@ func (f *federatingDB) Update(ctx context.Context, asType vocab.Type) error { return fmt.Errorf("UPDATE: error converting to account: %s", err) } - host := viper.GetString(config.Keys.Host) - if updatedAcct.Domain == host { + if updatedAcct.Domain == config.GetHost() { // no need to update local accounts // in fact, if we do this will break the shit out of things so do NOT return nil diff --git a/internal/federation/federatingdb/util.go b/internal/federation/federatingdb/util.go index 5a3a65a0c..7f27cc759 100644 --- a/internal/federation/federatingdb/util.go +++ b/internal/federation/federatingdb/util.go @@ -26,7 +26,6 @@ import ( "net/url" "github.com/sirupsen/logrus" - "github.com/spf13/viper" "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" @@ -209,9 +208,7 @@ func (f *federatingDB) NewID(ctx context.Context, t vocab.Type) (idURL *url.URL, return nil, err } - protocol := viper.GetString(config.Keys.Protocol) - host := viper.GetString(config.Keys.Host) - return url.Parse(fmt.Sprintf("%s://%s/%s", protocol, host, newID)) + return url.Parse(fmt.Sprintf("%s://%s/%s", config.GetProtocol(), config.GetHost(), newID)) } // ActorForOutbox fetches the actor's IRI for the given outbox IRI. |