| 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
 | | 'use strict' |  |   |  | function attachPush (req) { |  |   var handle = req.socket._handle |  |   |  |   handle.getStream(function (stream) { |  |     stream.on('pushPromise', function (push) { |  |       req.emit('push', push) |  |     }) |  |   }) |  | } |  |   |  | exports.onNewListener = function onNewListener (type) { |  |   var req = this |  |   |  |   if (type !== 'push') { |  |     return |  |   } |  |   |  |   // Not first listener |  |   if (req.listeners('push').length !== 0) { |  |     return |  |   } |  |   |  |   if (!req.socket) { |  |     req.on('socket', function () { |  |       attachPush(req) |  |     }) |  |     return |  |   } |  |   |  |   attachPush(req) |  | } | 
 |