Update shelf_io.dart to support shared param (#109)
Pass `shared` parameter through to `HttpServer.bind` and `HttpServer.bindSecure` (i.e., to enable port sharing across separate isolates)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f4e1c9f..a0ed6af 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.7.4
+
+* Allow passing `shared` parameter to underlying `HttpServer.bind` calls via `shelf_io.serve`
+
## 0.7.3+3
* Set max SDK version to `<3.0.0`, and adjust other dependencies.
diff --git a/lib/shelf_io.dart b/lib/shelf_io.dart
index 956e7ff..7cb1230 100644
--- a/lib/shelf_io.dart
+++ b/lib/shelf_io.dart
@@ -38,14 +38,14 @@
/// If a [securityContext] is provided an HTTPS server will be started.
////
/// See the documentation for [HttpServer.bind] and [HttpServer.bindSecure]
-/// for more details on [address], [port], and [backlog].
+/// for more details on [address], [port], [backlog], and [shared].
Future<HttpServer> serve(Handler handler, address, int port,
- {SecurityContext securityContext, int backlog}) async {
+ {SecurityContext securityContext, int backlog, bool shared = false}) async {
backlog ??= 0;
HttpServer server = await (securityContext == null
- ? HttpServer.bind(address, port, backlog: backlog)
+ ? HttpServer.bind(address, port, backlog: backlog, shared: shared)
: HttpServer.bindSecure(address, port, securityContext,
- backlog: backlog));
+ backlog: backlog, shared: shared));
serveRequests(server, handler);
return server;
}