code: func (c *RPCClient) listen() {
  	defer c.Close()
  	var respHeader responseHeader
  	for {
  		if err := c.dec.Decode(&respHeader); err != nil {
  			if !c.shutdown {
  				log.Printf("[ERR] agent.client: Failed to decode response header: %v", err)
  			}
  			break
  		}
  		c.respondSeq(respHeader.Seq, &respHeader)
  	}
  }
docs: // listen is used to processes data coming over the IPC channel,
  // and wrote it to the correct destination based on seq no