
Link Checker
------------

Installation:

1. Place the entire linkchecker folder into your modules directory.
2. Go to Administer -> Site building -> Modules and enable the Link checker module.
3. Go to Administer -> Site configuration -> Link checker and enable the node types to scan.
4. Check all HTML tags that should be scanned.
5. Adjust the other parameters if the defaults don't suit your needs.
6. Save configuration
7. Wait for cron to check all your links... this may take some time! :-)

If links are broken they appear under Administer -> Reports -> Broken links.

If not, make sure the cron is configured and running properly on your Drupal
installation. The Link checker module also logs somewhat useful info about it's
activity under Administer -> Reports -> Recent log entries.


Required:

1. For internal URL extraction you need to make sure that Cron always get called
   with your real public site URL (for e.g. http://example.com/cron.php). Make
   sure it's never executed with http://localhost/cron.php or any other
   hostnames or ports, not available from public. Otherwise all links may be
   reported as broken and cannot verified as they should be.

   To make sure it always works - it's required to configure the $base_url in
   the config settings.php with your public sites URL. Better safe than sorry!


Known issues:

There are a lot of known issues in drupal_http_request(). These have been solved
in HTTPRL. As a workaround it's recommended to use HTTPRL in linkchecker.

Issues list:

* #997648: drupal_http_request() always calls fread() one more time than necessary
* #164365-12: drupal_http_request() does handle (invalid) non-absolute redirects
* #205969-11: drupal_http_request() assumes presence of Reason-Phrase in response Status-Line
* #371495: Error message from drupal_http_request() not UTF8 encoded
* #193073-11: drupal_http_request - socket not initialized
* #106506-8: drupal_http_request() does not handle 'chunked' responses - Make it support HTTP 1.1
* #1096890-15: drupal_http_request should return error if reaches max allowed redirects
* #875342-21: drupal_http_request() should pick up X-Drupal-Assertion-* HTTP headers
* #965078-31: HTTP request checking is unreliable and should be removed in favor of watchdog() calls
* #336367: HTTP client should protect commas when folding (compatibility with legacy HTTP/1.0)
* #45338: log fsockopen errors to watchdog


Other

* Drupal 6.14 only: A critical core bug has been introduced by #193383:
  set_time_limit: Centralize calls and prevent warnings and errors that stops
  link checker from verifying links. Apply the available D6 hotfix in #111 or
  update to Drupal 6.15+ to fix your installation.
