zhangjian
2023-06-05 0976d2d0f90cff460cedfdc8bd74e98c2c31a58c
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
'use strict'
 
var util = require('util')
var net = require('net')
 
function Socket (parent, options) {
  net.Socket.call(this, options)
 
  var state = {}
 
  this._spdyState = state
 
  state.parent = parent
 
  this.servername = parent.servername
  this.npnProtocol = parent.npnProtocol
  this.alpnProtocol = parent.alpnProtocol
  this.authorized = parent.authorized
  this.authorizationError = parent.authorizationError
  this.encrypted = true
  this.allowHalfOpen = true
}
 
util.inherits(Socket, net.Socket)
 
module.exports = Socket
 
var methods = [
  'renegotiate', 'setMaxSendFragment', 'getTLSTicket', 'setServername',
  'setSession', 'getPeerCertificate', 'getSession', 'isSessionReused',
  'getCipher', 'getEphemeralKeyInfo'
]
 
methods.forEach(function (method) {
  Socket.prototype[method] = function methodWrap () {
    var parent = this._spdyState.parent
    return parent[method].apply(parent, arguments)
  }
})