<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~irc/github.com/solanum-ircd/solanum.git/include/send.h, branch amdj/modules</title>
<subtitle>https://github.com/solanum-ircd/solanum</subtitle>
<id>https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/atom/include/send.h?h=amdj%2Fmodules</id>
<link rel='self' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/atom/include/send.h?h=amdj%2Fmodules'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/'/>
<updated>2026-01-22T00:42:01Z</updated>
<entry>
<title>Pass msgbuf to PART's privmsg_channel hook and propagate PART tags</title>
<updated>2026-01-22T00:42:01Z</updated>
<author>
<name>Ryan Schmidt</name>
</author>
<published>2026-01-21T22:08:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=6a1cd5ec8650ea4a8f47db64f8a4032cc4827c11'/>
<id>urn:sha1:6a1cd5ec8650ea4a8f47db64f8a4032cc4827c11</id>
<content type='text'>
The privmsg_channel hook gained a new msgbuf member which was
uninitialized in m_part. Properly pass the msgbuf to that parameter and
propagate any tags set by the hook to downstream servers.

This requires introducing sendto_server_tags(), and I refactored
sendto_server() to call the same helper internal method as
sendto_server_tags(). I took the opportunity to update the method to use
msgbuf instead of linebuf directly (meaning sendto_server() now calls
outbound_msgbuf).

Fixes #484
</content>
</entry>
<entry>
<title>Add batch support</title>
<updated>2026-01-21T16:10:44Z</updated>
<author>
<name>Ryan Schmidt</name>
</author>
<published>2025-10-25T00:59:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=4cc9be1ddf1e14fc76bf433e23a3d528424b60ca'/>
<id>urn:sha1:4cc9be1ddf1e14fc76bf433e23a3d528424b60ca</id>
<content type='text'>
- Add "batch" client capability
- Support sending netsplit/netjoin batches
- Support receiving BATCH from clients and remote servers
- Support for modules to define supported batch types for incoming
  batches
- Add "message_handler" hook to override the handler for a particular
  incoming message
- Add technical and user-facing documentation for batches
- Add some more sendto_* overloads that support tags which were missing
  from the initial message-tags implementation but turned out to be
  needed
</content>
</entry>
<entry>
<title>m_message: Implement message-tags and TAGMSG</title>
<updated>2025-10-10T19:09:40Z</updated>
<author>
<name>Ryan Schmidt</name>
</author>
<published>2025-08-18T22:20:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=17f5ad5427a99c473ef21850f466ac5840d29220'/>
<id>urn:sha1:17f5ad5427a99c473ef21850f466ac5840d29220</id>
<content type='text'>
The CAP_STAG server capability and the CAP_TAGS server capability
introduced by m_message are redundant, so get rid of CAP_TAGS and update
the comment for CAP_STAG to indicate what it is for. Additionally,
define the message-tags client capability in m_message.

A lot of new sendto_* functions were introduced that take an explicit
array of tags to attach to the outgoing message. New functions were
preferred over updating existing functions in order to maintain
compatibility with non-tags-aware code in both the API and ABI layers.
The updated definitions of these functions will be provided in a
subsequent patch in this PR; however I felt the declarations would be
useful in reviewing the changes to m_message.

A TAGMSG with zero client-only tags is rejected with 412
ERR_NOTEXTTOSEND. While the precise message of that numeric is a little
bit misleading, it was the closest existing thing and matches what we
send off when a PRIVMSG contains no text. The message-tags spec does not
specify any particular error when a TAGMSG contains no tags (indeed it
has a non-normative example where such a TAGMSG is propgated). The spec
also allows for server-side moderation of tags, however, and not
propagating completely useless messages is a valid use of those
moderation powers.

General cleanup of the file was performed as part of this patch.
</content>
</entry>
<entry>
<title>send: add sendto_one_multiline_* API</title>
<updated>2020-11-13T00:18:01Z</updated>
<author>
<name>Doug Freed</name>
</author>
<published>2020-11-06T19:03:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=8efff56fdf9f4ce4a3968c74162fed9d8d45c51a'/>
<id>urn:sha1:8efff56fdf9f4ce4a3968c74162fed9d8d45c51a</id>
<content type='text'>
Allows simplifying multiline wrapping for multiple usages, like CAP
LS/LIST, NAMES, and WHOIS channel listing
</content>
</entry>
<entry>
<title>Send hidden mode changes to auspex:cmodes</title>
<updated>2020-08-04T21:58:30Z</updated>
<author>
<name>Ed Kellett</name>
</author>
<published>2020-06-07T16:36:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=d3fd88a406cae91cbbbdad1c0112075d004fee53'/>
<id>urn:sha1:d3fd88a406cae91cbbbdad1c0112075d004fee53</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ircd: send tags on every message</title>
<updated>2017-08-06T15:21:29Z</updated>
<author>
<name>Simon Arlott</name>
</author>
<published>2017-08-06T11:05:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=4b1cce65ed584cc0fdc9f3c5ec84373fdf2566a8'/>
<id>urn:sha1:4b1cce65ed584cc0fdc9f3c5ec84373fdf2566a8</id>
<content type='text'>
Simplify linebuf by introducing fsnprint to manage a list of printfs.
Add a msgbuf unparse cache for send functions that loop.
</content>
</entry>
<entry>
<title>echo-message should work for privmsg/notice to another user</title>
<updated>2016-11-23T21:59:43Z</updated>
<author>
<name>Simon Arlott</name>
</author>
<published>2016-11-23T21:43:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=e2d5ffd5ddf2495e0cb019183a4f1fa2bd3aca58'/>
<id>urn:sha1:e2d5ffd5ddf2495e0cb019183a4f1fa2bd3aca58</id>
<content type='text'>
Build the same message but send it to the local client first,
so that the echo-message capability works. But don't do it when
sending a message to yourself.
</content>
</entry>
<entry>
<title>config.h delenda est</title>
<updated>2016-03-20T00:14:26Z</updated>
<author>
<name>Elizabeth Myers</name>
</author>
<published>2016-03-20T00:14:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=9b8e9eb32116eb171a951fbbe93c53f1047c9a34'/>
<id>urn:sha1:9b8e9eb32116eb171a951fbbe93c53f1047c9a34</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change all leftover libratbox stuff to librb.</title>
<updated>2016-03-06T09:49:27Z</updated>
<author>
<name>Elizabeth Myers</name>
</author>
<published>2016-03-06T09:49:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=fe037171d6c2b5e9d28ac10a015a13ca5e011cee'/>
<id>urn:sha1:fe037171d6c2b5e9d28ac10a015a13ca5e011cee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove $Id tags from everything.</title>
<updated>2016-03-06T08:47:27Z</updated>
<author>
<name>Elizabeth Myers</name>
</author>
<published>2016-03-06T08:46:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=cbeab4bc340b7b3f4fbf424ff327758defb9598a'/>
<id>urn:sha1:cbeab4bc340b7b3f4fbf424ff327758defb9598a</id>
<content type='text'>
These are obsolete and none have changed since 10 years gao...
</content>
</entry>
</feed>
