From c138fa97398ee8f8958504bc7232f1cf55856f72 Mon Sep 17 00:00:00 2001 From: thinkerou Date: Fri, 11 Aug 2017 19:28:46 +0800 Subject: [PATCH] format file --- http_client.go | 25 ++++---- http_prettifier.go | 96 +++++++++++++++---------------- input_tcp.go | 22 +++---- input_tcp_test.go | 50 ++++++++-------- raw_socket_listener/tcp_packet.go | 4 +- 5 files changed, 98 insertions(+), 99 deletions(-) diff --git a/http_client.go b/http_client.go index e30de04..c8c81ea 100644 --- a/http_client.go +++ b/http_client.go @@ -134,7 +134,7 @@ func (c *HTTPClient) isAlive() bool { } func (c *HTTPClient) Send(data []byte) (response []byte, err error) { - var payload []byte + var payload []byte // Don't exit on panic defer func() { @@ -143,7 +143,7 @@ func (c *HTTPClient) Send(data []byte) (response []byte, err error) { if _, ok := r.(error); ok { log.Println("[HTTPClient] Failed to send request: ", string(data)) - log.Println("[HTTPClient] Response: ", string(response)) + log.Println("[HTTPClient] Response: ", string(response)) log.Println("PANIC: pkg:", r, string(debug.Stack())) } } @@ -202,16 +202,16 @@ func (c *HTTPClient) Send(data []byte) (response []byte, err error) { } else { // If headers are finished - if bytes.Contains(c.respBuf[:readBytes], proto.EmptyLine) { - if bytes.Equal(proto.Header(c.respBuf[:readBytes], []byte("Transfer-Encoding")), []byte("chunked")) { + if bytes.Contains(c.respBuf[:readBytes], proto.EmptyLine) { + if bytes.Equal(proto.Header(c.respBuf[:readBytes], []byte("Transfer-Encoding")), []byte("chunked")) { chunked = true } else { - status, _ := strconv.Atoi(string(proto.Status(c.respBuf[:readBytes]))) + status, _ := strconv.Atoi(string(proto.Status(c.respBuf[:readBytes]))) if (status >= 100 && status < 200) || status == 204 || status == 304 { - contentLength = 0 - break + contentLength = 0 + break } else { - l := proto.Header(c.respBuf[:readBytes], []byte("Content-Length")) + l := proto.Header(c.respBuf[:readBytes], []byte("Content-Length")) if len(l) > 0 { contentLength, _ = strconv.Atoi(string(l)) } @@ -280,7 +280,6 @@ func (c *HTTPClient) Send(data []byte) (response []byte, err error) { break } - } if readBytes >= maxResponseSize { @@ -294,16 +293,16 @@ func (c *HTTPClient) Send(data []byte) (response []byte, err error) { } if err != nil && readBytes == 0 { - Debug("[HTTPClient] Response read timeout error", err, c.conn, readBytes, string(c.respBuf[:readBytes])) + Debug("[HTTPClient] Response read timeout error", err, c.conn, readBytes, string(c.respBuf[:readBytes])) response = errorPayload(HTTP_TIMEOUT) - c.Disconnect() + c.Disconnect() return } - if readBytes < 4 || string(c.respBuf[:4]) != "HTTP" { + if readBytes < 4 || string(c.respBuf[:4]) != "HTTP" { Debug("[HTTPClient] Response read unknown error", err, c.conn, readBytes, string(c.respBuf[:readBytes])) response = errorPayload(HTTP_UNKNOWN_ERROR) - c.Disconnect() + c.Disconnect() return } diff --git a/http_prettifier.go b/http_prettifier.go index 3a6c426..0550328 100644 --- a/http_prettifier.go +++ b/http_prettifier.go @@ -1,69 +1,69 @@ package main import ( - "github.com/buger/goreplay/proto" - "bytes" - "compress/gzip" - "strconv" - "io/ioutil" - "net/http/httputil" + "bytes" + "compress/gzip" + "github.com/buger/goreplay/proto" + "io/ioutil" + "net/http/httputil" + "strconv" ) func prettifyHTTP(p []byte) []byte { - headSize := bytes.IndexByte(p, '\n') + 1 - head := p[:headSize] - body := p[headSize:] + headSize := bytes.IndexByte(p, '\n') + 1 + head := p[:headSize] + body := p[headSize:] - headersPos := proto.MIMEHeadersEndPos(body) - headers := body[:headersPos] - content := body[headersPos:] + headersPos := proto.MIMEHeadersEndPos(body) + headers := body[:headersPos] + content := body[headersPos:] - var tEnc, cEnc []byte - proto.ParseHeaders([][]byte{headers}, func(header, value []byte) bool { - if proto.HeadersEqual(header, []byte("Transfer-Encoding")) { - tEnc = value - } + var tEnc, cEnc []byte + proto.ParseHeaders([][]byte{headers}, func(header, value []byte) bool { + if proto.HeadersEqual(header, []byte("Transfer-Encoding")) { + tEnc = value + } - if proto.HeadersEqual(header, []byte("Content-Encoding")) { - cEnc = value - } + if proto.HeadersEqual(header, []byte("Content-Encoding")) { + cEnc = value + } - return true - }) + return true + }) - if len(tEnc) == 0 && len(cEnc) == 0 { - return p - } + if len(tEnc) == 0 && len(cEnc) == 0 { + return p + } - if bytes.Equal(tEnc, []byte("chunked")) { - buf := bytes.NewBuffer(content) - r := httputil.NewChunkedReader(buf) - content, _ = ioutil.ReadAll(r) + if bytes.Equal(tEnc, []byte("chunked")) { + buf := bytes.NewBuffer(content) + r := httputil.NewChunkedReader(buf) + content, _ = ioutil.ReadAll(r) - headers = proto.DeleteHeader(headers, []byte("Transfer-Encoding")) + headers = proto.DeleteHeader(headers, []byte("Transfer-Encoding")) - newLen := strconv.Itoa(len(content)) - headers = proto.SetHeader(headers, []byte("Content-Length"), []byte(newLen)) - } + newLen := strconv.Itoa(len(content)) + headers = proto.SetHeader(headers, []byte("Content-Length"), []byte(newLen)) + } - if bytes.Equal(cEnc, []byte("gzip")) { - buf := bytes.NewBuffer(content) - g, err := gzip.NewReader(buf) + if bytes.Equal(cEnc, []byte("gzip")) { + buf := bytes.NewBuffer(content) + g, err := gzip.NewReader(buf) - if err != nil { - Debug("[Prettifier] GZIP encoding error:", err) - return []byte{} - } + if err != nil { + Debug("[Prettifier] GZIP encoding error:", err) + return []byte{} + } - content, _ = ioutil.ReadAll(g) + content, _ = ioutil.ReadAll(g) - headers = proto.DeleteHeader(headers, []byte("Content-Encoding")) + headers = proto.DeleteHeader(headers, []byte("Content-Encoding")) - newLen := strconv.Itoa(len(content)) - headers = proto.SetHeader(headers, []byte("Content-Length"), []byte(newLen)) - } + newLen := strconv.Itoa(len(content)) + headers = proto.SetHeader(headers, []byte("Content-Length"), []byte(newLen)) + } - newPayload := append(append(head, headers...), content...) + newPayload := append(append(head, headers...), content...) - return newPayload -} \ No newline at end of file + return newPayload +} diff --git a/input_tcp.go b/input_tcp.go index 025312a..8230bad 100644 --- a/input_tcp.go +++ b/input_tcp.go @@ -3,8 +3,8 @@ package main import ( "bufio" "bytes" - "fmt" "crypto/tls" + "fmt" "io" "log" "net" @@ -46,17 +46,17 @@ func (i *TCPInput) Read(data []byte) (int, error) { func (i *TCPInput) listen(address string) { if i.config.secure { - cer, err := tls.LoadX509KeyPair(i.config.certificatePath, i.config.keyPath) - if err != nil { - log.Fatal("Error while loading --input-file certificate:", err) - } + cer, err := tls.LoadX509KeyPair(i.config.certificatePath, i.config.keyPath) + if err != nil { + log.Fatal("Error while loading --input-file certificate:", err) + } - config := &tls.Config{Certificates: []tls.Certificate{cer}} - listener, err := tls.Listen("tcp", address, config) - if err != nil { - log.Fatal("Can't start --input-tcp with secure connection:", err) - } - i.listener = listener + config := &tls.Config{Certificates: []tls.Certificate{cer}} + listener, err := tls.Listen("tcp", address, config) + if err != nil { + log.Fatal("Can't start --input-tcp with secure connection:", err) + } + i.listener = listener } else { listener, err := net.Listen("tcp", address) if err != nil { diff --git a/input_tcp_test.go b/input_tcp_test.go index ef62b6b..e5b5ba9 100644 --- a/input_tcp_test.go +++ b/input_tcp_test.go @@ -1,28 +1,28 @@ package main import ( - "io" - "os" - "log" - "net" - "io/ioutil" - "crypto/x509" - "crypto/rsa" - "crypto/rand" - "crypto/tls" - "encoding/pem" - "math/big" - "time" "bytes" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "encoding/pem" + "io" + "io/ioutil" + "log" + "math/big" + "net" + "os" "sync" "testing" + "time" ) func TestTCPInput(t *testing.T) { wg := new(sync.WaitGroup) quit := make(chan int) - input := NewTCPInput("127.0.0.1:0", &TCPInputConfig{}) + input := NewTCPInput("127.0.0.1:0", &TCPInputConfig{}) output := NewTestOutput(func(data []byte) { wg.Done() }) @@ -90,7 +90,7 @@ func TestTCPInputSecure(t *testing.T) { serverPrivPemFile.Write(serverPrivPem) serverPrivPemFile.Close() - defer func(){ + defer func() { os.Remove(serverPrivPemFile.Name()) os.Remove(serverCertPemFile.Name()) }() @@ -99,9 +99,9 @@ func TestTCPInputSecure(t *testing.T) { quit := make(chan int) input := NewTCPInput("127.0.0.1:0", &TCPInputConfig{ - secure: true, + secure: true, certificatePath: serverCertPemFile.Name(), - keyPath: serverPrivPemFile.Name(), + keyPath: serverPrivPemFile.Name(), }) output := NewTestOutput(func(data []byte) { wg.Done() @@ -112,15 +112,15 @@ func TestTCPInputSecure(t *testing.T) { go Start(quit) - conf := &tls.Config{ - InsecureSkipVerify: true, - } + conf := &tls.Config{ + InsecureSkipVerify: true, + } - conn, err := tls.Dial("tcp", input.listener.Addr().String(), conf) - if err != nil { - t.Fatal(err) - } - defer conn.Close() + conn, err := tls.Dial("tcp", input.listener.Addr().String(), conf) + if err != nil { + t.Fatal(err) + } + defer conn.Close() msg := []byte("1 1 1\nGET / HTTP/1.1\r\n\r\n") @@ -133,4 +133,4 @@ func TestTCPInputSecure(t *testing.T) { wg.Wait() close(quit) -} \ No newline at end of file +} diff --git a/raw_socket_listener/tcp_packet.go b/raw_socket_listener/tcp_packet.go index 19deda4..3649a89 100644 --- a/raw_socket_listener/tcp_packet.go +++ b/raw_socket_listener/tcp_packet.go @@ -78,8 +78,8 @@ func (t *TCPPacket) ParseBasic() { t.IsFIN = t.Raw[13]&0x01 != 0 if len(t.Raw) >= int(t.DataOffset*4) { - t.Data = t.Raw[t.DataOffset*4:] - } + t.Data = t.Raw[t.DataOffset*4:] + } } func (t *TCPPacket) dump() *packet {