| // Flags: --insecure-http-parser |
| |
| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const http = require('http'); |
| const net = require('net'); |
| |
| const server = http.createServer(common.mustCallAtLeast((req, res) => { |
| assert.strictEqual(req.headers['content-type'], 'text/te\bt'); |
| req.pipe(res); |
| })); |
| |
| server.listen(0, common.mustCall(function() { |
| const bufs = []; |
| const client = net.connect( |
| this.address().port, |
| function() { |
| client.write( |
| 'GET / HTTP/1.1\r\n' + |
| 'Content-Type: text/te\x08t\r\n' + |
| 'Host: example.com' + |
| 'Connection: close\r\n\r\n'); |
| } |
| ); |
| client.on('data', function(chunk) { |
| bufs.push(chunk); |
| }); |
| client.on('end', common.mustCall(function() { |
| const head = Buffer.concat(bufs) |
| .toString('latin1') |
| .split('\r\n')[0]; |
| assert.strictEqual(head, 'HTTP/1.1 200 OK'); |
| server.close(); |
| })); |
| })); |