Index: messengers.inc.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/onlinestatus/messengers.inc.php,v
retrieving revision 1.12.2.1
diff -u -r1.12.2.1 messengers.inc.php
--- messengers.inc.php	23 Apr 2007 22:46:40 -0000	1.12.2.1
+++ messengers.inc.php	6 Nov 2007 16:23:05 -0000
@@ -339,4 +339,34 @@
       }
   }
 }
-?>
+
+/**
+ * Onlinestatus Indicator support for Hamachi
+ *
+ * @param string $op possible operations: description, update, url, validate
+ * @param string $account the IP address
+ * @return string
+ */
+function onlinestatus_messenger_hamachi($op, $account = null) {
+  switch ($op) {
+    case 'description' :
+      return t('Your Hamachi IP address. Please make sure you enable the online presence and the web status indicator in your Hamachi settings.');
+    case 'update' :
+      $url = sprintf('http://my.hamachi.cc/status/text.php?%s', $account);
+      $data = onlinestatus_fetch_url($url, false, false, false);
+      
+      if (strstr($data, 'online')) {
+        return 'online';
+      }
+      elseif (strstr($data, 'offline')) {
+        return 'offline';
+      }
+      else {
+        return 'unknown';
+      }
+    case 'url' :
+        return '#';
+    case 'validate':
+      return (ip2long($account) !== FALSE);
+  }
+}
Index: onlinestatus.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/onlinestatus/onlinestatus.module,v
retrieving revision 1.15.2.1
diff -u -r1.15.2.1 onlinestatus.module
--- onlinestatus.module	23 Apr 2007 22:46:40 -0000	1.15.2.1
+++ onlinestatus.module	6 Nov 2007 16:11:15 -0000
@@ -43,6 +43,7 @@
     'msn' => t('MSN messenger'),
     'skype' => t('Skype'),
     'yahoo' => t('Yahoo! messenger'),
+    'hamachi' => t('Hamachi'),
 /* TODO: New XFire Support    'xfire' => t('XFire'), */
   );
   if ($only_activated) {
@@ -140,7 +141,7 @@
       'description' => t('Configure the Status Settings'),
       'callback' => 'drupal_get_form',
       'callback arguments' => array('onlinestatus_admin_settings'),
-      'access' => 'administer site configuration',
+      'access' => user_access('administer site configuration'),
     );
   }
   return $items;
