Procházet zdrojové kódy

support gzip/deflate encoding

master
Fusl před 1 rokem
rodič
revize
5cfe0635b4
1 změnil soubory, kde provedl 20 přidání a 0 odebrání
  1. +20
    -0
      main.go

+ 20
- 0
main.go Zobrazit soubor

@@ -3,6 +3,8 @@ package main
import ( import (
"bufio" "bufio"
"bytes" "bytes"
"compress/flate"
"compress/gzip"
"context" "context"
"encoding/json" "encoding/json"
"fmt" "fmt"
@@ -476,6 +478,24 @@ func (that *GlobalBackfeedManager) HandleLegacy(res http.ResponseWriter, req *ht
if len(splitter.Delimiter) == 0 { if len(splitter.Delimiter) == 0 {
splitter.Delimiter = []byte{0x00} splitter.Delimiter = []byte{0x00}
} }
var body io.ReadCloser
switch req.Header.Get("Content-Encoding") {
case "":
body = req.Body
case "gzip":
var err error
body, err = gzip.NewReader(req.Body)
if err != nil {
WriteResponse(res, http.StatusBadRequest, err)
return
}
defer body.Close()
case "deflate":
body = flate.NewReader(req.Body)
defer body.Close()
default:
WriteResponse(res, http.StatusBadRequest, fmt.Errorf("unsupported Content-Encoding: %s", req.Header.Get("Content-Encoding")))
}
scanner := bufio.NewScanner(req.Body) scanner := bufio.NewScanner(req.Body)
scanner.Split(splitter.Split) scanner.Split(splitter.Split)




Načítá se…
Zrušit
Uložit