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