This file is indexed.

/usr/share/drupal6/modules/trackback/trackback.spam.inc is in drupal6-mod-trackback 1.2-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
// $Id: trackback.spam.inc,v 1.1 2007/12/06 17:53:49 zorac Exp $

/**
 * Implementation of hook_trackback()
 */
function trackback_trackback(&$trackback, $op) {
  switch ($op) {
    case 'receive':
      if (variable_get('trackback_spam_filter', 1)) {
        // drop silently if this is from a known spammer IP address
        module_invoke('spam', 'ip_filter', 'trackback', 0);
      }
      break;

    case 'insert':
      if (variable_get('trackback_spam_filter', 1)) {
        // invoke spam.module's spam filter
        module_invoke('spam', 'content_filter', 'trackback', $trackback->trid, $trackback->subject .' '. $trackback->url, $trackback->excerpt);
      }
      break;

    case 'delete':
      db_query("DELETE FROM {spam_tracker} WHERE source='trackback' AND id=%d", $trackback->trid);
      spam_log(SPAM_LOG, t('spam_delete_trackback: deleted trackback "%subject".', array('%subject' => $trackback->subject)), 'trackback', $trackback->trid);
      break;
  }
}

function trackback_spam($op, $a2, $a3, $a4) {
  $return = array();
  switch ($op) {
    case 'filter_settings':
      $return['group']['trackback_spam_filter'] = array(
        '#type' => 'checkbox',
        '#title' => t('Filter trackbacks'),
        '#default_value' => variable_get('trackback_spam_filter', 1),
        '#description' => t('Enable this option to filter new trackbacks as they are posted, determining whether or not they are spam.'));
      break;

    case 'page':
      if (arg(1) == 'trackback') {
        $trackback = trackback_load($a2);
        $return = array(
          'old' => spam_load('trackback', $a2),
          'header' => $trackback->subject .' '. $trackback->url,
          'body' => $trackback->excerpt,
          'goto' => _trackback_path($trackback),
          'goto_fragment' => 'trackbacks'
        );
      }
      break;
  }
  return $return;
}

function spam_publish_trackback($trid) {
  if ($trackback = _trackback_operation('publish', $trid)) {
    spam_log(SPAM_LOG, t('spam_publish_trackback: published trackback "%subject".', array('%subject' => $trackback->subject)), 'trackback', $trid);
  }
}

function spam_unpublish_trackback($trid) {
  if ($trackback = _trackback_operation('unpublish', $trid)) {
    spam_log(SPAM_LOG, t('spam_unpublish_trackback: unpublished trackback "%subject".', array('%subject' => $trackback->subject)), 'trackback', $trid);
  }
}

function spam_delete_trackback($trid) {
  if ($trackback = _trackback_operation('delete', $trid)) {
    spam_log(SPAM_LOG, t('spam_delete_trackback: deleted trackback "%subject".', array('%subject' => $trackback->subject)), 'trackback', $trid);
  }
}

function spam_spam_trackback($trid) {
  _trackback_operation('_trackback_as_spam', $trid);
}

function spam_notspam_trackback($trid) {
  _trackback_operation('_trackback_as_notspam', $trid);
}

function _trackback_as_spam($trackback) {
  _trackback_spam_modify($trackback, 1);
  watchdog('spam', 'Spam: marked trackback %subject as spam.', array('%subject' => $trackback->subject));
  spam_log(SPAM_LOG, t('trackback manually marked as spam'), 'trackback', $trackback->trid);
}

function _trackback_as_notspam($trackback) {
  _trackback_spam_modify($trackback, 0);
  watchdog('spam', 'Spam: marked trackback %subject as not spam.', array('%subject' => $trackback->subject));
  spam_log(SPAM_LOG, t('trackback manually marked as not spam'), 'trackback', $trackback->trid);
}

function _trackback_spam_modify($tb, $spam) {
  $tokens = spam_tokenize($tb->subject .' '. $tb->url, 'header*');
  $tokens = array_merge($tokens, spam_tokenize($tb->excerpt));
  spam_tokens_unsave($tokens, $spam);
  spam_tokens_save($tokens, $spam);
  $prob = $spam ? 99 : 1;
  db_query("UPDATE {spam_tracker} SET probability=%d, timestamp=%d WHERE source='trackback' AND id=%d", $prob, time(), $tb->trid);
  spam_default_actions('trackback', $tb->trid, $tb->subject, $tb->excerpt, $prob, NULL, FALSE);
}

function _trackback_spam_link($trackback) {
  $output = array();
  if (!variable_get('trackback_spam_filter', 1)) {
    return $output;
  }

  $p = db_fetch_object(db_query("SELECT probability FROM {spam_tracker} WHERE id = %d AND source = 'trackback'", $trackback->trid));
  $spam = array(
    'href' => 'spam/trackback/'. $trackback->trid .'/spam',
    'title' => t('mark as spam')
  );
  $notspam = array(
    'href' => 'spam/trackback/'. $trackback->trid .'/notspam',
    'title' => t('mark as not spam')
  );
  $access = user_access('access spam');
  $admin = user_access('administer spam');
  if (variable_get('spam_display_probability', 0)) {
    if (variable_get('spam_log_level', SPAM_LOG)) {
      $prob = l($p->probability, 'admin/content/spam/logs/trackback/'. $trackback->trid);
    }
    else {
      $prob = $p->probability;
    }
    $prob = ' ('. $prob .')';
  }

  if (!$p->probability && $admin) {
    $output['spam-spam'] = $spam;
    $output['spam-notspam'] = $notspam;
  }
  else if ($p->probability < variable_get('spam_threshold', 80)) {
    if ($access) {
      $output['spam-probability'] = array('title' => t('not spam') . $prob, 'html' => TRUE);
    }
    if ($admin) {
      $output['spam-spam'] = $spam;
    }
  }
  else {
    if ($access) {
      $output['spam-probability'] = array('title' => t('spam') . $prob, 'html' => TRUE);
    }
    if ($admin) {
      $output['spam-notspam'] = $notspam;
    }
  }
  return $output;
}