View Issue Details

IDProjectCategoryView StatusLast Update
0004900unrealircdpublic2019-10-06 07:40
Reporteryumi Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Fixed in Version5.0.0-alpha4 
Summary0004900: Listen blocks should support using options { websockets; };
DescriptionSince we must open a new port for non-SSL web sockets (browsers block 6667) such as 8080 we should be able to restrict that port to web socket connections only using options { websockets; };.
TagsNo tags attached.
3rd party modules

Activities

syzop

2017-03-30 20:14

administrator   ~0019726

I understand what you are asking for but could you tell us why you would actually need it?
In what scenario would you need to forbid non-websocket users to a certain port?

Thanks.

argvx

2019-03-01 20:40

reporter   ~0020523

it could be very useful in case if there is some important notices on-connect, for example from other modules, then it should be possible to avoid disabling them for all ports, using websocket only for specific ports instead.

syzop

2019-03-02 09:48

administrator   ~0020524

Yeah, that would be useful.

When I added support for websocket I was "thinking big". Wanted to (eventually) have all UnrealIRCd's support this by default, have websockets enabled on all ports, this so web clients could connect from whatever webchat users wanted to use.

Unfortunately, reality was different. Websockets did not catch on much. Also implementations, like chrome, require disabling client certificates on ports, which rules out having websockets on all ports anyway.

So, yeah, I think we will migrate to the way "ssl" works and make it so "websocket" needs to be specified for a port explicitly.

syzop

2019-03-02 09:48

administrator   ~0020525

Last edited: 2019-03-02 09:50

Confirmed, but not a must-have target for next release. See previous comment.

Gottem

2019-03-02 14:20

developer   ~0020526

I actually already wrote a module for exactly this: https://gitgud.malvager.net/Wazakindjes/unrealircd_mods#m_websocket_restrict

Perhaps Syzop may incorporate it into base if he thinks it's useful enough. =]

syzop

2019-10-05 19:16

administrator   ~0020932

This is now done.

Still to do: inhibit show-connect-info only on listeners with this option

then I'll close

syzop

2019-10-06 07:40

administrator   ~0020934

Done in 5.0.0-alpha4. You now need to specify the type, eg:

listen {
        ip *;
        port 1234;
        options {
                websocket { type binary; }
        }
}

And...

commit d2a93c3a03abbbed65dca5aba961972ddcb73462 (HEAD -> unreal50, origin/unreal50)
Author: Bram Matthys <[email protected]>
Date: Sun Oct 6 07:37:55 2019 +0200

    websocket module will now only disable show-connect-info on the ports
    that have listen::options::websocket. It will no longer disable it
    on all ports.

Issue History

Date Modified Username Field Change
2017-03-17 19:58 yumi New Issue
2017-03-30 20:14 syzop Note Added: 0019726
2019-03-01 20:40 argvx Note Added: 0020523
2019-03-02 09:48 syzop Note Added: 0020524
2019-03-02 09:48 syzop Status new => confirmed
2019-03-02 09:48 syzop Note Added: 0020525
2019-03-02 09:50 syzop Note Edited: 0020525
2019-03-02 14:20 Gottem Note Added: 0020526
2019-10-05 19:16 syzop Note Added: 0020932
2019-10-06 07:40 syzop Assigned To => syzop
2019-10-06 07:40 syzop Status confirmed => resolved
2019-10-06 07:40 syzop Resolution open => fixed
2019-10-06 07:40 syzop Fixed in Version => 5.0.0-alpha4
2019-10-06 07:40 syzop Note Added: 0020934