socket.js 921 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict'
  2. var util = require('util')
  3. var net = require('net')
  4. function Socket (parent, options) {
  5. net.Socket.call(this, options)
  6. var state = {}
  7. this._spdyState = state
  8. state.parent = parent
  9. this.servername = parent.servername
  10. this.npnProtocol = parent.npnProtocol
  11. this.alpnProtocol = parent.alpnProtocol
  12. this.authorized = parent.authorized
  13. this.authorizationError = parent.authorizationError
  14. this.encrypted = true
  15. this.allowHalfOpen = true
  16. }
  17. util.inherits(Socket, net.Socket)
  18. module.exports = Socket
  19. var methods = [
  20. 'renegotiate', 'setMaxSendFragment', 'getTLSTicket', 'setServername',
  21. 'setSession', 'getPeerCertificate', 'getSession', 'isSessionReused',
  22. 'getCipher', 'getEphemeralKeyInfo'
  23. ]
  24. methods.forEach(function (method) {
  25. Socket.prototype[method] = function methodWrap () {
  26. var parent = this._spdyState.parent
  27. return parent[method].apply(parent, arguments)
  28. }
  29. })