<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2026-03-07 12:37:29]-->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><docs>https://bugs.unrealircd.org/</docs><link>https://bugs.unrealircd.org/</link><description><![CDATA[UnrealIRCd Bug Tracker - Issues]]></description><title>UnrealIRCd Bug Tracker - Issues</title><image><title>UnrealIRCd Bug Tracker - Issues</title><url>https://bugs.unrealircd.org/</url><link>https://bugs.unrealircd.org/</link><description><![CDATA[UnrealIRCd Bug Tracker - Issues]]></description></image><language>en</language><category>All Projects</category><ttl>10</ttl><dc:language>en</dc:language><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><item><title>0006144: Make zline, gline, kline, shun create an ID.</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6144</link><description><![CDATA[Will be nice if this can be done directly from the IRCD and not only with operserv.&lt;br /&gt;
/gline &lt;a href=&quot;mailto:*@etc&quot;&gt;*@etc&lt;/a&gt; - whatever reason -&gt; this part be automatic ID: XZ9YCRP1E8.&lt;br /&gt;
&lt;br /&gt;
Will make my life easier.&lt;br /&gt;
&lt;br /&gt;
thanks.]]></description><category>ircd</category><pubDate>Fri, 06 Mar 2026 08:26:29 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6144</guid><comments>https://bugs.unrealircd.org/view.php?id=6144#bugnotes</comments></item><item><title>0006612: Implement extbans support in the SILENCE list</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6612</link><description><![CDATA[The feature request is to extend the SILENCE list to supporting extbans as well, in the same fashion as the channel b/E/I lists. Currently the SILENCE list only supports the format &lt;a href=&quot;mailto:nick!user@host&quot;&gt;nick!user@host&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It could be convenient for the user to be able to use extbans in the SILENCE list also, such as: ~account, ~asn, ~country, ~realname, ~security-group, ~certfp and ~text. Maybe ~time also in case it is possible to manage temporary items in the SILENCE list.&lt;br /&gt;
The other extbans might not be relevant for the SILENCE list.&lt;br /&gt;
&lt;br /&gt;
This would also opens the possibility of remotely managing the SILENCE list through the services and the use of SVSSILENCE.&lt;br /&gt;
&lt;br /&gt;
Once implemented the usage could be similar (and a bit different due to the SILENCE syntax) to the channels: SILENCE +~realname:qwerty, SILENCE -~account:some-account&lt;br /&gt;
&lt;br /&gt;
SILENCE list could look like:&lt;br /&gt;
-&gt; server. SILENCE&lt;br /&gt;
&lt;- :server. 271 Nick &lt;a href=&quot;mailto:*!user4@host4&quot;&gt;*!user4@host4&lt;/a&gt;&lt;br /&gt;
&lt;- :server. 271 Nick nick3!*@*&lt;br /&gt;
&lt;- :server. 271 Nick &lt;a href=&quot;mailto:nick2!user2@host2&quot;&gt;nick2!user2@host2&lt;/a&gt;&lt;br /&gt;
&lt;- :server. 271 Nick ~asn:65536&lt;br /&gt;
&lt;- :server. 271 Nick ~security-group:some-insecure-group&lt;br /&gt;
&lt;- :server. 271 Nick ~text:a_spammy_spam&lt;br /&gt;
&lt;- :server. 272 Nick :End of Silence List]]></description><category>ircd</category><pubDate>Sat, 14 Feb 2026 20:05:16 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6612</guid><comments>https://bugs.unrealircd.org/view.php?id=6612#bugnotes</comments></item><item><title>0006611: RPC_CALL_ERROR - Every refresh i have a error to logs.</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6611</link><description><![CDATA[Hello all, &lt;br /&gt;
&lt;br /&gt;
i have a error with panel, when i click to Servers or any button i see a error to logs.&lt;br /&gt;
&lt;br /&gt;
timestamp:&quot;2026-02-07T10:43:20.404Z&quot;&lt;br /&gt;
level:&quot;info&quot;&lt;br /&gt;
subsystem:&quot;rpc&quot;&lt;br /&gt;
event_id:&quot;RPC_CALL_ERROR&quot;&lt;br /&gt;
log_source:&quot;chati.shprehu.net&quot;&lt;br /&gt;
msg:&quot;[rpc] Client RPC:adminpanel: RPC call server.module_list&quot;&lt;br /&gt;
client:Object&lt;br /&gt;
name:&quot;RPC:adminpanel&quot;&lt;br /&gt;
id:&quot;2424A7VUA&quot;&lt;br /&gt;
hostname:&quot;127.0.0.1&quot;&lt;br /&gt;
ip:&quot;127.0.0.1&quot;&lt;br /&gt;
details:&quot;RPC:&lt;a href=&quot;mailto:adminpanel@127.0.0.1&quot;&gt;adminpanel@127.0.0.1&lt;/a&gt;&quot;&lt;br /&gt;
server_port:8600&lt;br /&gt;
client_port:42972&lt;br /&gt;
connected_since:&quot;2026-02-07T10:43:19.000Z&quot;&lt;br /&gt;
idle_since:&quot;2026-02-07T10:43:19.000Z&quot;&lt;br /&gt;
method:&quot;server.module_list&quot;]]></description><category>json-rpc</category><pubDate>Sat, 07 Feb 2026 11:49:07 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6611</guid><comments>https://bugs.unrealircd.org/view.php?id=6611#bugnotes</comments></item><item><title>0006610: Move "make pem" to its own "./unrealircd" subcommand</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6610</link><description><![CDATA[Currently if we want to generate a new certificate/key, we nee to run the &quot;make pem&quot; command.&lt;br /&gt;
&lt;br /&gt;
While I expected the &quot;make install&quot; command to replace the older certificate/key, it doesn't, which is by design to avoid some rare issues, like replacing certs on test instances, debugging, etc.&lt;br /&gt;
&lt;br /&gt;
After discussing it on IRC, it was decided that it should be better to move it to its own &quot;./unrealircd&quot; subcommand and get rid of the &quot;make pem&quot;, while being able to generate them from &quot;./Config&quot; on initial setup.&lt;br /&gt;
&lt;br /&gt;
The command can probably be called &quot;./unrealircd makecert&quot; and throw a warning to the user, like: &quot;This command will replace your existing server certificate and key. Do you wish to proceed? [Y|N]&quot;]]></description><category>ircd</category><pubDate>Sun, 01 Feb 2026 19:38:02 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6610</guid><comments>https://bugs.unrealircd.org/view.php?id=6610#bugnotes</comments></item><item><title>0005849: WHOISASN like on Inspircd - Very useful</title><author></author><link>https://bugs.unrealircd.org/view.php?id=5849</link><description><![CDATA[Would it be possible to add ASN to whois in the future?&lt;br /&gt;
It would be very useful to me&lt;br /&gt;
&lt;br /&gt;
On Inspircd it looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		if (asn)&lt;br /&gt;
			whois.SendLine(RPL_WHOISASN, asn, &quot;is connecting from AS&quot; + ConvToStr(asn));&lt;br /&gt;
		else&lt;br /&gt;
			whois.SendLine(RPL_WHOISASN, &quot;*&quot;, &quot;is connecting from an unknown autonomous system&quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/inspircd/inspircd-contrib/blob/master/3.0/m_asn.cpp&quot; rel=&quot;noopener&quot;&gt;https://github.com/inspircd/inspircd-contrib/blob/master/3.0/m_asn.cpp&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Where is it possible to build in module like showwebirc.c with whoisasn ?]]></description><category>ircd</category><pubDate>Fri, 30 Jan 2026 16:27:46 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=5849</guid><comments>https://bugs.unrealircd.org/view.php?id=5849#bugnotes</comments></item><item><title>0005278: Add extban to ban users banned in another channel</title><author></author><link>https://bugs.unrealircd.org/view.php?id=5278</link><description><![CDATA[We currently have the extban to ban users that are in a channel, with &quot;+b ~c:#channelname&quot;.&lt;br /&gt;
&lt;br /&gt;
Would be nice if we could have an extban to ban users banned in another channel (so we can keep some kind of banlist sync across channels registered by the same person.&lt;br /&gt;
&lt;br /&gt;
I was thinking in something like &quot;+b ~b:#channelname&quot; or &quot;+b ~C:#channelname&quot;.&lt;br /&gt;
&lt;br /&gt;
The latter goes in hand with the extban &quot;~c&quot; as they're kinda related.&lt;br /&gt;
&lt;br /&gt;
Thoughts?]]></description><category>ircd</category><pubDate>Fri, 30 Jan 2026 16:00:24 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=5278</guid><comments>https://bugs.unrealircd.org/view.php?id=5278#bugnotes</comments></item><item><title>0006607: Documentation update</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6607</link><description><![CDATA[Hello team,&lt;br /&gt;
&lt;br /&gt;
in the documentation of the connthrottle.set, you've said that we should use action = on in the parameter.&lt;br /&gt;
while it works well when you provide : enabled : true or false]]></description><category>documentation</category><pubDate>Fri, 30 Jan 2026 07:53:21 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6607</guid><comments>https://bugs.unrealircd.org/view.php?id=6607#bugnotes</comments></item><item><title>0006608: connthrottle.set not working</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6608</link><description><![CDATA[Hello,&lt;br /&gt;
when you set the connthrottle to false and you call the status endpoint are we expecting to have the enabled field to false ?]]></description><category>json-rpc</category><pubDate>Fri, 30 Jan 2026 07:41:17 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6608</guid><comments>https://bugs.unrealircd.org/view.php?id=6608#bugnotes</comments></item><item><title>0006578: Failed unrealircd module install exits with code 0</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6578</link><description><![CDATA[The exit code of &quot;./unrealircd module install&quot; is 0 (Success) even if the command has failed]]></description><category>installing</category><pubDate>Fri, 23 Jan 2026 13:16:52 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6578</guid><comments>https://bugs.unrealircd.org/view.php?id=6578#bugnotes</comments></item><item><title>0006602: Invalid channel user limits are normalized to 1</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6602</link><description><![CDATA[When sending &quot;MODE #chan l :abc&quot; or &quot;MODE #chan l :-1&quot;, Unreal converts it to &quot;MODE #chan l :1&quot;: &lt;a href=&quot;https://github.com/unrealircd/unrealircd/blob/1c461db46de2b0d7d0c5b0b1f4e71439170f87e0/src/modules/chanmodes/limit.c#L191-L199&quot; rel=&quot;noopener&quot;&gt;https://github.com/unrealircd/unrealircd/blob/1c461db46de2b0d7d0c5b0b1f4e71439170f87e0/src/modules/chanmodes/limit.c#L191-L199&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This is inconsistent with other IRCds: Charybdis/Solanum, Ergo, Hybrid/Plexus4, irc2, ircu2/Nefarious ignore the MODE command entirely, while InspIRCd and ngIRCd send ERR_INVALIDMODEPARAM then ignore it too.]]></description><category>ircd</category><pubDate>Fri, 23 Jan 2026 08:46:32 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6602</guid><comments>https://bugs.unrealircd.org/view.php?id=6602#bugnotes</comments></item><item><title>0006579: usermodes/privdeaf</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6579</link><description><![CDATA[It seems logical that usermodes/privdeaf should ignore TAGMSG otherwise users receive the &quot;User does not accept private messages&quot; notice multiple times before they've even sent the message that should trigger it.]]></description><category></category><pubDate>Fri, 23 Jan 2026 08:28:07 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6579</guid><comments>https://bugs.unrealircd.org/view.php?id=6579#bugnotes</comments></item><item><title>0006606: Regression: services kill users who use post-registration SASL</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6606</link><description><![CDATA[1. User &quot;bar&quot; connects (without authenticating), gets RPL_WELCOME, MOTD, etc.&lt;br /&gt;
2. User &quot;bar&quot; SASLs, gets back &quot;My.Little.Server 903 bar :SASL authentication successful&quot;&lt;br /&gt;
3. User &quot;bar&quot; gets RPL_WELCOME and MOTD **again**&lt;br /&gt;
4. User &quot;bar&quot; gets killed: :My.Little.Services KILL bar :My.Little.Services (Ghost detected via nick collision (new))&lt;br /&gt;
&lt;br /&gt;
This happens with both Atheme and Anope, since &lt;a href=&quot;https://github.com/unrealircd/unrealircd/commit/0cf0c0faa27ccfc4308834cb98ae92dcc0c31b64&quot; rel=&quot;noopener&quot;&gt;https://github.com/unrealircd/unrealircd/commit/0cf0c0faa27ccfc4308834cb98ae92dcc0c31b64&lt;/a&gt;]]></description><category>ircd</category><pubDate>Fri, 23 Jan 2026 07:48:55 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6606</guid><comments>https://bugs.unrealircd.org/view.php?id=6606#bugnotes</comments></item><item><title>0006591: OOM kill because of low memory during installation</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6591</link><description><![CDATA[Upgrade fails at this stage:&lt;br /&gt;
&lt;br /&gt;
  CC       src/libpcre2_8_la-pcre2_match.lo&lt;br /&gt;
