Index: sentry_server.module
===================================================================
--- sentry_server.module	(revision 2646)
+++ sentry_server.module	(working copy)
@@ -256,34 +256,34 @@
 }
 
 function sentry_server_load($node) {
-  
+
   $site = NULL;
-  
+
   // Site information
   $sentry_site = db_fetch_object(db_query('SELECT hostname, core_status, plugins, update_period, last_updated, cron_key FROM {sentry_sites} WHERE nid = %d', $node->nid));
-  
+
   if (!empty($sentry_site->hostname)) {
 	  $site = new stdClass();
 	  $site->hostname = $sentry_site->hostname;
 	  $site->sentry_last_updated = $sentry_site->last_updated;
 	  $site->sentry_update_period = $sentry_site->update_period;
 	  $site->cron_key = $sentry_site->cron_key;
-	
+
 	  $enabled_plugins = unserialize($sentry_site->plugins);
 	  foreach ($enabled_plugins as $plugin => $enabled) {
 	    if (0 === $enabled) { // so we can use in_array and isset instead of comparisons later on
 	      unset($enabled_plugins[$plugin]);
 	    }
 	  }
-	  
+
 	  // Enable certain core plugins by hand
     $enabled_plugins['core'] = 'core';
     $enabled_plugins['core_cron'] = 'core_cron';
-  
+
     $site->plugins = $enabled_plugins;
   }
-  
-  
+
+
   return $site;
 }
 
