Skip to content

Commit 370eb39

Browse files
committed
fixup
1 parent 656c28c commit 370eb39

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

examples/proxy/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ async function run () {
1919
for (const name of res.getHeaderNames()) {
2020
res.removeHeader(name)
2121
}
22-
res.writeHead(err.statusCode || 500)
22+
res.statusCode = err.statusCode || 500
2323
res.end()
2424
}
2525
})

examples/proxy/proxy.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ class HTTPHandler {
4545
this.promise = new Promise((resolve, reject) => {
4646
this.callback = err => err ? reject(err) : resolve()
4747
})
48+
49+
// TODO: req, res, .on('error)
4850
}
4951

5052
onConnect (abort) {
@@ -100,6 +102,8 @@ class WSHandler {
100102
this.promise = new Promise((resolve, reject) => {
101103
this.callback = err => err ? reject(err) : resolve()
102104
})
105+
106+
// TODO: req, socket, .on('error)
103107
}
104108

105109
onConnect (abort) {
@@ -112,6 +116,8 @@ class WSHandler {
112116
}
113117

114118
onUpgrade (statusCode, headers, socket) {
119+
// TODO: Check statusCode?
120+
115121
if (this.head && this.head.length) {
116122
socket.unshift(this.head)
117123
}
@@ -125,17 +131,12 @@ class WSHandler {
125131
proxyName: this.proxyName,
126132
httpVersion: this.httpVersion
127133
})
134+
128135
for (let n = 0; n < headers.length; n += 2) {
129136
const key = headers[n + 0]
130137
const val = headers[n + 1]
131138

132-
if (!Array.isArray(val)) {
133-
head += `\r\n${key}: ${val}`
134-
} else {
135-
for (let i = 0; i < val.length; i++) {
136-
head += `\r\n${key}: ${val[i]}`
137-
}
138-
}
139+
head += `\r\n${key}: ${val}`
139140
}
140141
head += '\r\n\r\n'
141142

@@ -213,11 +214,12 @@ function getHeaders ({
213214
`proto=${socket.encrypted ? 'https' : 'http'}`,
214215
`host=${printIp(authority || host || '')}`
215216
].join(';'))
216-
} else {
217-
result.push('forwarded', forwarded)
217+
} else if (forwarded) {
218+
// The forwarded header should not be included in response.
219+
throw new createError.BadGateway()
218220
}
219221

220-
if (httpVersion && proxyName) {
222+
if (proxyName) {
221223
if (via) {
222224
if (via.split(',').some(name => name.endsWith(proxyName))) {
223225
throw new createError.LoopDetected()

0 commit comments

Comments
 (0)