Software /
code /
prosody
Annotate
util/bit53.lua @ 12493:e9ea5c88def0
mod_s2s: Don't bounce queued error stanzas (thanks Martin)
The check for the type attr was lost in 11765f0605ec leading to attempts
to create error replies for error stanzas, which util.stanza rejects.
Tested by sending
<message to="reject.badxmpp.eu" type="error"><error/></message>
which produced a traceback previously.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 07 May 2022 13:01:49 +0200 |
parent | 12365:af02b033bd7f |
child | 13449:9912baa541c0 |
rev | line source |
---|---|
10241
48f7cda4174d
util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 -- Only the operators needed by net.websocket.frames are provided at this point |
48f7cda4174d
util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 return { |
12365
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
3 band = function (a, b, ...) |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
4 local ret = a & b; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
5 if ... then |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
6 for i = 1, select("#", ...) do |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
7 ret = ret & (select(i, ...)); |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
8 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
9 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
10 return ret; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
11 end; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
12 bor = function (a, b, ...) |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
13 local ret = a | b; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
14 if ... then |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
15 for i = 1, select("#", ...) do |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
16 ret = ret | (select(i, ...)); |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
17 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
18 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
19 return ret; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
20 end; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
21 bxor = function (a, b, ...) |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
22 local ret = a ~ b; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
23 if ... then |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
24 for i = 1, select("#", ...) do |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
25 ret = ret ~ (select(i, ...)); |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
26 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
27 end |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
28 return ret; |
af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents:
12358
diff
changeset
|
29 end; |
12358
d77d8fba44ad
util.bit53: Add left- and right shift operations
Kim Alvefur <zash@zash.se>
parents:
10241
diff
changeset
|
30 rshift = function (a, n) return a >> n end; |
d77d8fba44ad
util.bit53: Add left- and right shift operations
Kim Alvefur <zash@zash.se>
parents:
10241
diff
changeset
|
31 lshift = function (a, n) return a << n end; |
10241
48f7cda4174d
util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 }; |
48f7cda4174d
util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |