annotate util/id.lua @ 11740:b92f2abe0bda

mod_s2s: Fire 's2s-ondrain' event, mirroring mod_c2s Signals that any pending outgoing stanzas that were in the write buffer have at least been sent off to the Kernel and maybe even sent out over the network. See 7a703af90c9c for mod_c2s commit
author Kim Alvefur <zash@zash.se>
date Mon, 16 Aug 2021 11:37:51 +0200
parents 9546c629289b
children b5b799a2a10c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8016
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Prosody IM
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 -- Copyright (C) 2008-2017 Matthew Wild
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 -- Copyright (C) 2008-2017 Waqas Hussain
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 -- Copyright (C) 2008-2017 Kim Alvefur
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 --
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 -- This project is MIT/X11 licensed. Please see the
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 -- COPYING file in the source package for more information.
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 --
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local s_gsub = string.gsub;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local random_bytes = require "util.random".bytes;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local base64_encode = require "util.encodings".base64.encode;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 local b64url = { ["+"] = "-", ["/"] = "_", ["="] = "" };
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 local function b64url_random(len)
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 return (s_gsub(base64_encode(random_bytes(len)), "[+/=]", b64url));
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 return {
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 short = function () return b64url_random(6); end;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 medium = function () return b64url_random(12); end;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 long = function () return b64url_random(24); end;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 custom = function (size)
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 return function () return b64url_random(size); end;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end;
9546c629289b util.id: New util for producing random identifiers of varying sizes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 }