View Issue Details

IDProjectCategoryView StatusLast Update
0004117unrealircdpublic2013-05-23 05:53
ReporterKindOne Assigned Tonenolod 
Status resolvedResolutionfixed 
Product Version3.2.9 
Fixed in Version3.4-alpha1 
Summary0004117: Channel mode - Prevent channel destruction when channel is emptied.
DescriptionCurrently when everyone leaves a channel, it is destroyed. This causes the ban list/invite list/channel creation date to also be destroyed.

I am suggesting creating a new cmode that is only settable by /oper's to prevent the channel from being destroyed when it's emptied.

This would also make the channel show up in /list with 0 users (pending the channel has the cmode and is not +s).

The only time this would fail is if *ALL* the servers on the network go offline.
TagsNo tags attached.
3rd party modules


child of 0004188 closed Unreal 3.4 alpha1 blockers 



2012-07-14 22:21

reporter   ~0017049



2012-07-22 08:08

reporter   ~0017050



2012-07-23 07:54

reporter   ~0017051

I will try to get this done this week. Going to use +P for it, since it's open and matches the mode on all the other ircds.


2013-05-11 20:46

reporter   ~0017545

Patch to implement. It's pretty trivial (yay first unreal patch!)


2013-05-11 20:46


4117_mode_P.diff (1,348 bytes)


2013-05-11 20:56



2013-05-12 07:20

reporter   ~0017547


this patch will not work because it breaks on systems with 32-bit longs.

look into e.g. extcmode and adding hooks for whether or not the channel should be destroyed.

then we could put it in a module.


2013-05-14 05:43

reporter   ~0017559

Here it is with just extcmode. It would of course be possible to add a hook, but unless there are other plausible reasons to not destroy a channel (services could just set +P if it wants this), the function pointer array might be more trouble than it's worth.


2013-05-14 05:44



2013-05-14 06:11

reporter   ~0017560

Syzop: input?


2013-05-16 21:23

administrator   ~0017580

Last edited: 2013-05-16 21:24

View 2 revisions

The idea with Unreal3.4 is that we move more and more modes into modules. That is, including all the things the mode does. Add hooks where necessary.

So especially if you code something new, it would be appreciated if you make it a separate module straight away :)

And if you have time, feel free to look into modularizing more channel modes.

Right now a lot is in the core and this makes UnrealIRCd inflexible at that point, which is a shame as a lot can be modularized easily. And the other half or so just requires more hooks / more effort.

EDIT: In case it wasn't clear why, say someone doesn't want to have that +P, he can choose not to load that module.


2013-05-20 21:54

reporter   ~0017643

Issue History

Date Modified Username Field Change
2012-07-13 03:57 KindOne New Issue
2012-07-14 22:21 katsklaw Note Added: 0017049
2012-07-22 08:08 Cronus Note Added: 0017050
2012-07-23 07:54 nenolod Note Added: 0017051
2013-05-11 20:46 falconkirtaran Note Added: 0017545
2013-05-11 20:46 falconkirtaran File Added: 4117_mode_P.diff
2013-05-11 20:56 falconkirtaran File Added: 4117_mode_P_with_help.diff
2013-05-12 07:20 nenolod Note Added: 0017547
2013-05-14 05:43 falconkirtaran Note Added: 0017559
2013-05-14 05:44 falconkirtaran File Added: 4117_mode_P_with_extmode.diff
2013-05-14 06:11 nenolod Note Added: 0017560
2013-05-16 21:23 syzop Note Added: 0017580
2013-05-16 21:24 syzop Note Edited: 0017580 View Revisions
2013-05-20 02:47 nenolod Relationship added child of 0004188
2013-05-20 21:54 nenolod Note Added: 0017643
2013-05-20 21:54 nenolod Status new => resolved
2013-05-20 21:54 nenolod Fixed in Version => 3.4-alpha1
2013-05-20 21:54 nenolod Resolution open => fixed
2013-05-20 21:54 nenolod Assigned To => nenolod