<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~irc/github.com/solanum-ircd/solanum.git/include/client.h, branch amdj/autotools-version-fix</title>
<subtitle>https://github.com/solanum-ircd/solanum</subtitle>
<id>https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/atom/include/client.h?h=amdj%2Fautotools-version-fix</id>
<link rel='self' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/atom/include/client.h?h=amdj%2Fautotools-version-fix'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/'/>
<updated>2026-03-17T20:22:38Z</updated>
<entry>
<title>Separate client vs server caps</title>
<updated>2026-03-17T20:22:38Z</updated>
<author>
<name>Ryan Schmidt</name>
</author>
<published>2026-02-21T02:30:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=8978f885844957bef743e60aeae8bf8096025850'/>
<id>urn:sha1:8978f885844957bef743e60aeae8bf8096025850</id>
<content type='text'>
Instead of overloading the same field in a LocalUser, have separate
fields for client caps vs server caps. While only one of these will ever
be nonzero, it reduces error by making it explicit which set of caps is
being checked. IsCapable and friends have been split as well, to
IsClientCapable and IsServerCapable. Finally, both fields have been
updated to uint64_t (server caps were approaching the current limit) and
all APIs that reference caps updated to uint64_t as well (no more
signed/unsigned mismatches).
</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>Remove WebSocket support</title>
<updated>2024-06-12T19:35:19Z</updated>
<author>
<name>Aaron Jones</name>
</author>
<published>2024-03-16T15:24:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=484fd9051ec93a86e48371ac4e0eec690b99ee48'/>
<id>urn:sha1:484fd9051ec93a86e48371ac4e0eec690b99ee48</id>
<content type='text'>
</content>
</entry>
<entry>
<title>client: refactor del_all_accepts to allow skipping own accept list</title>
<updated>2023-11-06T17:31:44Z</updated>
<author>
<name>Doug Freed</name>
</author>
<published>2023-09-03T23:19:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=c1b01bf5ec318463ab076ac2d7c0a4b02631f745'/>
<id>urn:sha1:c1b01bf5ec318463ab076ac2d7c0a4b02631f745</id>
<content type='text'>
This allows reusing this function for other uses that just need to
remove this client from others' accept lists on nick change and not have
duplicates of this code everywhere
</content>
</entry>
<entry>
<title>Warn opers about unresponsive servers</title>
<updated>2023-06-13T14:13:42Z</updated>
<author>
<name>David Schultz</name>
</author>
<published>2023-06-13T14:13:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=d1c028f2122f9da00203f415d76a990d7ef8843e'/>
<id>urn:sha1:d1c028f2122f9da00203f415d76a990d7ef8843e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>OpenSSL 3.0 compatibility</title>
<updated>2022-08-25T00:36:47Z</updated>
<author>
<name>jailbird777</name>
</author>
<published>2022-08-13T03:40:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=8e9a7418323a8cda056a04f5259e79aacba5229f'/>
<id>urn:sha1:8e9a7418323a8cda056a04f5259e79aacba5229f</id>
<content type='text'>
Edited by @aaronmdjones:

- Correct some data types and casts

- Minor style fixups (e.g. we put * on the variable name not the type)

- librb/src/openssl.c:

  - Defer call of BIO_free(3ssl) to the end of the conditional block
    to avoid having calls to it in multiple paths

  - Check the return value of SSL_CTX_set0_tmp_dh_pkey(3ssl) because if
    it fails then we must use EVP_PKEY_free(3ssl) to avoid a memory leak

    This could fail if, for example, the user supplied DSA parameters
    in the DH parameters file instead.

- ircd/newconf.c:

  - Check whether OSSL_DECODER_CTX_new_for_pkey(3ssl) was able to parse
    the given CHALLANGE public key as a valid RSA public key, and then
    check whether OSSL_DECODER_from_bio(3ssl) actually loads it
    successfully

- ircd/s_newconf.c:

  - Use EVP_PKEY_free(3ssl) instead of OPENSSL_free(3ssl) on EVP_PKEY
    pointers; this will avoid inadvertent memory leaks if the EVP_PKEY
    structure contains any dynamically-allocated child members

- modules/m_challenge.c:

  - Unconditionally use EVP(3ssl) to generate the SHA-1 digest of the
    random challenge; this API has been around for a very long time and
    is available in all supported versions of OpenSSL

  - Add lots of error checking to all steps of the process

Tested against 1.1.1 and 3.0; both with missing and provided DH parameters
(which works as you'd expect; the server will not negotiate a DHE cipher
without them), and CHALLENGE, including missing keys or keys of the wrong
type (e.g. when you supply an EdDSA key instead of an RSA key).

This does break compatibility with OpenSSL 1.1.0 and below, which are now
all end-of-life and unsupported anyway.

Closes #357
</content>
</entry>
<entry>
<title>Support *mask* and !*mask* in LIST</title>
<updated>2021-10-19T22:33:48Z</updated>
<author>
<name>Ed Kellett</name>
</author>
<published>2021-10-18T17:26:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=1788e55713e9124f880dd77075024fa8cce4c05d'/>
<id>urn:sha1:1788e55713e9124f880dd77075024fa8cce4c05d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove ziplinks (#218)</title>
<updated>2021-06-26T16:45:52Z</updated>
<author>
<name>Ariadne Conill</name>
</author>
<published>2021-06-26T16:45:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=81531536aac9adb585c5a17b448aa0496bf68ebd'/>
<id>urn:sha1:81531536aac9adb585c5a17b448aa0496bf68ebd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mailmap and copyright update for Ariadne</title>
<updated>2021-06-01T16:40:02Z</updated>
<author>
<name>Ariadne Conill</name>
</author>
<published>2021-06-01T16:40:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=3fc0499e77c9091ce08a8c6da277de3a45c0c027'/>
<id>urn:sha1:3fc0499e77c9091ce08a8c6da277de3a45c0c027</id>
<content type='text'>
</content>
</entry>
<entry>
<title>m_webirc: Blow away ident if we've got it</title>
<updated>2020-11-02T19:59:29Z</updated>
<author>
<name>Ed Kellett</name>
</author>
<published>2020-10-25T19:40:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~irc/github.com/solanum-ircd/solanum.git/commit/?id=861a54454105f67d46873220f34bf214e65d5d69'/>
<id>urn:sha1:861a54454105f67d46873220f34bf214e65d5d69</id>
<content type='text'>
Previously, anyone on the WEBIRC gateway would get its ident if it
advertised one, which seems wrong to me.

This allows ident to be used with WEBIRC while still letting users send
their own ~username in band.
</content>
</entry>
</feed>