gcc: internal compiler error: Killed (program cc1)&lt;br /&gt;
Please submit a full bug report,&lt;br /&gt;
with preprocessed source if appropriate.&lt;br /&gt;
See &lt;&lt;a href=&quot;file:///usr/share/doc/gcc-6/README.Bugs&gt;&quot; rel=&quot;noopener&quot;&gt;file:///usr/share/doc/gcc-6/README.Bugs&gt;&lt;/a&gt; for instructions.&lt;br /&gt;
Makefile:2721: recipe for target 'src/libpcre2_8_la-pcre2_match.lo' failed&lt;br /&gt;
make[1]: *** [src/libpcre2_8_la-pcre2_match.lo] Error 1&lt;br /&gt;
make[1]: Leaving directory '/home/test/unrealircd-6/extras/pcre2-10.45'&lt;br /&gt;
Makefile:1581: recipe for target 'all' failed&lt;br /&gt;
make: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
dmesg tells me it's because of low memory:&lt;br /&gt;
&lt;br /&gt;
and I have this error in dmesg: ﻿Out of memory in UB 1905: OOM killed process 32385 (cc1) score 0 vm:173224kB, rss:128360kB, swap:0kB]]></description><category>ircd</category><pubDate>Mon, 19 Jan 2026 10:33:38 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6591</guid><comments>https://bugs.unrealircd.org/view.php?id=6591#bugnotes</comments></item><item><title>0006604: ~msgbypass:censor does not work on ~text:censor bans</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6604</link><description><![CDATA[A ~msgbypass:censor exemption does not work on ~text:censor bans, as it may be expected.]]></description><category>ircd</category><pubDate>Thu, 15 Jan 2026 08:21:43 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6604</guid><comments>https://bugs.unrealircd.org/view.php?id=6604#bugnotes</comments></item><item><title>0006603: Granular command control for SHUN (Stealth/Shadow-Shun support)</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6603</link><description><![CDATA[Hi,&lt;br /&gt;
&lt;br /&gt;
I’m reaching out to request an enhancement to the current SHUN implementation. After some discussion in #unreal-support and comparing notes with other IRCds, it seems that UnrealIRCd is currently missing a critical tactical feature for modern network moderation: Shadow &quot;Shunning&quot;.&lt;br /&gt;
The Problem: &quot;The Ban-Evader Feedback Loop&quot; - Currently, an UnrealIRCd shun is very &quot;loud.&quot; If a shunned user tries to JOIN a channel, the command is blocked.&lt;br /&gt;
&lt;br /&gt;
For persistent ban-jumpers and trolls, this is an immediate signal that their current identity (IP/Fingerprint) is burned. Their reaction is predictable:&lt;br /&gt;
&lt;br /&gt;
- They notice they can't join.&lt;br /&gt;
- They immediately disconnect.&lt;br /&gt;
- They change their IP (VPN/Proxy/Tor) and return within seconds.&lt;br /&gt;
- The current system essentially &quot;trains&quot; the abuser to rotate their IP faster.&lt;br /&gt;
&lt;br /&gt;
The most effective way to handle these users is to let them think their connection is working, while silently neutralizing their impact. We want them to JOIN channels successfully (so they stay on their current IP) and PART/QUIT normally and type messages that are silently dropped (the &quot;void&quot;).&lt;br /&gt;
&lt;br /&gt;
As long as the user believes they are still &quot;in,&quot; they won't switch their IP. This keeps them contained and makes the moderator's life much easier.&lt;br /&gt;
This isn't a new concept; InspIRCd has had this solved for years via their shun module configuration. They use an enabledcommands directive:&lt;br /&gt;
&lt;br /&gt;
enabledcommands=&quot;ADMIN OPER PING PONG QUIT JOIN PART&quot;&lt;br /&gt;
notifyuser=&quot;no&quot;&lt;br /&gt;
&lt;br /&gt;
This allows admins to decide exactly how &quot;invisible&quot; the shun should be.&lt;br /&gt;
&lt;br /&gt;
It would be ideal to have a similar granular control in the set block or a specific shun block:&lt;br /&gt;
&lt;br /&gt;
set {&lt;br /&gt;
    options {&lt;br /&gt;
        shun-allowed-commands { &quot;JOIN&quot;; &quot;PART&quot;; &quot;QUIT&quot;; &quot;PING&quot;; &quot;PONG&quot;; };&lt;br /&gt;
        shun-notify-user no;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Addressing Concerns (because it was mentioned on #unreal): During the discussion, it was mentioned that allowing JOIN could lead to join-flooding. However, UnrealIRCd already has excellent anti-flood and rate-limiting modules. Join-flooding should be (and already is) handled by those layers, rather than being a hardcoded side-effect of a shun. And, of course, backward Compatibility: The default could remain as it is now, so no existing setups break.&lt;br /&gt;
&lt;br /&gt;
By making shuns configurable, we gain a powerful psychological tool against trolls. Instead of a &quot;Hard Wall&quot; that triggers an IP-switch, we get a &quot;Silent Void&quot; that keeps the abuser busy and localized.]]></description><category>ircd</category><pubDate>Sun, 11 Jan 2026 18:34:42 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6603</guid><comments>https://bugs.unrealircd.org/view.php?id=6603#bugnotes</comments></item><item><title>0006572: Ability to cloak a host/IP via oper command and/or external API/tool</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6572</link><description><![CDATA[I would like to request a feature in UnrealIRCd that allows opers (or a utility script/tool) to generate a cloaked hostname from a given IP address or hostname, without the user being connected. This would use the same cloaking algorithm and network-specific keys currently used by the IRCd.&lt;br /&gt;
&lt;br /&gt;
Why this is useful?&lt;br /&gt;
In some scenarios, services or bots only have access to a user’s real IP/host (for example, web-based things, forms, or external integrations). For privacy reasons, we don’t want to expose raw IPs/hosts to channel operators or users..&lt;br /&gt;
Instead, it would be extremely useful to convert that IP/host into the cloaked hostname UnrealIRCd would generate on the network.&lt;br /&gt;
&lt;br /&gt;
This allows channel staff to:&lt;br /&gt;
&lt;br /&gt;
Apply bans using cloaked hosts instead of exposing raw IPs.&lt;br /&gt;
Correlate external actions (like web actions) with connected users on IRC in a privacy-preserving way.&lt;br /&gt;
Keep consistency: bans or matching rules would work the same way as if they were set against cloaked hosts in the IRC session.&lt;br /&gt;
Many other use cases where external tools have a real host/IP and the chat has &quot;another version&quot;&lt;br /&gt;
&lt;br /&gt;
Requested implementation ideas:&lt;br /&gt;
&lt;br /&gt;
- An oper-only command such as: /GETCLOAK &lt;ip/hostname&gt; which outputs the cloaked hostname as Unreal would display it.&lt;br /&gt;
- An external API/utility/library function (maybe in PHP, C, or via JSON-RPC to the IRCd) that can be used by services/web interfaces. This way, developers can generate cloaks on demand without duplicating Unreal’s internal cloaking code.&lt;br /&gt;
&lt;br /&gt;
Having this functionality externalized (e.g., bash via unrealircd cloak &lt;ip/host&gt;) would also make sense.&lt;br /&gt;
&lt;br /&gt;
Ofcourse, the exact cloaking algorithm and keys in use by the network should be applied, so the result matches what IRC clients see.]]></description><category>ircd</category><pubDate>Mon, 05 Jan 2026 21:34:24 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6572</guid><comments>https://bugs.unrealircd.org/view.php?id=6572#bugnotes</comments></item><item><title>0006511: accidental permanent gline even though default-bantime is 7d</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6511</link><description><![CDATA[I noticed that a colleague from IRCop sometimes bans users with the following command:&lt;br /&gt;
/gline &lt;a href=&quot;mailto:*@2a02&quot;&gt;*@2a02&lt;/a&gt;:1808:* Dehors !&lt;br /&gt;
but forgets to add the &quot;:&quot; before the reason. As a result, the ban duration is set to 'permanent.' He doesn’t correct it. Is there a way to block this, prevent the permanent bans, or make the permanent ban expire after 7 days? Or perhaps in UnrealIRCd, is there a place where I can change the default '0' or 'permanent' to something like '7d' ?]]></description><category>ircd</category><pubDate>Wed, 17 Dec 2025 17:30:56 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6511</guid><comments>https://bugs.unrealircd.org/view.php?id=6511#bugnotes</comments></item><item><title>0006598: First message of a labeled-response BATCH ends with \r\r\n instead of \r\n</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6598</link><description><![CDATA[Hi,&lt;br /&gt;
It appears that the first message of a labeled-response BATCH ends with 2 carriage returns instead of 1.&lt;br /&gt;
Here are some examples taken from the server, with \r shown explicitly.&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
@label=4 :irc4.unrealircd.org BATCH +nrysFdQ9a22iJNd0Yz7Wz4 labeled-response\r&lt;br /&gt;
@batch=nrysFdQ9a22iJNd0Yz7Wz4 :irc4.unrealircd.org BATCH +9wfdGGp2wQJMuf1ng5nQMM draft/chathistory-targets\r\r&lt;br /&gt;
@batch=nrysFdQ9a22iJNd0Yz7Wz4 :irc4.unrealircd.org BATCH -9wfdGGp2wQJMuf1ng5nQMM\r&lt;br /&gt;
:irc4.unrealircd.org BATCH -nrysFdQ9a22iJNd0Yz7Wz4\r&lt;br /&gt;
@label=5 :irc4.unrealircd.org BATCH +DeeYaIrhp7OBSxiWm1XTj2 labeled-response\r&lt;br /&gt;
@batch=DeeYaIrhp7OBSxiWm1XTj2;msgid=EN36ZrCZLBLjdzDHawFdAq-BiS7YM4lYJ3lH3Hk9v/W/w;time=2025-12-04T11:54:00.703Z :&lt;a href=&quot;mailto:skibixonx!~skibixonx@Clk-A8912720.ipv6.abo.wanadoo.fr&quot;&gt;skibixonx!~skibixonx@Clk-A8912720.ipv6.abo.wanadoo.fr&lt;/a&gt; JOIN :#fooxx\r\r&lt;br /&gt;
@batch=DeeYaIrhp7OBSxiWm1XTj2;msgid=EN36ZrCZLBLjdzDHawFdAq-ntNfEbBj/+TzhiL4f5IWbA;time=2025-12-04T11:54:00.703Z :irc4.unrealircd.org MODE #fooxx +nt \r&lt;br /&gt;
@batch=DeeYaIrhp7OBSxiWm1XTj2 :irc4.unrealircd.org 353 skibixonx = #fooxx :@skibixonx\r&lt;br /&gt;
@batch=DeeYaIrhp7OBSxiWm1XTj2 :irc4.unrealircd.org 366 skibixonx #fooxx :End of /NAMES list.\r&lt;br /&gt;
:irc4.unrealircd.org BATCH -DeeYaIrhp7OBSxiWm1XTj2\r&lt;br /&gt;
@label=6 :irc4.unrealircd.org BATCH +fUGxsVL7HMEswEfLcsNiee labeled-response\r&lt;br /&gt;
@batch=fUGxsVL7HMEswEfLcsNiee :irc4.unrealircd.org 354 skibixonx ~skibixonx Clk-A8912720.ipv6.abo.wanadoo.fr skibixonx Hs@\r\r&lt;br /&gt;
@batch=fUGxsVL7HMEswEfLcsNiee :irc4.unrealircd.org 315 skibixonx #fooxx :End of /WHO list.\r&lt;br /&gt;
:irc4.unrealircd.org BATCH -fUGxsVL7HMEswEfLcsNiee\r&lt;br /&gt;
@label=7 :irc4.unrealircd.org BATCH +wGxT7Ndt10FRrmYbJAYf3I labeled-response\r&lt;br /&gt;
@batch=wGxT7Ndt10FRrmYbJAYf3I :irc4.unrealircd.org BATCH +gvIymYLCYrqRyezi6plJij chathistory #fooxx\r\r&lt;br /&gt;
@batch=wGxT7Ndt10FRrmYbJAYf3I :irc4.unrealircd.org BATCH -gvIymYLCYrqRyezi6plJij\r&lt;br /&gt;
:irc4.unrealircd.org BATCH -wGxT7Ndt10FRrmYbJAYf3I\r&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
You can see the \r\r at the end of those messages. In the examples this happened both on inner chathistory batches, and on a plain WHO response.]]></description><category>ircd</category><pubDate>Sun, 07 Dec 2025 08:54:51 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6598</guid><comments>https://bugs.unrealircd.org/view.php?id=6598#bugnotes</comments></item><item><title>0006227: JSON-RPC : sent a message to a bot to give it an order</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6227</link><description><![CDATA[Hi&lt;br /&gt;
&lt;a href=&quot;https://www.unrealircd.org/docs/JSON-RPC:Technical_documentation#JSON-RPC_Methods&quot; rel=&quot;noopener&quot;&gt;https://www.unrealircd.org/docs/JSON-RPC:Technical_documentation#JSON-RPC_Methods&lt;/a&gt;&lt;br /&gt;
Would it be possible to send a message to a bot via the JSON-RPC API?&lt;br /&gt;
&lt;br /&gt;
Here is a useful example:&lt;br /&gt;
1) For example, a user sends a PHP request (SQL &amp; INSERT) as a service to report abuse&lt;br /&gt;
2) Me (or us admins) deal with abuse (on a PHP page)&lt;br /&gt;
3) But now I would like when the INSERT is done (from step 1) as soon as the insert is successful this php page would send a PRIVMSG to a NodeJS robot such as: PRIVMSG Sysop ABUS from:&lt;Account1&gt; for:&lt;Account2&gt; id:&lt;id_inserted&gt;&lt;br /&gt;
The robot would then send a private message in real time to the specific ircops an alert in private message telling them that an abuse has just been posted between FROM and TO and with the url containing the id directly and here is the request for abuse would be dealt with directly.&lt;br /&gt;
&lt;br /&gt;
You have to be honest but I don't receive any notification there currently and I don't immediately think of going to the php page to moderate abuse. If only there was something that alerts in real time like api-rpc that would be great.&lt;br /&gt;
&lt;br /&gt;
There are only about 7 to 10 abuse requests per day (the abuse button is very discreet so that it is only used by people who have a good level of intelligence so as not to be inundated.&lt;br /&gt;
&lt;br /&gt;
If this command cannot be created on json-rpc There would be another quick trick to implement, here is an example:&lt;br /&gt;
1) Create a sql table named: &quot;irc_commands_to_execute&quot; and I put 2 columns id|cmd&lt;br /&gt;
2) The nodejs robot (ircop) it recovers via a select and once a minute everything that is there in this sql table and it directly sends the command received&lt;br /&gt;
3) and in php I just put the message hard in sql, example: privmsg Sysop ABUS from:&lt;Account1&gt; for:&lt;Account2&gt; id:&lt;id_insered&gt;&lt;br /&gt;
or directly the processing of the &quot;ABUS&quot; command to send the message directly to the ircops concerned with the url.&lt;br /&gt;
&lt;br /&gt;
Salutations]]></description><category>ircd</category><pubDate>Fri, 28 Nov 2025 18:00:10 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6227</guid><comments>https://bugs.unrealircd.org/view.php?id=6227#bugnotes</comments></item><item><title>0006406: RPL_LISTSTART terminated with crcrlf</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6406</link><description><![CDATA[After sending a LIST command the server responds with a RPL_LISTSTART message that is terminated with an extra carriage return (i.e. crcrlf instead of crlf).  The rest of the messages sent by the server (the ones with the important data) are terminated with the expected crlf.]]></description><category>ircd</category><pubDate>Thu, 20 Nov 2025 11:29:24 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6406</guid><comments>https://bugs.unrealircd.org/view.php?id=6406#bugnotes</comments></item><item><title>0006592: IRCD warning about the wrong TLS cert expiring, despite what is configured in use</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6592</link><description><![CDATA[Since upgrading my servers to 6.2.1, they have been warning at startup and on occasion that the configured cert has expired years ago, when it has not.&lt;br /&gt;
&lt;br /&gt;
The occasional warning, from my weechat server buffer:&lt;br /&gt;
&lt;br /&gt;
11:48:17 -- [hostname]: tls.TLS_CERT_EXPIRING [warn] Warning: TLS certificate '/etc/unrealircd/fullchain.pem': certificate expired 492d2h54m19s ago&lt;br /&gt;
&lt;br /&gt;
Ditto if I unrealircdctl rehash:&lt;br /&gt;
&lt;br /&gt;
[warn] Warning: TLS certificate '/etc/unrealircd/fullchain.pem': certificate expired 492d3h9m19s ago&lt;br /&gt;
&lt;br /&gt;
When I connect to said server, the client connection is fine:&lt;br /&gt;
&lt;br /&gt;
14:56:19 -- gnutls: receiving 2 certificates&lt;br /&gt;
14:56:19 --  - certificate[1] info:&lt;br /&gt;
14:56:19 --    - subject `CN=*.[domainname]', blah blah blah, activated `2025-11-11 18:10:19 UTC', expires `2026-02-09 18:10:18 UTC'&lt;br /&gt;
14:56:19 --  - certificate[2] info:&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
And if I check the cert directly:&lt;br /&gt;
&lt;br /&gt;
bss@[hostname] ~ % sudo openssl x509 -enddate -noout -in /etc/unrealircd/fullchain.pem&lt;br /&gt;
notAfter=Feb  9 18:10:18 2026 GMT&lt;br /&gt;
&lt;br /&gt;
But while checking, I realized I had the default certs as cruft in my config directory, and what do you know:&lt;br /&gt;
&lt;br /&gt;
bss@[hostname] ~ % sudo openssl x509 -enddate -noout -in /etc/unrealircd/tls/server.cert.pem&lt;br /&gt;
notAfter=Jul 10 14:53:58 2024 GMT&lt;br /&gt;
&lt;br /&gt;
bss@[hostname] ~ % python&lt;br /&gt;
Python 3.13.5 (main, Sep 21 2025, 23:32:29) [GCC 14.3.1 20250801] on linux&lt;br /&gt;
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.&lt;br /&gt;
&gt;&gt;&gt; import datetime&lt;br /&gt;
&gt;&gt;&gt; datetime.datetime.now() - datetime.timedelta(days=492)&lt;br /&gt;
datetime.datetime(2024, 7, 10, 12, 15, 59, 263964)&lt;br /&gt;
&gt;&gt;&gt;&lt;br /&gt;
&lt;br /&gt;
bss@[hostname] ~ % sudo grep server.cert.pem /etc/unrealircd/unrealircd.conf&lt;br /&gt;
bss@[hostname] ~ % &lt;br /&gt;
&lt;br /&gt;
Replacing server.cert.{pem,key} with symlinks to the files in /etc/unrealircd/ removed the error. It seems as if the expiry checker was picking up the &quot;default&quot; files somehow, which leads me to my next question --- at first I just nuked the server.cert.{pem,key} files in the directory, but then rehash complained that the default certificate was missing. Did I miss a step somewhere, or is there no way to point the config away from those files?]]></description><category>ircd</category><pubDate>Sat, 15 Nov 2025 17:43:24 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6592</guid><comments>https://bugs.unrealircd.org/view.php?id=6592#bugnotes</comments></item><item><title>0006575: Feature Request: WebHooks</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6575</link><description><![CDATA[It would be really useful to have webhooks in UnrealIRCd. Right now SSE is the only option, but that means keeping a persistent connection open all the time. For some use cases that's fine, but requires user attendance for the app to receive, or some other persistent connection solution. Webhooks are a feasible workaround, and will be useful for future development of the webpanel.]]></description><category>ircd</category><pubDate>Wed, 12 Nov 2025 11:58:52 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6575</guid><comments>https://bugs.unrealircd.org/view.php?id=6575#bugnotes</comments></item><item><title>0006590: security group rules priority</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6590</link><description><![CDATA[when you're in more than one security group with maxchannelsperuser, it only gives you the minimum number of channels in that group&lt;br /&gt;
&lt;br /&gt;
so if you're in known-users registered-users and high-reputation, and:&lt;br /&gt;
&lt;pre&gt;set known-users {
    max-channels-per-user 10;
}

