matrix-org / matrix-bifrost

General purpose bridging with a variety of backends including libpurple and xmpp.js
Apache License 2.0
163 stars 31 forks source link

XMPP User can't join Matrix Rooms with uppercase letter in the adress. #281

Open JokerGermany opened 3 years ago

JokerGermany commented 3 years ago

Describe the bug When the adress-name of a Matrix-Room contains uppercases, xmpp users can't join the Room.

To Reproduce Create a public Room in Matrix with a uppercase adress and try to join this room with a xmpp account.

You will see a error like this in the logs:

Aug-29 22:22:29.518 INFO ServiceHandler Handling iq request
Aug-29 22:22:29.518 INFO GatewayHandler Trying to discover #betterkingde:matrix.org
Aug-29 22:22:29.633 WARN bridge [-] GET https://aria-net.org/_matrix/client/r0/directory/room/%23betterkingde%3Amatrix.org (AS) HTTP 404 Error: "{\"errcode\":\"M_NOT_FOUND\",\"error\":\"Room alias #betterkingde:matrix.org not found\"}"
Aug-29 22:22:29.634 WARN GatewayHandler Room not found: M_NOT_FOUND: Room alias #betterkingde:matrix.org not found
    at parseErrorResponse (/app/node_modules/matrix-js-sdk/lib/http-api.js:827:13)
    at /app/node_modules/matrix-js-sdk/lib/http-api.js:782:17
    at /app/node_modules/matrix-js-sdk/lib/http-api.js:716:9
    at Request._callback (/app/node_modules/matrix-appservice-bridge/src/components/client-factory.ts:119:17)
    at Request.self.callback (/app/node_modules/request/request.js:185:22)
    at Request.emit (events.js:400:28)
    at Request.<anonymous> (/app/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:400:28)
    at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:519:28) {
  errcode: 'M_NOT_FOUND',
  data: {
    errcode: 'M_NOT_FOUND',
    error: 'Room alias #betterkingde:matrix.org not found'
  },
  httpStatus: 404
}

Source: https://matrix.to/#/!vKsKNErebdRaQvsUkQ:half-shot.uk/$1kTcPGTZmWlpEPxqtPcyAfqlkNg0_fag4lyGl7tRUsA?via=half-shot.uk&via=matrix.org&via=libera.chat

Expected behavior You should be able to join a room with uppercase letter. e.G. This could be archived by a "Escape"symbol which is written before the Uppercase letter.

Additional context A Workaround would be creating a local adress for the Matrix Room with only lower cases.