mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
Implement limitedRead function for client side
MaxBytesReader is only documented for server side reads, so we're using a local limitedRead function instead that uses an io.LimitedReader. Declared limits in a commented constant
This commit is contained in:
parent
ce3101d016
commit
1d76d3ca2e
3 changed files with 44 additions and 5 deletions
|
@ -28,6 +28,7 @@ import (
|
|||
const (
|
||||
ClientTimeout = 10
|
||||
ProxyTimeout = 10
|
||||
readLimit = 100000 //Maximum number of bytes to be read from an HTTP request
|
||||
)
|
||||
|
||||
type BrokerContext struct {
|
||||
|
@ -136,7 +137,7 @@ For snowflake proxies to request a client from the Broker.
|
|||
*/
|
||||
func proxyPolls(ctx *BrokerContext, w http.ResponseWriter, r *http.Request) {
|
||||
id := r.Header.Get("X-Session-ID")
|
||||
body, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, 100000))
|
||||
body, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, readLimit))
|
||||
if nil != err {
|
||||
log.Println("Invalid data.")
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
|
@ -166,7 +167,7 @@ the HTTP response back to the client.
|
|||
*/
|
||||
func clientOffers(ctx *BrokerContext, w http.ResponseWriter, r *http.Request) {
|
||||
startTime := time.Now()
|
||||
offer, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, 100000))
|
||||
offer, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, readLimit))
|
||||
if nil != err {
|
||||
log.Println("Invalid data.")
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
|
@ -213,7 +214,7 @@ func proxyAnswers(ctx *BrokerContext, w http.ResponseWriter, r *http.Request) {
|
|||
w.WriteHeader(http.StatusGone)
|
||||
return
|
||||
}
|
||||
body, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, 100000))
|
||||
body, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, readLimit))
|
||||
if nil != err || nil == body || len(body) <= 0 {
|
||||
log.Println("Invalid data.")
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue