'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);
};
