reported by Koragg in https://bugs.unrealircd.org/view.php?id=5757. This changes the following in the code of who_global(): 1) We initialize all the 'marked' users to zero at the beginning, and remove the previously unmarking in the bottom loop that shouldn't have anything to do with it. Now there's "no way" to screw up initialization of marked users. 2) Check for marked users in the bottom loop. 3) Thanks to #1 and #2 we can now easily add simple logic like not skipping when client==acptr. 4) Similarly, we can remove checks for +i/-i in who_common_channel(), and as a bonus we will list common channel results altogether in the WHO result, rather than first +i on common and then at the very end the remaining -i (which may also be in common channels). All in all, the code is now more like how I would write it, rather than the original. It's now harder to screw things up if you change some visibility or searching logic here or there.
About UnrealIRCd
UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999. It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd with a market share of 42%. UnrealIRCd is a highly advanced IRCd with a strong focus on modularity, an advanced and highly configurable configuration file. Key features include SSL/TLS, cloaking, its advanced anti-flood and anti-spam systems, swear filtering and module support. We are also particularly proud on our extensive online documentation.
How to get started
Please consult our excellent online documentation at https://www.unrealircd.org/docs/ when setting up the IRCd!
Step 1: Installation
Windows
Simply download the UnrealIRCd Windows version from www.unrealircd.org
Alternatively you can compile UnrealIRCd for Windows yourself. However this is not straightforward and thus not recommended.
*BSD/Linux/macOS
Do the following steps under a separate account for running UnrealIRCd, do NOT compile or run as root.
Step 1: Compile the IRCd
- Run
./Config - Run
make - Run
make install - Now change to the directory where you installed UnrealIRCd, e.g.
cd /home/xxxx/unrealircd
Step 2: Configuration
Configuration files are stored in the conf/ folder by default (eg: /home/xxxx/unrealircd/conf)
Create a configuration file
If you are new, then you need to create your own configuration file: Copy conf/examples/example.conf to conf/ and call it unrealircd.conf. Then open it in an editor and carefully modify it using the documentation and FAQ as a guide (see below).
Step 3: Booting
Linux/*BSD/macOS
Run ./unrealircd start in the directory where you installed UnrealIRCd.
Windows
Start -> All Programs -> UnrealIRCd -> UnrealIRCd
Documentation & FAQ
You can find the documentation online at: https://www.unrealircd.org/docs/
We also have a good FAQ: https://www.unrealircd.org/docs/FAQ
Website, support, and other links
- https://www.unrealircd.org - Our main website
- https://forums.unrealircd.org - Support
- https://bugs.unrealircd.org - Bug tracker
- ircs://irc.unrealircd.org:6697/unreal-support - IRC support