code: private boolean checkReceiveAllowed() throws SISessionUnavailableException, SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "checkReceiveAllowed");
  
          boolean allowed = _destinationAttachedTo.isReceiveAllowed();
  
          if (!allowed)
          {
              // Register that LCP stopped for Receive Allowed
              _stoppedForReceiveAllowed = true;
  
              // Stop LCP for Receive Allowed
              if (!_stopped)
              {
                  internalStop();
              }
          }
          else
          {
              // Register that LCP not stopped for Receive Allowed
              _stoppedForReceiveAllowed = false;
  
              // Start LCP if no reason to be stopped
              if ((_stopped)
                  && (!_stoppedByRequest))
              {
                  internalStart(false);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "checkReceiveAllowed", Boolean.valueOf(allowed));
  
          return allowed;
      }
docs: Checks the destination allows receive
  
  If receive not allowed, and LCP started, stops it
  If receive allowed, and LCP stopped, may start it