commit | 63aecc8f3f53714a01f850d42aa4c4e4358854c8 | [log] [tgz] |
---|---|---|
author | Nate Bosch <nbosch@google.com> | Thu Apr 25 12:28:40 2019 -0700 |
committer | GitHub <noreply@github.com> | Thu Apr 25 12:28:40 2019 -0700 |
tree | 06a2859b0e6cf010f1682b9e61b3b9c4661378e3 | |
parent | ca115620ba0c163074abfc270ea7e0e047a67d9c [diff] |
Close Ipv4 server when failing to start Ipv6 (#12) Fixes a bug that could prevent the VM from shutting down if there is a port conflict with Ipv6 but not Ipv4.
An implementation of dart:io
‘s HttpServer that wraps multiple servers and forwards methods to all of them. It’s useful for serving the same application on multiple network interfaces while still having a unified way of controlling the servers. In particular, it supports serving on both the IPv4 and IPv6 loopback addresses using HttpMultiServer.loopback.
import 'package:http_multi_server/http_multi_server.dart'; import 'package:shelf/shelf.dart' as shelf; import 'package:shelf/shelf_io.dart' as shelf_io; void main() { // Both http://127.0.0.1:8080 and http://[::1]:8080 will be bound to the same // server. HttpMultiServer.loopback(8080).then((server) { shelf_io.serveRequests(server, (request) { return new shelf.Response.ok("Hello, world!"); }); }); }