@@ -354,7 +354,7 @@
     $enabled_plugins = $node->plugins;
     foreach ($enabled_plugins as $key => $plugin) {
       // If plugin declares an xmlrpc callback it uses we call it, handle errors.
-      if (isset($available_plugins[$key]['xmlrpc_callback'])) { 
+      if (isset($available_plugins[$key]['xmlrpc_callback'])) {
         sentry_xmlrpc_call($key, $available_plugins[$key], $node);
       }
       else { // Just call handler with the node as argument.
@@ -389,7 +389,7 @@
     if ($error->code <= 0 && !isset($error->message)) {
       $error->message = t('Outgoing HTTP request failed because the socket could not be opened.');
     }
-    watchdog('sentry server', '%plugin XML-RPC call for %node failed, error: %message (@code).', 
+    watchdog('sentry server', '%plugin XML-RPC call for %node failed, error: %message (@code).',
       array(
         '%plugin' => $plugin,
         '%node' => $node->title,
@@ -522,7 +522,7 @@
  * @param $node
  *   The node we want to create a report about.
  * @return
- *   A keyed array of requirements. Each requirement is itself an array with the following items: 
+ *   A keyed array of requirements. Each requirement is itself an array with the following items:
  *   - 'title': the name of the requirement.
  *   - 'value': the current value (e.g. version, time, level, ...). During install phase, this should only be used for version numbers, do not set it if not applicable.
  *   - 'description': description of the requirement/status.
@@ -530,7 +530,7 @@
  *     o REQUIREMENT_INFO: For info only.
  *     o REQUIREMENT_OK: The requirement is satisfied.
  *     o REQUIREMENT_WARNING: The requirement failed with a warning.
- *     o REQUIREMENT_ERROR: The requirement failed with an error. 
+ *     o REQUIREMENT_ERROR: The requirement failed with an error.
  */
 function sentry_server_sentry_report($node, $check_plugin = NULL) {
   $plugins = sentry_server_plugin_info();
@@ -604,7 +604,7 @@
  */
 function sentry_server_http_report($node, $plugin_info) {
   $max = 10;
-  $result = db_query_range('SELECT code, delay FROM {sentry_http_history} WHERE nid = %d ORDER BY timestamp DESC', $node->nid, 0, $max); 
+  $result = db_query_range('SELECT code, delay FROM {sentry_http_history} WHERE nid = %d ORDER BY timestamp DESC', $node->nid, 0, $max);
 
   $http = array();
   $count = 0;
@@ -612,11 +612,11 @@
     if (!isset($first)) {
       $first = $record;
     }
-    
+
     if (empty($http[$record->code])) {
       $http[$record->code] = 0;
     }
-    
+
     $http[$record->code]++;
     $count++;
   }
@@ -713,7 +713,7 @@
       $return[$module] = call_user_func_array($function, $args);
     }
 
-    // Certain node has $node->plugins enabled. We need to find out which module 
+    // Certain node has $node->plugins enabled. We need to find out which module
     // implements these.
     foreach ($return as $module => $plugins) {
       foreach ($node->plugins as $key => $plugin) {
Index: sentry_server_cron/sentry_server_cron.module
===================================================================
--- sentry_server_cron/sentry_server_cron.module	(revision 2646)
+++ sentry_server_cron/sentry_server_cron.module	(working copy)
@@ -30,6 +30,7 @@
     'page arguments' => array('sentry_server_cron_settings_form'),
     'access arguments' => array('administer sentry server'),
     'file' => 'sentry_server_cron_admin.inc',
+    'type' => MENU_LOCAL_TASK,
   );
   return $items;
 }
@@ -91,11 +92,11 @@
     if (!isset($first)) {
       $first = $record;
     }
-    
+
     if (empty($cron[$record->code])) {
       $cron[$record->code] = 0;
     }
-    
+
     $cron[$record->code]++;
     $history[] = $record->delay;
   }
Index: sentry_server_update/sentry_server_update.module
===================================================================
--- sentry_server_update/sentry_server_update.module	(revision 2646)
+++ sentry_server_update/sentry_server_update.module	(working copy)
@@ -12,7 +12,7 @@
 define('SENTRY_UPDATE_DEFAULT_URL', 'http://updates.drupal.org/release-history');
 
 /**
- * Define site-wide statuses. 
+ * Define site-wide statuses.
  */
 define('SENTRY_UPDATE_UNKNOWN', 0);
 define('SENTRY_UPDATE_INSECURE_CORE', 1);
@@ -52,6 +52,7 @@
     'page arguments' => array('sentry_server_update_settings_form'),
     'access arguments' => array('administer sentry server'),
     'file' => 'sentry_server_update_admin.inc',
+    'type' => MENU_LOCAL_TASK,
   );
 
   $items['mysites/projects'] = array(
@@ -80,7 +81,7 @@
   return $info;
 }
 
-/** 
+/**
  * Implementation of hook_cron().
  * Update the stored project information.
  */
@@ -98,21 +99,21 @@
 
 /**
  * Update the release information of one single project.
- * The function will first check if we have an active cached entry for the release 
- * information, because we will enter this function multiple times for different 
+ * The function will first check if we have an active cached entry for the release
+ * information, because we will enter this function multiple times for different
  * minor versions of the same core compatible project.
- * 
+ *
  * @param $project
  *   The full $project information from the database.
  */
 function sentry_server_update_refresh_project($project) {
   // Check if we have updated this project for this core first.
-  // $refresh doesnt make much sense here, this just prevents from downloading the 
+  // $refresh doesnt make much sense here, this just prevents from downloading the
   // same release xml for e.g. devel 6.x-1.x-dev and 6.x-1.14
   // The difference between this mechanism and the sentry_server_update_get_release
   // is that that function is aimed at RETURNING a project array,
   // and there is a $refresh force option, here isnt.
-  // That option makes the first cache hit to reload, but this function makes sure 
+  // That option makes the first cache hit to reload, but this function makes sure
   // we dont overload drupal.org even if _update_get_release is used in a loop.
   $cache_key = _sentry_cache_key($project);
   $cache = cache_get($cache_key, 'cache_sentry_releases');
@@ -179,8 +180,8 @@
       $site['projects'] = array();
       $result = db_query('SELECT sm.project_id, sm.name, sm.status, sm.title,
         sm.version, sm.project_type
-        FROM {sentry_projects} sm 
-        LEFT JOIN {sentry_sites_projects} ssm ON ssm.project_id = sm.project_id 
+        FROM {sentry_projects} sm
+        LEFT JOIN {sentry_sites_projects} ssm ON ssm.project_id = sm.project_id
         WHERE ssm.nid = %d ORDER BY sm.project_type', $node->nid);
       while ($project = db_fetch_array($result)) {
         // If its not an array then it doesnt get loaded into the node object wtf
@@ -198,8 +199,8 @@
  * Update projects for a given node.
  */
 function sentry_server_update_status_save($nid, $projects = array()) {
-  // Lets flush the known modules, we will rebuild in the loop, 
-  // because we don't know what modules we switched from. 
+  // Lets flush the known modules, we will rebuild in the loop,
+  // because we don't know what modules we switched from.
   // All that matters is the present.
   db_query('DELETE FROM {sentry_sites_projects} WHERE nid = %d', $nid);
 
@@ -209,7 +210,7 @@
 
     // Check if this project exists already. We check the datestamp so that dev versions can be tracked,
     // for official, stable releases the datestamp will be the same, but dev can only be versioned by it.
-    $project_id = db_result(db_query('SELECT project_id FROM {sentry_projects} 
+    $project_id = db_result(db_query('SELECT project_id FROM {sentry_projects}
       WHERE name = "%s" AND version = "%s" AND datestamp = %d', $project['name'], $project['version'], $project['datestamp']));
     $project = (object)$project; // otherwise doesn't record title :S
     if (empty($project_id)) {  // New module! Lets record it.
@@ -260,7 +261,7 @@
 
 /**
  * Retreive a certain projects release information from the cache.
- * If project release has expired, or not found in the cache, or refresh force 
+ * If project release has expired, or not found in the cache, or refresh force
  * requested then re-download the xml from the release url.
  */
 function sentry_server_update_get_release($project, $refresh = FALSE) {
@@ -333,9 +334,9 @@
  * We don't have the info array of the modules, so I had to rewrite.
  * I removed the first reference to the info sub array, but left it in later, so
  * the $project array does not get unnecessary stuff.
- * 
+ *
  * Processes a single project to figure out the installed versions,
- * and other information that is required before we can compare against the 
+ * and other information that is required before we can compare against the
  * available releases to produce the status report.
  *
  * @param $project
@@ -728,7 +729,7 @@
   case SENTRY_UPDATE_NOT_CURRENT:
     $report['value'] = t('Site out of date');
     $report['severity'] = REQUIREMENT_WARNING;
-    $report['description'] = t('The website has outdated modules. !details', 
+    $report['description'] = t('The website has outdated modules. !details',
       array('!details' => l(t('Detailed information.'), 'node/'. $node->nid .'/projects')));
     break;
   case SENTRY_UPDATE_CURRENT:
@@ -783,7 +784,7 @@
   if ($icon_only) {
     return theme('image', $icon, $title, $title);
   }
-  
+
   $row .= "</div>\n";
   return $row;
 }
@@ -861,7 +862,7 @@
  */
 function _project_major($project) {
   preg_match("/^([0-9]+)\..+/", $project['version'], $matches); // We're drupal 10+ compatible!
-  return $matches[1] .'.x'; 
+  return $matches[1] .'.x';
 }
 
 /**
