view util/hex.lua @ 14027:4a288b082f42 13.0

mod_s2s: Fix traceback when outgoing s2s queue is full (thanks tom) When session.send() is used, no 'origin' field is included in the event, leading to an error attempting to index nil.
author Kim Alvefur <zash@zash.se>
date Sun, 04 Jan 2026 17:54:48 +0100
parents a0ff5c438e9d
children
line wrap: on
line source

local s_char = string.char;
local s_format = string.format;
local s_gsub = string.gsub;
local s_lower = string.lower;

local char_to_hex = {};
local hex_to_char = {};

do
	local char, hex;
	for i = 0,255 do
		char, hex = s_char(i), s_format("%02x", i);
		char_to_hex[char] = hex;
		hex_to_char[hex] = char;
	end
end

local function to(s)
	return (s_gsub(s, ".", char_to_hex));
end

local function from(s)
	return (s_gsub(s_lower(s), "%X*(%x%x)%X*", hex_to_char));
end

return {
	encode = to, decode = from;
	-- COMPAT w/pre-0.12:
	to = to, from = from;
};