Software /
code /
prosody
Annotate
spec/net_http_server_spec.lua @ 11590:5aafb832c91b
core.portmanager: Fix race condition in initialization of SNI cert map
Under some circumstances when hosts and modules are loaded in some
certain order, entries end up missing from the SNI map. This manifests
in e.g. `curl https://localhost:5281/` giving an error about
"unrecognized name".
The `service` argument is `nil` when invoked from the "host-activated"
event, leading it to iterating over every service. And then it would not
be fetching e.g. `http_host` from the config, which explains why https
would sometimes not work due to the missing name entry.
Because when `service` is included, this limits the iteration to
matching entries, while also returning the same value as the `name` loop
variable. Because `name == service when service != nil` we can use name
instead in the body of the loop.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 May 2021 17:09:22 +0200 |
parent | 8687:ee01578c67cb |
rev | line source |
---|---|
8413
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 describe("net.http.server", function () |
8687
ee01578c67cb
net.http.server: Prevent loading of net.server in tests (breaks unrelated tests for some reason)
Kim Alvefur <zash@zash.se>
parents:
8413
diff
changeset
|
2 package.loaded["net.server"] = {} |
8413
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local server = require "net.http.server"; |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 describe("events", function () |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 it("should work with util.helpers", function () |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 -- See #1044 |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 server.add_handler("GET host/foo/*", function () end, 0); |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 server.add_handler("GET host/foo/bar", function () end, 0); |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 local helpers = require "util.helpers"; |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 assert.is.string(helpers.show_events(server._events)); |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 end); |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end); |
9a234e25b35b
spec/net.http.server: Add test for #1044
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end); |