File

teal-src/util/error.d.tl @ 12594:29685403be32

mod_saslauth: Implement RFC 9266 'tls-exporter' channel binding (#1760) Brings back SCRAM-SHA-*-PLUS from its hiatus brought on by the earlier channel binding method being undefined for TLS 1.3, and the increasing deployment of TLS 1.3. See 1bfd238e05ad and #1542 Requires future version of LuaSec, once support for this key material export method is merged. See https://github.com/brunoos/luasec/pull/187
author Kim Alvefur <zash@zash.se>
date Wed, 01 Jun 2022 15:06:59 +0200
parent 11459:86904555bffc
child 12626:608443cc765c
line wrap: on
line source

local enum error_type
	"auth"
	"cancel"
	"continue"
	"modify"
	"wait"
end

local enum error_condition
	"bad-request"
	"conflict"
	"feature-not-implemented"
	"forbidden"
	"gone"
	"internal-server-error"
	"item-not-found"
	"jid-malformed"
	"not-acceptable"
	"not-allowed"
	"not-authorized"
	"policy-violation"
	"recipient-unavailable"
	"redirect"
	"registration-required"
	"remote-server-not-found"
	"remote-server-timeout"
	"resource-constraint"
	"service-unavailable"
	"subscription-required"
	"undefined-condition"
	"unexpected-request"
end

local record protoerror
	type : error_type
	condition : error_condition
	text : string
	code : integer
end

local record error
	type : error_type
	condition : error_condition
	text : string
	code : integer
	context : { any : any }
	source : string
end

local type compact_registry_item = { string, string, string, string }
local type compact_registry = { compact_registry_item }
local type registry = { string : protoerror }
local type context = { string : any }

local record error_registry_wrapper
	source : string
	registry : registry
	new : function (string, context) : error
	coerce : function (any, string) : any, error
	wrap : function (error) : error
	wrap : function (string, context) : error
	is_error : function (any) : boolean
end

local record lib
	record configure_opt
		auto_inject_traceback : boolean
	end
	new : function (protoerror, context, { string : protoerror }, string) : error
	init : function (string, string, registry | compact_registry) : error_registry_wrapper
	init : function (string, registry | compact_registry) : error_registry_wrapper
	is_error : function (any) : boolean
	coerce : function (any, string) : any, error
	from_stanza : function (table, context, string) : error
	configure : function
end

return lib