diff --git a/main.go b/main.go index ee363f3..cdfe52c 100644 --- a/main.go +++ b/main.go @@ -1,17 +1,18 @@ package main import ( + "bufio" "database/sql" "encoding/json" "errors" "flag" "github.com/elliotchance/phpserialize" _ "github.com/go-sql-driver/mysql" - "io/ioutil" "log" "net" "os" "sort" + "net/textproto" "sync" "time" ) @@ -192,11 +193,17 @@ type cachecommand struct { func handleConnection(conn net.Conn, UC MetadataCache, PC MetadataCache) { log.Println("handleConnection started") - var buf []byte + var buf string var m *MetadataCache - buf, err := ioutil.ReadAll(conn) + reader := bufio.NewReader(conn) + tp := textproto.NewReader(reader) + buf,err:=tp.ReadLine() + if err != nil { + log.Printf("tp.ReadLine returned %s\n", err.Error()) + return + } var c cachecommand - err = json.Unmarshal(buf, &c) + err = json.Unmarshal([]byte(buf), &c) if err != nil { log.Printf("json.Unmarshal: %s returned %s", buf, err.Error()) }