set high-reputation {
    max-channels-per-user 15;
}

set registered-users {
    max-channels-per-user 20;
}&lt;/pre&gt;&lt;br /&gt;
how do you select which group's rules takes precedence? if you have earned/been given more max channels, and qualify for three groups it picks the lowest - but all three of these groups are true for a registered user]]></description><category>ircd</category><pubDate>Sat, 08 Nov 2025 15:17:18 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6590</guid><comments>https://bugs.unrealircd.org/view.php?id=6590#bugnotes</comments></item><item><title>0006422: query security-groups</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6422</link><description><![CDATA[I would like to be able to query&lt;br /&gt;
* which security-groups there are&lt;br /&gt;
* members of a given security-group.&lt;br /&gt;
&lt;br /&gt;
The former could possibly best be done with /STATS?&lt;br /&gt;
The latter would possibly best be done with a /WHO flag?]]></description><category>ircd</category><pubDate>Fri, 31 Oct 2025 13:35:51 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6422</guid><comments>https://bugs.unrealircd.org/view.php?id=6422#bugnotes</comments></item><item><title>0006580: default profile for +F (transparency for chanops/users)</title><author></author><link>https://bugs.unrealircd.org/view.php?id=6580</link><description><![CDATA[Hi,&lt;br /&gt;
&lt;br /&gt;
This is not necessarily a bug, maybe more of an improvement(?)...&lt;br /&gt;
When a sysadmin sets a default-profile in the anti-flood setting like:&lt;br /&gt;
&lt;br /&gt;
anti-flood  { channel { default-profile very-strict; }  }&lt;br /&gt;
&lt;br /&gt;
Channel owners are not aware of this, because in the channel the mode +F &lt;something&gt; is not explicitly shown.&lt;br /&gt;
When the limit is exceeded, the restriction mode occurs, like:&lt;br /&gt;
&lt;br /&gt;
 *** Channel msg/noticeflood detected (limit is 30 per 15 seconds), setting mode +M&lt;br /&gt;
&lt;br /&gt;
But the chanop doesn’t know why this happened, since there is no explicit +F mode set in the channel.&lt;br /&gt;
Most likely many chanops will contact IrcOps to understand what happened.&lt;br /&gt;
If the mode +F &lt;something&gt; appeared explicitly in the channel, the channel owners would know the reason and could then change the +F to another profile if convenient.&lt;br /&gt;
&lt;br /&gt;
I believe that modes applied to a channel should be quite transparent, both for users and for chan owners.&lt;br /&gt;
I understand that some already existing channels may have mlock restrictions... but if the mode +F &lt;something&gt; were already explicit in newly created channels, that would be interesting.&lt;br /&gt;
&lt;br /&gt;
Thanks]]></description><category>ircd</category><pubDate>Wed, 29 Oct 2025 13:58:47 +0100</pubDate><guid>https://bugs.unrealircd.org/view.php?id=6580</guid><comments>https://bugs.unrealircd.org/view.php?id=6580#bugnotes</comments></item></channel></rss>
