This file is indexed.

/usr/lib/nodejs/connect/patch.js is in node-connect 1.7.3-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
/*!
 * Connect
 * Copyright(c) 2011 TJ Holowaychuk
 * MIT Licensed
 */

/**
 * Module dependencies.
 */

var http = require('http')
  , res = http.OutgoingMessage.prototype;

// original setHeader()

var setHeader = res.setHeader;

// original _renderHeaders()

var _renderHeaders = res._renderHeaders;

if (res._hasConnectPatch) return;

/**
 * Provide a public "header sent" flag
 * until node does.
 *
 * @return {Boolean}
 * @api public
 */

res.__defineGetter__('headerSent', function(){
  return this._headerSent;
});

/**
 * Set header `field` to `val`, special-casing
 * the `Set-Cookie` field for multiple support.
 *
 * @param {String} field
 * @param {String} val
 * @api public
 */

res.setHeader = function(field, val){
  var key = field.toLowerCase()
    , prev;

  // special-case Set-Cookie
  if (this._headers && 'set-cookie' == key) {
    if (prev = this.getHeader(field)) {
      val = Array.isArray(prev)
        ? prev.concat(val)
        : [prev, val];
    }
  // charset
  } else if ('content-type' == key && this.charset) {
    val += '; charset=' + this.charset;
  }

  return setHeader.call(this, field, val);
};

/**
 * Proxy `res.end()` to expose a 'header' event,
 * allowing arbitrary augmentation before the header
 * fields are written to the socket.
 *
 * NOTE: this _only_ supports node's progressive header
 * field API aka `res.setHeader()`.
 */

res._renderHeaders = function(){
  this.emit('header');
  return _renderHeaders.call(this);
};

res._hasConnectPatch = true;