internal/protocol/sniffer.go
func (s *Sniffer) Go() {
	defer s.dbConn.Close()
	defer s.conn.Close()

	req := newInitRequest()
	if err := s.streamFragment(dir(true), s.clRd, s.dbWr, req); err != nil {
		return
	}

	rep := newInitReply()
	if err := s.streamFragment(dir(false), s.dbRd, s.clWr, rep); err != nil {
		return
	}

	for {
		//up stream
		if err := s.stream(dir(true), s.clRd, s.dbWr); err != nil {
			return
		}
		//down stream
		if err := s.stream(dir(false), s.dbRd, s.clWr); err != nil {
			return
		}
	}
}
func (s *Sniffer) Go() {
	defer s.dbConn.Close()
	defer s.conn.Close()

	req := newInitRequest()
	if err := s.streamFragment(dir(true), s.clRd, s.dbWr, req); err != nil {
		return
	}

	rep := newInitReply()
	if err := s.streamFragment(dir(false), s.dbRd, s.clWr, rep); err != nil {
		return
	}

	for {
		//up stream
		if err := s.stream(dir(true), s.clRd, s.dbWr); err != nil {
			return
		}
		//down stream
		if err := s.stream(dir(false), s.dbRd, s.clWr); err != nil {
			return
		}
	}
}
func ( s * Sniffer ) Go ( ) { defer s . dbConn . Close ( ) defer s . conn . Close ( ) req := newInitRequest ( ) if err := s . streamFragment ( dir ( true ) , s . clRd , s . dbWr , req ) ; err != nil { return } rep := newInitReply ( ) if err := s . streamFragment ( dir ( false ) , s . dbRd , s . clWr , rep ) ; err != nil { return } for { //up stream if err := s . stream ( dir ( true ) , s . clRd , s . dbWr ) ; err != nil { return } //down stream if err := s . stream ( dir ( false ) , s . dbRd , s . clWr ) ; err != nil { return } } }
// Go starts the protocol request and response logging.
Go starts the protocol request and response logging .