mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-25 11:26:43 +00:00
Merge release/golden-gate into devel
This commit is contained in:
@ -22,8 +22,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ProtonMail/proton-bridge/internal/bridge"
|
||||
"github.com/ProtonMail/proton-bridge/internal/preferences"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/config"
|
||||
"github.com/ProtonMail/proton-bridge/internal/config/settings"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/confirmer"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/listener"
|
||||
goSMTPBackend "github.com/emersion/go-smtp"
|
||||
@ -35,10 +34,14 @@ type panicHandler interface {
|
||||
HandlePanic()
|
||||
}
|
||||
|
||||
type settingsProvider interface {
|
||||
GetBool(string) bool
|
||||
}
|
||||
|
||||
type smtpBackend struct {
|
||||
panicHandler panicHandler
|
||||
eventListener listener.Listener
|
||||
preferences *config.Preferences
|
||||
settings settingsProvider
|
||||
bridge bridger
|
||||
confirmer *confirmer.Confirmer
|
||||
sendRecorder *sendRecorder
|
||||
@ -48,22 +51,22 @@ type smtpBackend struct {
|
||||
func NewSMTPBackend(
|
||||
panicHandler panicHandler,
|
||||
eventListener listener.Listener,
|
||||
preferences *config.Preferences,
|
||||
settings settingsProvider,
|
||||
bridge *bridge.Bridge,
|
||||
) *smtpBackend { //nolint[golint]
|
||||
return newSMTPBackend(panicHandler, eventListener, preferences, newBridgeWrap(bridge))
|
||||
return newSMTPBackend(panicHandler, eventListener, settings, newBridgeWrap(bridge))
|
||||
}
|
||||
|
||||
func newSMTPBackend(
|
||||
panicHandler panicHandler,
|
||||
eventListener listener.Listener,
|
||||
preferences *config.Preferences,
|
||||
settings settingsProvider,
|
||||
bridge bridger,
|
||||
) *smtpBackend {
|
||||
return &smtpBackend{
|
||||
panicHandler: panicHandler,
|
||||
eventListener: eventListener,
|
||||
preferences: preferences,
|
||||
settings: settings,
|
||||
bridge: bridge,
|
||||
confirmer: confirmer.New(),
|
||||
sendRecorder: newSendRecorder(),
|
||||
@ -109,7 +112,7 @@ func (sb *smtpBackend) AnonymousLogin(_ *goSMTPBackend.ConnectionState) (goSMTPB
|
||||
}
|
||||
|
||||
func (sb *smtpBackend) shouldReportOutgoingNoEnc() bool {
|
||||
return sb.preferences.GetBool(preferences.ReportOutgoingNoEncKey)
|
||||
return sb.settings.GetBool(settings.ReportOutgoingNoEncKey)
|
||||
}
|
||||
|
||||
func (sb *smtpBackend) ConfirmNoEncryption(messageID string, shouldSend bool) {
|
||||
|
||||
@ -359,16 +359,16 @@ func TestPreferencesBuilder(t *testing.T) {
|
||||
assert.Equal(t, test.wantSign, prefs.Sign)
|
||||
assert.Equal(t, test.wantScheme, prefs.Scheme)
|
||||
assert.Equal(t, test.wantMIMEType, prefs.MIMEType)
|
||||
assert.Equal(t, test.wantPublicKey, func() string {
|
||||
if prefs.PublicKey == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
k, _ := prefs.PublicKey.GetKey(0)
|
||||
s, _ := k.GetArmoredPublicKey()
|
||||
if prefs.PublicKey != nil {
|
||||
wantKey, err := crypto.NewKeyFromArmored(test.wantPublicKey)
|
||||
require.NoError(t, err)
|
||||
|
||||
return s
|
||||
}())
|
||||
haveKey, err := prefs.PublicKey.GetKey(0)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, wantKey.GetFingerprint(), haveKey.GetFingerprint())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,6 +43,13 @@ func NewSMTPServer(debug bool, port int, useSSL bool, tls *tls.Config, smtpBacke
|
||||
s.Domain = bridge.Host
|
||||
s.AllowInsecureAuth = true
|
||||
|
||||
if debug {
|
||||
fmt.Println("THE LOG WILL CONTAIN **DECRYPTED** MESSAGE DATA")
|
||||
log.Warning("================================================")
|
||||
log.Warning("THIS LOG WILL CONTAIN **DECRYPTED** MESSAGE DATA")
|
||||
log.Warning("================================================")
|
||||
}
|
||||
|
||||
if debug {
|
||||
s.Debug = logrus.
|
||||
WithField("pkg", "smtp/server").
|
||||
|
||||
@ -31,7 +31,7 @@ import (
|
||||
"github.com/ProtonMail/gopenpgp/v2/crypto"
|
||||
"github.com/ProtonMail/proton-bridge/internal/events"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/listener"
|
||||
pkgMessage "github.com/ProtonMail/proton-bridge/pkg/message"
|
||||
pkgMsg "github.com/ProtonMail/proton-bridge/pkg/message"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/message/parser"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/pmapi"
|
||||
goSMTPBackend "github.com/emersion/go-smtp"
|
||||
@ -229,7 +229,7 @@ func (su *smtpUser) Send(returnPath string, to []string, messageReader io.Reader
|
||||
err = errors.Wrap(err, "failed to create new parser")
|
||||
return
|
||||
}
|
||||
message, plainBody, attReaders, err := pkgMessage.ParserWithParser(parser)
|
||||
message, plainBody, attReaders, err := pkgMsg.ParserWithParser(parser)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to parse message")
|
||||
return
|
||||
@ -275,10 +275,10 @@ func (su *smtpUser) Send(returnPath string, to []string, messageReader io.Reader
|
||||
}
|
||||
|
||||
if attachedPublicKey != "" {
|
||||
pkgMessage.AttachPublicKey(parser, attachedPublicKey, attachedPublicKeyName)
|
||||
pkgMsg.AttachPublicKey(parser, attachedPublicKey, attachedPublicKeyName)
|
||||
}
|
||||
|
||||
mimeBody, err := pkgMessage.BuildMIMEBody(parser)
|
||||
mimeBody, err := pkgMsg.BuildMIMEBody(parser)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to build message")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user