code: func (m *Memberlist) rawSendMsgStream(conn net.Conn, sendBuf []byte) error {
  	// Check if compresion is enabled
  	if m.config.EnableCompression {
  		compBuf, err := compressPayload(sendBuf)
  		if err != nil {
  			m.logger.Printf("[ERROR] memberlist: Failed to compress payload: %v", err)
  		} else {
  			sendBuf = compBuf.Bytes()
  		}
  	}
  
  	// Check if encryption is enabled
  	if m.config.EncryptionEnabled() && m.config.GossipVerifyOutgoing {
  		crypt, err := m.encryptLocalState(sendBuf)
  		if err != nil {
  			m.logger.Printf("[ERROR] memberlist: Failed to encrypt local state: %v", err)
  			return err
  		}
  		sendBuf = crypt
  	}
  
  	// Write out the entire send buffer
  	metrics.IncrCounter([]string{"memberlist", "tcp", "sent"}, float32(len(sendBuf)))
  
  	if n, err := conn.Write(sendBuf); err != nil {
  		return err
  	} else if n != len(sendBuf) {
  		return fmt.Errorf("only %d of %d bytes written", n, len(sendBuf))
  	}
  
  	return nil
  }
docs: // rawSendMsgStream is used to stream a message to another host without
  // modification, other than applying compression and encryption if enabled.