Merge: 6fb5e9636fa1fffc62e86561e7dcd734fa2ee53f
Add defer_accept option to enable TCP_DEFER_ACCEPT
Charybdis commits referenced:
atheme/charybdis@77cb59b
libratbox: add support for TCP_DEFER_ACCEPT on linux
atheme/charybdis@aa4737a
libratbox: make defer_accept optional.
atheme/charybdis@02270e9
Add listen::defer_accept option for controlling usage
of TCP_DEFER_ACCEPT option.
atheme/charybdis@797a29f
libratbox: Allow defer_accept on FreeBSD.
Many thanks to Shockk for this patch.
References commits:
- 15dc12b76e76c6fa2ead773b6b40965223ad453f - Added snotes for failed SASL authentication attempts if need_sasl flag is set.
- febd2e2aca27f7f1acfc522f3fda65d8be067edc - Updated help/opers/snomask to add +S snomask.
This is a lot like the previous channel owner mode patch, except the
documentation that previously said "admin" now says "owner" in comments.
src/channel: Kicking logic for owner mode fixed
src/channel: Document the kick/deop logic
decruft: remove temporary files
Work around a bug in GCC's loop optimization.
Or maybe it's undefined behavior in our C. Or maybe both. Either way,
it wasn't broken before, and now it is. So this fixes it.
Add two mechanism for avoiding name-collisions in a system-wide installation of charybdis. The ssld and bandb daemons, intended to be directly used by ircd and not the user, install into libexec when --enable-fhs-paths is set. For binaries which are meant to be in PATH (bindir), such as ircd and viconf, there is now an option --with-program-prefix=progprefix inspired by automake. If the user specifies --with-program-prefix=charybdis, the ircd binary is named charybdisircd when installed. Add support for saving the pidfile to a rundir and storing the ban database in localstatedir instead of in sysconfdir. This is, again, conditional on --enable-fhs-paths. Fix(?) genssl.sh to always write created SSL key/certificate/dh parameters to the sysconfdir specified during ./configure. The previous behavior was to assume that the user ran genssl.sh after ensuring that his current working directory was either sysconfdir or a sibling directory of sysconfdir.
yy_oper->certfp was not copied into yy_tmpoper->certfp, thus the information was lost and certfp auth was never really working, since the string was always empty.
Any hunted parameter with wildcards is now assumed
to be a server, never a user.
Reasons:
* fewer match() calls
* do not disclose existing nicknames
* more intuitive behaviour for CONNECT
m_trace has a copy of some hunt_server logic in it
(for the RPL_TRACELINK reply), so adjust that too.
These seem unnecessary and may cause problems because they
are wrong in some cases.
A comment says these were needed for GCC 3.3. If you are
still using this compiler, check this and if it breaks,
some other approach is needed.
Author: Stephen Bennett <spb@exherbo.org>
Date: Fri Dec 31 17:14:05 2010 +0000
Expire umode +p correctly if it's set via oper_umodes, as well as by user_mode. Bug found by tgies.
Author: Stephen Bennett <spb@exherbo.org>
Date: Fri Dec 31 17:11:50 2010 +0000
Don't allow opers without the override privilege to get +p via the oper_umodes config setting
The reason why we do this is because some clients are dependent on receiving a numeric
for every channel join failure, even due to this limit where it can be assumed that
subsequent joins failed.
This replaces use_invex, use_except, and use_forward, although
those options are still used internally and will continue to work
for users, to maintain config compatibility between charybdis
and shadowircd.