Software /
code /
prosody
Annotate
plugins/mod_muc_unique.lua @ 11056:0b0a42542456
util.jid: Fix special escaping of '\' per XEP-0106
From XEP-0106 §2. Requirements:
> in certain circumstances, the escaping character itself ("\") might
> also be escaped
Later in §4.2 Address Transformation Algorithm it is stated that the
backslash would only be escaped if it forms an escape sequence. Thus
'\foo' is unaltered but '\20' must be escaped into '\5c20'.
Thanks to lovetox and jonas’ for brining up.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 Aug 2020 18:44:02 +0200 |
parent | 8878:7c3e16fdaf1d |
child | 12977:74b9e05af71e |
rev | line source |
---|---|
6091
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
1 -- XEP-0307: Unique Room Names for Multi-User Chat |
6409
5fd6c739e9bf
plugins/mod_muc_unique: Fix undefined global access (thanks Lance)
Waqas Hussain <waqas20@gmail.com>
parents:
6091
diff
changeset
|
2 local st = require "util.stanza"; |
8878
7c3e16fdaf1d
mod_muc_unique: Use util.id for more compact identifiers
Kim Alvefur <zash@zash.se>
parents:
6409
diff
changeset
|
3 local unique_name = require "util.id".medium; |
6091
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
4 module:add_feature "http://jabber.org/protocol/muc#unique" |
6409
5fd6c739e9bf
plugins/mod_muc_unique: Fix undefined global access (thanks Lance)
Waqas Hussain <waqas20@gmail.com>
parents:
6091
diff
changeset
|
5 module:hook("iq-get/host/http://jabber.org/protocol/muc#unique:unique", function(event) |
6091
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
6 local origin, stanza = event.origin, event.stanza; |
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
7 origin.send(st.reply(stanza) |
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
8 :tag("unique", {xmlns = "http://jabber.org/protocol/muc#unique"}) |
8878
7c3e16fdaf1d
mod_muc_unique: Use util.id for more compact identifiers
Kim Alvefur <zash@zash.se>
parents:
6409
diff
changeset
|
9 :text(unique_name():lower()) |
6091
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
10 ); |
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
11 return true; |
3a1c39b31497
plugins/muc/mod_muc: Move Xep-0307 MUC unique to seperate file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
12 end,-1); |