Index: mollom.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mollom/mollom.module,v
retrieving revision 1.2.2.16
diff -u -p -r1.2.2.16 mollom.module
--- mollom.module	19 Aug 2008 15:42:30 -0000	1.2.2.16
+++ mollom.module	19 Aug 2008 21:39:38 -0000
@@ -599,6 +599,14 @@ function _mollom_protectable_forms() {
         'mode' => MOLLOM_MODE_ANALYSIS,
       );
     }
+
+    // Trackbacks
+    if (module_exists('trackback')) {
+      $forms['trackback'] = array(
+        'name' => 'trackbacks',
+        'mode' => MOLLOM_MODE_ANALYSIS,
+      );
+    }
   }
 
   return $forms;
@@ -1097,6 +1105,38 @@ function mollom($method, $data = array()
 }
 
 /**
+ * Implementation of hook_trackback().
+ *
+ * Checks incoming Trackback with Mollom.
+ */
+function mollom_trackback(&$trackback, $op) {
+  if (variable_get('mollom_trackback', 0) && ($op == 'receive' || $op == 'insert')) {
+    dsm($trackback);
+    $data = array(
+      'post_title'  => $trackback->subject,
+      'post_body'   => $trackback->excerpt, // Dev. Mode: 'spam', 'ham', 'unsure'
+      'author_name' => $trackback->name, // Site name of Trackback
+      'author_url'  => $trackback->url,
+      'author_ip'   => $trackback->site,
+    );
+    dsm($data);
+    $response = mollom('mollom.checkContent', $data);
+    dsm($response);
+    case ($response->spam) {
+      case MOLLOM_ANALYSIS_HAM:
+        // Do nothing/publicise
+      case MOLLOM_ANALYSIS_SPAM:
+        // Delete the Trackback (+ note through watchdog())
+      case MOLLOM_ANALYSIS_UNSURE:
+        // Put into Trackback's moderation queue and allow for the site's
+        // maintainer to tell Mollom whether it was good or bad - possibly by
+        // catching $op == 'publish'/'unpublish'/'delete'? Or add new 'publish
+        // and report as ham to Mollom' and 'delete and report as spam to Mollom'?
+    }
+  }
+}
+
+/**
  * This function generate an array with all the information required to
  * authenticate against Mollom. To prevent that requests are forged and
  * that you are impersonated, each request is signed with a hash computed
