mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 13:44:03 +03:00
Propagate network to proxy object
This commit is contained in:
@@ -17,6 +17,9 @@ var (
|
||||
ErrIPBlocklistIsNotDefined = errors.New("ip blocklist is not defined")
|
||||
ErrEventStreamIsNotDefined = errors.New("event stream is not defined")
|
||||
ErrLoggerIsNotDefined = errors.New("logger is not defined")
|
||||
|
||||
errCannotSendWelcomePacket = errors.New("cannot send welcome packet")
|
||||
errReplayAttackDetected = errors.New("replay attack detected")
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
+6
-4
@@ -27,6 +27,7 @@ type Proxy struct {
|
||||
telegram *telegram.Telegram
|
||||
|
||||
secret Secret
|
||||
network Network
|
||||
antiReplayCache AntiReplayCache
|
||||
timeAttackDetector TimeAttackDetector
|
||||
ipBlocklist IPBlocklist
|
||||
@@ -139,13 +140,13 @@ func (p *Proxy) doFakeTLSHandshake(ctx *streamContext) error {
|
||||
}
|
||||
|
||||
if p.antiReplayCache.SeenBefore(hello.SessionID) {
|
||||
p.logger.Warning("anti replay attack was detected")
|
||||
|
||||
return fmt.Errorf("anti replay attack from %s", ctx.ClientIP().String())
|
||||
return errReplayAttackDetected
|
||||
}
|
||||
|
||||
if err := faketls.SendWelcomePacket(ctx.clientConn, p.secret.Key[:], hello); err != nil {
|
||||
return fmt.Errorf("cannot send a welcome packet: %w", err)
|
||||
p.logger.InfoError("cannot send welcome packet", err)
|
||||
|
||||
return errCannotSendWelcomePacket
|
||||
}
|
||||
|
||||
ctx.clientConn = &faketls.Conn{
|
||||
@@ -249,6 +250,7 @@ func NewProxy(opts ProxyOpts) (*Proxy, error) { // nolint: cyclop, funlen
|
||||
ctx: ctx,
|
||||
ctxCancel: cancel,
|
||||
secret: opts.Secret,
|
||||
network: opts.Network,
|
||||
antiReplayCache: opts.AntiReplayCache,
|
||||
timeAttackDetector: opts.TimeAttackDetector,
|
||||
ipBlocklist: opts.IPBlocklist,
|
||||
|
||||
Reference in New Issue
Block a user