package notify import "errors" var ( errServiceShutdown = errors.New("service shutdown") errTransportDetached = errors.New("transport detached") ) func (c *ClientCommon) ensureClientSendReady() error { if !sessionIsAlive(&c.alive) { return errServiceShutdown } if !c.clientTransportAttachedSnapshot() { return clientTransportDetachedError(c) } return nil } func (s *ServerCommon) ensureServerSendReady(client *ClientConn) error { if client == nil { return s.ensureServerTransportSendReady(nil) } return s.ensureServerTransportSendReady(s.resolveOutboundTransport(logicalConnFromClient(client))) } func (s *ServerCommon) ensureServerTransportSendReady(transport *TransportConn) error { if !sessionIsAlive(&s.alive) { return errServiceShutdown } if s.serverUDPListenerSnapshot() != nil { if transport == nil || transport.RemoteAddr() == nil || !transport.IsCurrent() { return transportDetachedErrorForTransport(transport) } return nil } if transport == nil || !transport.Attached() || !transport.HasRuntimeConn() || !transport.IsCurrent() { return transportDetachedErrorForTransport(transport) } return nil }