summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/changes.xml6
-rw-r--r--src/nodejs/unit-http/http.js4
-rw-r--r--src/nodejs/unit-http/http_server.js10
-rw-r--r--test/node/options/app.js4
-rw-r--r--test/test_node_application.py6
5 files changed, 27 insertions, 3 deletions
diff --git a/docs/changes.xml b/docs/changes.xml
index 428da0ba..a3549697 100644
--- a/docs/changes.xml
+++ b/docs/changes.xml
@@ -53,6 +53,12 @@ NGINX Unit updated to 1.32.0.
</para>
</change>
+<change type="bugfix">
+<para>
+http.createServer() now accepts "options" argument introduced in Node.js v9.6.0, v8.12.0.
+</para>
+</change>
+
<change type="feature">
<para>
conditional access logging.
diff --git a/src/nodejs/unit-http/http.js b/src/nodejs/unit-http/http.js
index d298a35f..60b8004f 100644
--- a/src/nodejs/unit-http/http.js
+++ b/src/nodejs/unit-http/http.js
@@ -11,8 +11,8 @@ const {
ServerResponse,
} = require('./http_server');
-function createServer (requestHandler) {
- return new Server(requestHandler);
+function createServer (options, requestHandler) {
+ return new Server(options, requestHandler);
}
const http = require("http")
diff --git a/src/nodejs/unit-http/http_server.js b/src/nodejs/unit-http/http_server.js
index 8eb13d7f..b78f309a 100644
--- a/src/nodejs/unit-http/http_server.js
+++ b/src/nodejs/unit-http/http_server.js
@@ -5,6 +5,7 @@
'use strict';
+const { stderr } = require('process');
const EventEmitter = require('events');
const http = require('http');
const util = require('util');
@@ -413,7 +414,14 @@ ServerRequest.prototype._read = function _read(n) {
};
-function Server(requestListener) {
+function Server(options, requestListener) {
+ if (typeof options === 'function') {
+ requestListener = options;
+ options = {};
+ } else {
+ stderr.write("http.Server constructor was called with unsupported options, using default settings\n");
+ }
+
EventEmitter.call(this);
this.unit = new unit_lib.Unit();
diff --git a/test/node/options/app.js b/test/node/options/app.js
new file mode 100644
index 00000000..bc538080
--- /dev/null
+++ b/test/node/options/app.js
@@ -0,0 +1,4 @@
+require('http').createServer({}, function (req, res) {
+ res.writeHead(200, {'Content-Length': 12, 'Content-Type': 'text/plain'})
+ .end('Hello World\n');
+}).listen(8080);
diff --git a/test/test_node_application.py b/test/test_node_application.py
index cb775210..88ae3136 100644
--- a/test/test_node_application.py
+++ b/test/test_node_application.py
@@ -21,6 +21,12 @@ def test_node_application_basic():
assert_basic_application()
+def test_node_application_options(wait_for_record):
+ client.load('options')
+
+ assert_basic_application()
+ assert wait_for_record(r'constructor was called with unsupported') is not None
+
def test_node_application_loader_unit_http():
client.load('loader/unit_http')