(conn net.Conn, stopC chan struct{})
| 183 | } |
| 184 | |
| 185 | func (s *bcacheStore) serveConn(conn net.Conn, stopC chan struct{}) { |
| 186 | defer conn.Close() |
| 187 | for { |
| 188 | select { |
| 189 | case <-stopC: |
| 190 | return |
| 191 | default: |
| 192 | } |
| 193 | p := &BlockCachePacket{} |
| 194 | if err := p.ReadFromConn(conn, proto.NoReadDeadlineTime); err != nil { |
| 195 | if err != io.EOF { |
| 196 | log.LogDebugf("serve BcacheServer: %v", err.Error()) |
| 197 | } |
| 198 | return |
| 199 | } |
| 200 | if err := s.handlePacket(conn, p); err != nil { |
| 201 | log.LogDebugf("serve handlePacket fail: %v", err) |
| 202 | } |
| 203 | } |
| 204 | } |
| 205 | |
| 206 | func (s *bcacheStore) handlePacket(conn net.Conn, p *BlockCachePacket) (err error) { |
| 207 | switch p.Opcode { |
no test coverage detected