Explorar o código

客户端错误处理机制修改

刘河 %!s(int64=6) %!d(string=hai) anos
pai
achega
079d3dedad
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      client.go

+ 6 - 0
client.go

@@ -93,6 +93,7 @@ func (c *TRPClient) deal(conn net.Conn) error {
 	if nlen <= 0 {
 		log.Println("数据长度错误。")
 		c.werror(conn)
+		return errors.New("数据长度错误")
 	}
 	raw := make([]byte, nlen)
 	n, err := conn.Read(raw)
@@ -102,11 +103,13 @@ func (c *TRPClient) deal(conn net.Conn) error {
 	if n != int(nlen) {
 		log.Printf("读取服务端数据长度错误,已经读取%dbyte,总长度%d字节\n", n, nlen)
 		c.werror(conn)
+		return errors.New("读取服务端数据长度错误")
 	}
 	req, err := DecodeRequest(raw)
 	if err != nil {
 		log.Println("DecodeRequest错误:", err)
 		c.werror(conn)
+		return err
 	}
 	rawQuery := ""
 	if req.URL.RawQuery != "" {
@@ -122,6 +125,7 @@ func (c *TRPClient) deal(conn net.Conn) error {
 	if err != nil && !disRedirect {
 		log.Println("请求本地客户端错误:", err)
 		c.werror(conn)
+		return err
 	}
 	if !disRedirect {
 		defer resp.Body.Close()
@@ -133,10 +137,12 @@ func (c *TRPClient) deal(conn net.Conn) error {
 	if err != nil {
 		log.Println("EncodeResponse错误:", err)
 		c.werror(conn)
+		return err
 	}
 	n, err = conn.Write(respBytes)
 	if err != nil {
 		log.Println("发送数据错误,错误:", err)
+		return err
 	}
 	if n != len(respBytes) {
 		log.Printf("发送数据长度错误,已经发送:%dbyte,总字节长:%dbyte\n", n, len(respBytes))