original_string: protected function cookieMatchesTarget ($cookie, $target)
      {
          if (!is_array($target)) {
              throw new CAS_InvalidArgumentException(
                  '$target must be an array of URL attributes as generated by parse_url().'
              );
          }
          if (!isset($target['host'])) {
              throw new CAS_InvalidArgumentException(
                  '$target must be an array of URL attributes as generated by parse_url().'
              );
          }
  
          // Verify that the scheme matches
          if ($cookie['secure'] && $target['scheme'] != 'https') {
              return false;
          }
  
          // Verify that the host matches
          // Match domain and mulit-host cookies
          if (strpos($cookie['domain'], '.') === 0) {
              // .host.domain.edu cookies are valid for host.domain.edu
              if (substr($cookie['domain'], 1) == $target['host']) {
                  // continue with other checks
              } else {
                  // non-exact host-name matches.
                  // check that the target host a.b.c.edu is within .b.c.edu
                  $pos = strripos($target['host'], $cookie['domain']);
                  if (!$pos) {
                      return false;
                  }
                  // verify that the cookie domain is the last part of the host.
                  if ($pos + strlen($cookie['domain']) != strlen($target['host'])) {
                      return false;
                  }
                  // verify that the host name does not contain interior dots as per
                  // RFC 2965 section 3.3.2  Rejecting Cookies
                  // http://www.ietf.org/rfc/rfc2965.txt
                  $hostname = substr($target['host'], 0, $pos);
                  if (strpos($hostname, '.') !== false) {
                      return false;
                  }
              }
          } else {
              // If the cookie host doesn't begin with '.',
              // the host must case-insensitive match exactly
              if (strcasecmp($target['host'], $cookie['domain']) !== 0) {
                  return false;
              }
          }
  
          // Verify that the port matches
          if (isset($cookie['ports'])
              && !in_array($target['port'], $cookie['ports'])
          ) {
              return false;
          }
  
          // Verify that the path matches
          if (strpos($target['path'], $cookie['path']) !== 0) {
              return false;
          }
  
          return true;
      }
code: protected function cookieMatchesTarget ($cookie, $target)
      {
          if (!is_array($target)) {
              throw new CAS_InvalidArgumentException(
                  '$target must be an array of URL attributes as generated by parse_url().'
              );
          }
          if (!isset($target['host'])) {
              throw new CAS_InvalidArgumentException(
                  '$target must be an array of URL attributes as generated by parse_url().'
              );
          }
  
          // Verify that the scheme matches
          if ($cookie['secure'] && $target['scheme'] != 'https') {
              return false;
          }
  
          // Verify that the host matches
          // Match domain and mulit-host cookies
          if (strpos($cookie['domain'], '.') === 0) {
              // .host.domain.edu cookies are valid for host.domain.edu
              if (substr($cookie['domain'], 1) == $target['host']) {
                  // continue with other checks
              } else {
                  // non-exact host-name matches.
                  // check that the target host a.b.c.edu is within .b.c.edu
                  $pos = strripos($target['host'], $cookie['domain']);
                  if (!$pos) {
                      return false;
                  }
                  // verify that the cookie domain is the last part of the host.
                  if ($pos + strlen($cookie['domain']) != strlen($target['host'])) {
                      return false;
                  }
                  // verify that the host name does not contain interior dots as per
                  // RFC 2965 section 3.3.2  Rejecting Cookies
                  // http://www.ietf.org/rfc/rfc2965.txt
                  $hostname = substr($target['host'], 0, $pos);
                  if (strpos($hostname, '.') !== false) {
                      return false;
                  }
              }
          } else {
              // If the cookie host doesn't begin with '.',
              // the host must case-insensitive match exactly
              if (strcasecmp($target['host'], $cookie['domain']) !== 0) {
                  return false;
              }
          }
  
          // Verify that the port matches
          if (isset($cookie['ports'])
              && !in_array($target['port'], $cookie['ports'])
          ) {
              return false;
          }
  
          // Verify that the path matches
          if (strpos($target['path'], $cookie['path']) !== 0) {
              return false;
          }
  
          return true;
      }
code_tokens: protected function cookieMatchesTarget ( $ cookie , $ target ) { if ( ! is_array ( $ target ) ) { throw new CAS_InvalidArgumentException ( '$target must be an array of URL attributes as generated by parse_url().' ) ; } if ( ! isset ( $ target [ 'host' ] ) ) { throw new CAS_InvalidArgumentException ( '$target must be an array of URL attributes as generated by parse_url().' ) ; } // Verify that the scheme matches if ( $ cookie [ 'secure' ] && $ target [ 'scheme' ] != 'https' ) { return false ; } // Verify that the host matches // Match domain and mulit-host cookies if ( strpos ( $ cookie [ 'domain' ] , '.' ) === 0 ) { // .host.domain.edu cookies are valid for host.domain.edu if ( substr ( $ cookie [ 'domain' ] , 1 ) == $ target [ 'host' ] ) { // continue with other checks } else { // non-exact host-name matches. // check that the target host a.b.c.edu is within .b.c.edu $ pos = strripos ( $ target [ 'host' ] , $ cookie [ 'domain' ] ) ; if ( ! $ pos ) { return false ; } // verify that the cookie domain is the last part of the host. if ( $ pos + strlen ( $ cookie [ 'domain' ] ) != strlen ( $ target [ 'host' ] ) ) { return false ; } // verify that the host name does not contain interior dots as per // RFC 2965 section 3.3.2  Rejecting Cookies // http://www.ietf.org/rfc/rfc2965.txt $ hostname = substr ( $ target [ 'host' ] , 0 , $ pos ) ; if ( strpos ( $ hostname , '.' ) !== false ) { return false ; } } } else { // If the cookie host doesn't begin with '.', // the host must case-insensitive match exactly if ( strcasecmp ( $ target [ 'host' ] , $ cookie [ 'domain' ] ) !== 0 ) { return false ; } } // Verify that the port matches if ( isset ( $ cookie [ 'ports' ] ) && ! in_array ( $ target [ 'port' ] , $ cookie [ 'ports' ] ) ) { return false ; } // Verify that the path matches if ( strpos ( $ target [ 'path' ] , $ cookie [ 'path' ] ) !== 0 ) { return false ; } return true ; }
docstring: Answer true if cookie is applicable to a target.
  
  @param array $cookie An array of cookie attributes.
  @param array $target An array of URL attributes as generated by parse_url().
  
  @return bool
  
  @access private
docstring_tokens: Answer true if cookie is applicable to a target .