func (r *Relayer) Relay(f *Frame) error {
	if f.messageType() != messageTypeCallReq {
		err := r.handleNonCallReq(f)
		if err == errUnknownID {
			// This ID may be owned by an outgoing call, so check the outbound
			// message exchange, and if it succeeds, then the frame has been
			// handled successfully.
			if err := r.conn.outbound.forwardPeerFrame(f); err == nil {
				return nil
			}
		}
		return err
	}
	return r.handleCallReq(newLazyCallReq(f))
}
func (r *Relayer) Relay(f *Frame) error {
	if f.messageType() != messageTypeCallReq {
		err := r.handleNonCallReq(f)
		if err == errUnknownID {
			
			
			
			if err := r.conn.outbound.forwardPeerFrame(f); err == nil {
				return nil
			}
		}
		return err
	}
	return r.handleCallReq(newLazyCallReq(f))
}
func ( r * Relayer ) Relay ( f * Frame ) error { if f . messageType ( ) != messageTypeCallReq { err := r . handleNonCallReq ( f ) if err == errUnknownID { // This ID may be owned by an outgoing call, so check the outbound // message exchange, and if it succeeds, then the frame has been // handled successfully. if err := r . conn . outbound . forwardPeerFrame ( f ) ; err == nil { return nil } } return err } return r . handleCallReq ( newLazyCallReq ( f ) ) }
// Relay is called for each frame that is read on the connection.
Relay is called for each frame that is read on the connection .