[tor-commits] [pluggable-transports/snowflake] 17/31: Rejection reason feedback
gitolite role
git at cupani.torproject.org
Thu Jun 16 17:04:04 UTC 2022
This is an automated email from the git hooks/post-receive script.
shelikhoo pushed a commit to branch main
in repository pluggable-transports/snowflake.
commit 6e8fbe54eeebc0ffbf84d4dd82e3e9a87d7729c4
Author: Shelikhoo <xiaokangwang at outlook.com>
AuthorDate: Fri Apr 29 17:12:59 2022 +0100
Rejection reason feedback
---
broker/ipc.go | 10 ++++++++--
common/messages/proxy.go | 12 ++++++++----
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/broker/ipc.go b/broker/ipc.go
index 97f26ef..5a93585 100644
--- a/broker/ipc.go
+++ b/broker/ipc.go
@@ -72,7 +72,13 @@ func (i *IPC) ProxyPolls(arg messages.Arg, response *[]byte) error {
}
if !i.ctx.CheckProxyRelayPattern(relayPattern, !relayPatternSupported) {
- return fmt.Errorf("bad request: rejected relay pattern from proxy = %v", messages.ErrBadRequest)
+ log.Printf("bad request: rejected relay pattern from proxy = %v", messages.ErrBadRequest)
+ b, err := messages.EncodePollResponseWithRelayURL("", false, "", "", "incorrect relay pattern")
+ *response = b
+ if err != nil {
+ return messages.ErrInternal
+ }
+ return nil
}
// Log geoip stats
@@ -112,7 +118,7 @@ func (i *IPC) ProxyPolls(arg messages.Arg, response *[]byte) error {
} else {
relayURL = info.WebSocketAddress
}
- b, err = messages.EncodePollResponseWithRelayURL(string(offer.sdp), true, offer.natType, relayURL)
+ b, err = messages.EncodePollResponseWithRelayURL(string(offer.sdp), true, offer.natType, relayURL, "")
if err != nil {
return messages.ErrInternal
}
diff --git a/common/messages/proxy.go b/common/messages/proxy.go
index 19cf6a3..6ea2c8a 100644
--- a/common/messages/proxy.go
+++ b/common/messages/proxy.go
@@ -181,10 +181,10 @@ type ProxyPollResponse struct {
}
func EncodePollResponse(offer string, success bool, natType string) ([]byte, error) {
- return EncodePollResponseWithRelayURL(offer, success, natType, "")
+ return EncodePollResponseWithRelayURL(offer, success, natType, "", "no match")
}
-func EncodePollResponseWithRelayURL(offer string, success bool, natType, relayURL string) ([]byte, error) {
+func EncodePollResponseWithRelayURL(offer string, success bool, natType, relayURL, failReason string) ([]byte, error) {
if success {
return json.Marshal(ProxyPollResponse{
Status: "client match",
@@ -195,7 +195,7 @@ func EncodePollResponseWithRelayURL(offer string, success bool, natType, relayUR
}
return json.Marshal(ProxyPollResponse{
- Status: "no match",
+ Status: failReason,
})
}
func DecodePollResponse(data []byte) (string, string, error) {
@@ -219,12 +219,16 @@ func DecodePollResponseWithRelayURL(data []byte) (string, string, string, error)
return "", "", "", fmt.Errorf("received invalid data")
}
+ err = nil
if message.Status == "client match" {
if message.Offer == "" {
return "", "", "", fmt.Errorf("no supplied offer")
}
} else {
message.Offer = ""
+ if message.Status != "no match" {
+ err = errors.New(message.Status)
+ }
}
natType := message.NAT
@@ -232,7 +236,7 @@ func DecodePollResponseWithRelayURL(data []byte) (string, string, string, error)
natType = "unknown"
}
- return message.Offer, natType, message.RelayURL, nil
+ return message.Offer, natType, message.RelayURL, err
}
type ProxyAnswerRequest struct {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tor-commits
mailing list