| Commit message (Expand) | Author | Age | Files | Lines |
| * | Separate client vs server caps•••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).
| Ryan Schmidt | 2026-03-17 | 1 | -2/+3 |
| * | Add batch support•••- 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
| Ryan Schmidt | 2026-01-21 | 1 | -0/+3 |
| * | Remove WebSocket support | Aaron Jones | 2024-06-12 | 1 | -2/+0 |
| * | client: refactor del_all_accepts to allow skipping own accept list•••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
| Doug Freed | 2023-11-06 | 1 | -1/+1 |
| * | Warn opers about unresponsive servers | David Schultz | 2023-06-13 | 1 | -0/+1 |
| * | OpenSSL 3.0 compatibility•••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
| jailbird777 | 2022-08-25 | 1 | -1/+1 |
| * | Support *mask* and !*mask* in LIST | Ed Kellett | 2021-10-19 | 1 | -1/+1 |
| * | Remove ziplinks (#218) | Ariadne Conill | 2021-06-26 | 1 | -11/+0 |
| * | Mailmap and copyright update for Ariadne | Ariadne Conill | 2021-06-01 | 1 | -1/+1 |
| * | m_webirc: Blow away ident if we've got it•••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.
| Ed Kellett | 2020-11-02 | 1 | -0/+1 |
| * | Explanatory comment for LFLAGS_FAKE | Ed Kellett | 2020-11-01 | 1 | -0/+1 |
| * | Mark fake test clients, don't assert they're real | Ed Kellett | 2020-11-01 | 1 | -0/+1 |
| * | Rename UMODE_SSLCLIENT, IsSSLClient | Ed Kellett | 2020-10-31 | 1 | -7/+5 |
| * | Replace IsInsecure with IsSecure | Ed Kellett | 2020-10-31 | 1 | -4/+4 |
| * | Implement the solanum.chat/identify-msg vendor cap | Ed Kellett | 2020-10-16 | 1 | -0/+4 |
| * | Innovation by sed | Ed Kellett | 2020-10-15 | 1 | -1/+1 |
| * | Replace most checks for +o with oper:general•••I'm preparing to PR a succession of privs changes with the ultimate goal
of severely limiting the scope of the binary oper/user dichotomy and
move conceptually distinct oper functions into their own privs.
Accomplishing this is a non-trivial task, and can wait, but it's
inconvenient now to have such functions enabled by the same mechanism
that grants any privs at all--so I'm moving all of them to a
transitional priv with the intention of eroding that later.
| Ed Kellett | 2020-08-04 | 1 | -7/+3 |
| * | remove callerid definitions | Ariadne Conill | 2020-07-09 | 1 | -2/+0 |
| * | client: drop no longer existent 'struct blacklist' definition.•••This went away when authd was implemented.
| Ariadne Conill | 2020-07-05 | 1 | -3/+0 |
| * | modularize usermode +R (registered users only) | Ariadne Conill | 2020-06-26 | 1 | -2/+0 |
| * | m_webirc: respect ircv3's `secure` option | Ed Kellett | 2019-10-20 | 1 | -0/+5 |
| * | Propagate OPER•••Move opername and privset storage to struct User, so it can exist for
remote opers.
On /oper and when bursting opers, send:
:foo OPER opername privset
which sets foo's opername and privset. The contents of the privset on
remote servers come from the remote server's config, so the potential
for confusion exists if these do not match.
If an oper's privset does not exist on a server that sees it, it will
complain, but create a placeholder privset. If the privset is created by
a rehash, this will be reflected properly.
/privs is udpated to take an optional argument, the server to query, and
is now local by default:
/privs [[nick_or_server] nick]
| Ed Kellett | 2019-09-13 | 1 | -3/+3 |
| * | Remove unused kline delay machinery | Ed Kellett | 2019-04-27 | 1 | -1/+0 |
| * | Add check_one_kline, expose notify_banned_client | Ed Kellett | 2019-04-27 | 1 | -0/+8 |
| * | m_pass: store unverified SID in preClient for use in m_server | Simon Arlott | 2018-08-15 | 1 | -0/+2 |
| * | gcc7 fixes: NICKLEN -> NAMELEN•••Use NAMELEN instead of NICKLEN when accessing Client->name because it
could in theory be a HOSTLEN length string.
| Simon Arlott | 2018-01-19 | 1 | -1/+1 |
| * | Add basic SCTP listener support that binds to multiple addresses•••This only supports two addresses as the intended use is 1 IPv4 and 1 IPv6
address on a single-homed host, and the only supported configuration of
outgoing connections to other servers is to bind a single IPv4 or IPv6
address.
| Simon Arlott | 2017-08-24 | 1 | -0/+5 |
| * | msgbuf: correctly split buffers into IRCv3 tags and RFC1459 message data | Simon Arlott | 2017-07-29 | 1 | -1/+0 |
| * | listener: use exit_client instead of free_client•••As well as leaking a connid and leaving the connection open,
these calls to free_client() leave the client in the unknown_list
causing check_unknowns_list() to crash when either ptr->data
(ptr being the freed client_p->localClient->tnode) is NULL or
when client_p->localClient is NULL.
Flag the client as an IO error so that we don't try to send it
any data (as this is not a normal plaintext connection).
| Simon Arlott | 2016-11-20 | 1 | -1/+0 |
| * | random_ping: stop producing negative values that become 16 chars | Simon Arlott | 2016-05-02 | 1 | -1/+1 |
| * | authd: wait until the ssl connection is "open" before reading•••It's useful to allow authd to run in parallel with ssl negotiation,
but if the ssld connection has plaintext data ready for reading
there's a race condition between authd calling read_packet() and
ssl_process_certfp() storing the certificate fingerprint. This
scenario would be bad for a server connecting because fingerprint
verification will fail.
Allow either operation to complete first, but wait until
ssl_process_open_fd() calls the ssl open callback before calling
read_packet().
| Simon Arlott | 2016-04-25 | 1 | -0/+4 |
| * | sslproc: simplify ssl open callback•••Don't use the librb callback type as we're always passing client_p.
Provide a return value so that the connect handler can exit_client()
and the accept handler can opt to use the default dead handler.
| Simon Arlott | 2016-04-25 | 1 | -2/+3 |
| * | ssld: add a callback when the connection is opened•••This allows us to wait until we have the fingerprint information before
continuing with a server connect process.
| Simon Arlott | 2016-04-24 | 1 | -0/+2 |
| * | m_sasl: rate-limit SASL REAUTH usage | Mantas Mikulėnas | 2016-04-11 | 1 | -1/+4 |
| * | m_sasl: temporarily reject clients after many failed attempts | Mantas Mikulėnas | 2016-04-11 | 1 | -0/+1 |
| * | Remove extraneous whitespace [ci skip] | Elizabeth Myers | 2016-04-10 | 1 | -1/+0 |
| * | Wrap up authd preclient stuff in its own struct | Elizabeth Myers | 2016-04-10 | 1 | -9/+15 |
| * | Get rid of flags2.•••It seems to come from an era where long long didn't exist and 64-bit
machines weren't common. 32-bit machines are still common but I can't
imagine this will have much performance impact there.
This "fixes" #179 in title only, but see comments within.
| Elizabeth Myers | 2016-04-07 | 1 | -52/+46 |
| * | ircd: integrate ircd side of wsockd support | William Pitcock | 2016-04-02 | 1 | -0/+2 |
| * | Replace s_auth/blacklist stuff with authd calls•••This also does a lot of surgery on the conf system to reconfigure authd.
/!\ WARNING! ACHTUNG! ADVERTENCIA! ATTENTION! AVVERTIMENTO! /!\
This code has not been run-time tested yet (though it compiles)!
| Elizabeth Myers | 2016-03-28 | 1 | -13/+15 |
| * | ircd: client: substantially rework the connid registry system•••now connid's are allocated on demand and clients may have as many connid's as necessary.
this allows us to build chains of helpers while ensuring the ircd properly tracks and GCs the resources.
| William Pitcock | 2016-03-25 | 1 | -3/+7 |
| * | config.h delenda est | Elizabeth Myers | 2016-03-19 | 1 | -5/+1 |
| * | Change some RATBOX_FOO defines to CHARYBDIS_FOO. | Elizabeth Myers | 2016-03-07 | 1 | -1/+1 |
| * | Remove $Id tags from everything.•••These are obsolete and none have changed since 10 years gao...
| Elizabeth Myers | 2016-03-06 | 1 | -2/+0 |
| * | m_cap: add support for CAP LS 302 | William Pitcock | 2016-02-28 | 1 | -0/+1 |
| * | cap: substantial rewrite leveraging the ircd capabilities framework for clien... | William Pitcock | 2016-02-27 | 1 | -12/+0 |
| * | cap: register the account-tag capability | William Pitcock | 2016-02-20 | 1 | -0/+2 |
| * | ircd: import modified version of ratbox 3.1 whowas code | William Pitcock | 2016-01-23 | 1 | -1/+2 |
| * | Revert "LIST: use new sendq system to reimplement SAFELIST differently."•••This reverts commit e835592cfc53c325608ea30cf58c6d5fba9d47b3.
| William Pitcock | 2016-01-20 | 1 | -0/+11 |
| * | ircd: implement EXTENDCHANS, based on ircd-seven (with some improvements from... | William Pitcock | 2016-01-11 | 1 | -0/+3 |