7 func readLineSafe(rw *bufio.ReadWriter) (string, error) {
10 for isPrefix:=true;isPrefix; {
13 lineBuf,isPrefix,err = rw.ReadLine()
24 fmt.Println("line too long")
25 fmt.Fprintf(rw,"line too long\n")
32 func connToReadWriter(c net.Conn) (*bufio.ReadWriter) {
33 client_r := bufio.NewReaderSize(c,14)
34 client_w := bufio.NewWriterSize(c,14)
35 return bufio.NewReadWriter(client_r,client_w)
38 func handleConnection(c net.Conn) () {
39 client:=connToReadWriter(c)
40 fmt.Println("new connection")
42 line,err:=readLineSafe(client)
44 fmt.Println(err.Error())
51 fmt.Printf("Received: %v\n", line)
52 tokens:=strings.Fields(line)
53 remainStr:=strings.Join(tokens[1:]," ")
54 handleCmd(tokens,remainStr)
58 func handleCmd(tokens []string, remainStr string) {
60 fmt.Printf("Handling Cmd: %v\n", cmd)
63 ln, err := net.Listen("unix", "/tmp/test.sock")
65 fmt.Printf("Error: %s\n",err.Error())
68 fmt.Printf("Listener started\n")
70 conn, err := ln.Accept()
75 go handleConnection(conn)