View Issue Details

IDProjectCategoryView StatusLast Update
0005846unrealircdpublic2021-03-31 08:15
ReporterDjSxX Assigned Tosyzop  
PrioritylowSeverityfeatureReproducibilityN/A
Status closedResolutionno change required 
Product Version5.0.9 
Summary0005846: default classes for client/oper/server classes
DescriptionWhen no classes are specified, the IRCd falls back to the default class wich is to low for opers and servers on larger networks
This request should make some default client/oper/server classes to fall back to when no class is specified in their block

For example:

oper bobsmith {
    mask *@*;
    password "test";
    operclass netadmin;
    swhois "is a Network Administrator";
    vhost netadmin.example.org;
}

This oper will fall back to the default class:
* |stats| Y default 120 0 100 8000 8000
Wich could be very low, where the class::oper is set to:
 * |stats| Y opers 90 15 50 1048576 8000

In my opinion, if there are hard coded classes to fall back on for the different blocks.
Could save us a lot of time.
TagsNo tags attached.
3rd party modules

Activities

Lord255

2021-03-30 23:40

reporter   ~0021933

removed class opers; from my block, rehash gives error:


[2021-03-30 23:34:02] /../conf/unrealircd.conf Rehashing
-
[2021-03-30 23:34:02] -irc...- *** Loading IRCd configuration..
[2021-03-30 23:34:02] -irc...- *** error: /../conf/operblock.conf:37: oper::class is missing
[2021-03-30 23:34:02] -irc...- *** error: 1 errors encountered
[2021-03-30 23:34:02] -irc...- *** error: IRCd configuration failed to pass testing
-

iam on v5.0.9.1 though, not 5.0.9, but did not see such change.

syzop

2021-03-31 08:06

administrator   ~0021934

Last edited: 2021-03-31 08:11

I just checked, the check for missing oper::class is there for at least 17 years
https://github.com/unrealircd/unrealircd/blame/unreal50/src/conf.c#L4229-L4234
(and the same is true for link::class)

syzop

2021-03-31 08:15

administrator   ~0021935

I understand the suggestion but I think it's OK the way it is. Let me explain:
* Right now we don't accept a block without oper::class or link::class. So it's not like it would automatically use the clients class (which does happen if you ommit allow::class)
* If you make it use some kind of default then that default is not very visible in the config. You don't immediately spot the limits. So that is a downside.
* Right now you are forced to point it to an existing "real" class, which must be in the config.
* And, we do ship with good defaults in the example conf I think

Thanks for the suggestion though :)

Issue History

Date Modified Username Field Change
2021-03-30 23:34 DjSxX New Issue
2021-03-30 23:40 Lord255 Note Added: 0021933
2021-03-31 08:06 syzop Note Added: 0021934
2021-03-31 08:11 syzop Note Edited: 0021934
2021-03-31 08:15 syzop Assigned To => syzop
2021-03-31 08:15 syzop Status new => closed
2021-03-31 08:15 syzop Resolution open => no change required
2021-03-31 08:15 syzop Note Added: 0021935