mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 14:11:23 -04:00
fix(broker): empty pattern if bridge-list is empty
i.e. if no bridge list file is provided, the relay pattern would not get set. AFAIK this is not a breaking change because the broker can't be used as a library, unlike client and server.
This commit is contained in:
parent
f752d2ab0c
commit
71828580bb
3 changed files with 21 additions and 17 deletions
|
@ -53,7 +53,11 @@ func (ctx *BrokerContext) GetBridgeInfo(fingerprint bridgefingerprint.Fingerprin
|
|||
return ctx.bridgeList.GetBridgeInfo(fingerprint)
|
||||
}
|
||||
|
||||
func NewBrokerContext(metricsLogger *log.Logger) *BrokerContext {
|
||||
func NewBrokerContext(
|
||||
metricsLogger *log.Logger,
|
||||
allowedRelayPattern,
|
||||
presumedPatternForLegacyClient string,
|
||||
) *BrokerContext {
|
||||
snowflakes := new(SnowflakeHeap)
|
||||
heap.Init(snowflakes)
|
||||
rSnowflakes := new(SnowflakeHeap)
|
||||
|
@ -75,12 +79,14 @@ func NewBrokerContext(metricsLogger *log.Logger) *BrokerContext {
|
|||
bridgeListHolder.LoadBridgeInfo(bytes.NewReader([]byte(DefaultBridges)))
|
||||
|
||||
return &BrokerContext{
|
||||
snowflakes: snowflakes,
|
||||
restrictedSnowflakes: rSnowflakes,
|
||||
idToSnowflake: make(map[string]*Snowflake),
|
||||
proxyPolls: make(chan *ProxyPoll),
|
||||
metrics: metrics,
|
||||
bridgeList: bridgeListHolder,
|
||||
snowflakes: snowflakes,
|
||||
restrictedSnowflakes: rSnowflakes,
|
||||
idToSnowflake: make(map[string]*Snowflake),
|
||||
proxyPolls: make(chan *ProxyPoll),
|
||||
metrics: metrics,
|
||||
bridgeList: bridgeListHolder,
|
||||
allowedRelayPattern: allowedRelayPattern,
|
||||
presumedPatternForLegacyClient: presumedPatternForLegacyClient,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,12 +167,10 @@ func (ctx *BrokerContext) AddSnowflake(id string, proxyType string, natType stri
|
|||
return snowflake
|
||||
}
|
||||
|
||||
func (ctx *BrokerContext) InstallBridgeListProfile(reader io.Reader, relayPattern, presumedPatternForLegacyClient string) error {
|
||||
func (ctx *BrokerContext) InstallBridgeListProfile(reader io.Reader) error {
|
||||
if err := ctx.bridgeList.LoadBridgeInfo(reader); err != nil {
|
||||
return err
|
||||
}
|
||||
ctx.allowedRelayPattern = relayPattern
|
||||
ctx.presumedPatternForLegacyClient = presumedPatternForLegacyClient
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -244,14 +248,14 @@ func main() {
|
|||
|
||||
metricsLogger := log.New(metricsFile, "", 0)
|
||||
|
||||
ctx := NewBrokerContext(metricsLogger)
|
||||
ctx := NewBrokerContext(metricsLogger, allowedRelayPattern, presumedPatternForLegacyClient)
|
||||
|
||||
if bridgeListFilePath != "" {
|
||||
bridgeListFile, err := os.Open(bridgeListFilePath)
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
err = ctx.InstallBridgeListProfile(bridgeListFile, allowedRelayPattern, presumedPatternForLegacyClient)
|
||||
err = ctx.InstallBridgeListProfile(bridgeListFile)
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue