Software /
code /
prosody
File
spec/net_websocket_frames_spec.lua @ 12557:ee5b061588ea 0.12
net.unbound: Merge luaunbound and prosody defaults in absence of user config (fixes #1763) (thanks rgd)
add_defaults() is supposed to merge 3 tables, the defaults in
luaunbound, the defaults from prosody and any config from the prosody
config file. In the case where no `unbound={}` has been in the config,
it skips over the merge and returns only the prosody built-in defaults.
This results in libunbound skipping reading resolv.conf and uses its
default behavior of full recursive resolution.
Prior to #1737 there were only two tables, the luaunbound defaults and
the prosody config, where bypassing the merge and returning the former
did the right thing.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 19 Jun 2022 19:49:32 +0200 |
parent | 11166:51e5149ed0ad |
line wrap: on
line source
describe("net.websocket.frames", function () local nwf = require "net.websocket.frames"; local test_frames = { simple_empty = { ["opcode"] = 0; ["length"] = 0; ["data"] = ""; ["FIN"] = false; ["MASK"] = false; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; simple_data = { ["opcode"] = 0; ["length"] = 5; ["data"] = "hello"; ["FIN"] = false; ["MASK"] = false; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; simple_fin = { ["opcode"] = 0; ["length"] = 0; ["data"] = ""; ["FIN"] = true; ["MASK"] = false; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; with_mask = { ["opcode"] = 0; ["length"] = 5; ["data"] = "hello"; ["key"] = " \0 \0"; ["FIN"] = true; ["MASK"] = true; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; empty_with_mask = { ["opcode"] = 0; ["key"] = " \0 \0"; ["FIN"] = true; ["MASK"] = true; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; ping = { ["opcode"] = 0x9; ["length"] = 4; ["data"] = "ping"; ["FIN"] = true; ["MASK"] = false; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; pong = { ["opcode"] = 0xa; ["length"] = 4; ["data"] = "pong"; ["FIN"] = true; ["MASK"] = false; ["RSV1"] = false; ["RSV2"] = false; ["RSV3"] = false; }; } describe("build", function () local build = nwf.build; it("works", function () assert.equal("\0\0", build(test_frames.simple_empty)); assert.equal("\0\5hello", build(test_frames.simple_data)); assert.equal("\128\0", build(test_frames.simple_fin)); assert.equal("\128\133 \0 \0HeLlO", build(test_frames.with_mask)) assert.equal("\128\128 \0 \0", build(test_frames.empty_with_mask)) assert.equal("\137\4ping", build(test_frames.ping)); assert.equal("\138\4pong", build(test_frames.pong)); end); end); describe("parse", function () local parse = nwf.parse; it("works", function () assert.same(test_frames.simple_empty, parse("\0\0")); assert.same(test_frames.simple_data, parse("\0\5hello")); assert.same(test_frames.simple_fin, parse("\128\0")); assert.same(test_frames.with_mask, parse("\128\133 \0 \0HeLlO")); assert.same(test_frames.ping, parse("\137\4ping")); assert.same(test_frames.pong, parse("\138\4pong")); end); end); end);