Merge remote-tracking branch 'upstream/unreal60_dev' into piss60

This commit is contained in:
alice 2023-10-05 00:41:53 +01:00
commit f8abce2d50
18 changed files with 68 additions and 30 deletions

19
.gitignore vendored
View file

@ -35,6 +35,7 @@ tls.rnd
# Ignores for platform stuff
.DS_Store
[D|d]esktop.ini
# Ignores for build artifacts
*.so
@ -45,6 +46,24 @@ src/ircd
src/version.c
src/include
# Ignores for windows stuff
## Binaries
*.dll
*.exe
*.map
*.pdb
*.lib
## Build artifacts
*.obj
*.exp
*.ilk
*.res
##Other
*.tmp
UnrealIRCd.def*
*.nativecodeanalysis.xml
# Ignores for mac stuff
## Various settings
*.pbxuser

2
Config
View file

@ -345,7 +345,7 @@ echo "We will now ask you a number of questions. You can just press ENTER to acc
echo ""
# This needs to be updated each release so auto-upgrading works for settings, modules, etc!!:
UNREALRELEASES="unrealircd-6.1.2-rc1 unrealircd-6.1.1.1 unrealircd-6.1.1 unrealircd-6.1.0 unrealircd-6.1.0-rc2 unrealircd-6.1.0-rc1 unrealircd-6.0.7 unrealircd-6.0.6 unrealircd-6.0.5 unrealircd-6.0.5-rc2 unrealircd-6.0.5-rc1 unrealircd-6.0.4.2 unrealircd-6.0.4.1 unrealircd-6.0.4 unrealircd-6.0.4-rc2 unrealircd-6.0.4-rc1 unrealircd-6.0.3 unrealircd-6.0.2 unrealircd-6.0.1.1 unrealircd-6.0.1 unrealircd-6.0.0 unrealircd-6.0.0-rc2 unrealircd-6.0.0-rc1 unrealircd-6.0.0-beta4 unrealircd-6.0.0-beta3 unrealircd-6.0.0-beta2 unrealircd-6.0.0-beta1 unrealircd-5.2.3 unrealircd-5.2.2 unrealircd-5.2.1.1 unrealircd-5.2.1 unrealircd-5.2.1-rc1 unrealircd-5.2.0.2 unrealircd-5.2.0.1 unrealircd-5.2.0 unrealircd-5.2.0-rc1 unrealircd-5.0.9.1 unrealircd-5.0.9 unrealircd-5.0.9-rc1 unrealircd-5.0.8 unrealircd-5.0.8-rc1 unrealircd-5.0.7 unrealircd-5.0.7-rc1 unrealircd-5.0.6"
UNREALRELEASES="unrealircd-6.1.2 unrealircd-6.1.2-rc2 unrealircd-6.1.2-rc1 unrealircd-6.1.1.1 unrealircd-6.1.1 unrealircd-6.1.0 unrealircd-6.1.0-rc2 unrealircd-6.1.0-rc1 unrealircd-6.0.7 unrealircd-6.0.6 unrealircd-6.0.5 unrealircd-6.0.5-rc2 unrealircd-6.0.5-rc1 unrealircd-6.0.4.2 unrealircd-6.0.4.1 unrealircd-6.0.4 unrealircd-6.0.4-rc2 unrealircd-6.0.4-rc1 unrealircd-6.0.3 unrealircd-6.0.2 unrealircd-6.0.1.1 unrealircd-6.0.1 unrealircd-6.0.0 unrealircd-6.0.0-rc2 unrealircd-6.0.0-rc1 unrealircd-6.0.0-beta4 unrealircd-6.0.0-beta3 unrealircd-6.0.0-beta2 unrealircd-6.0.0-beta1 unrealircd-5.2.3 unrealircd-5.2.2 unrealircd-5.2.1.1 unrealircd-5.2.1 unrealircd-5.2.1-rc1 unrealircd-5.2.0.2 unrealircd-5.2.0.1 unrealircd-5.2.0 unrealircd-5.2.0-rc1 unrealircd-5.0.9.1 unrealircd-5.0.9 unrealircd-5.0.9-rc1 unrealircd-5.0.8 unrealircd-5.0.8-rc1 unrealircd-5.0.7 unrealircd-5.0.7-rc1 unrealircd-5.0.6"
if [ -f "config.settings" ]; then
. ./config.settings
else

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for unrealircd 6.1.2-rc2.
# Generated by GNU Autoconf 2.71 for unrealircd 6.1.2.1.
#
# Report bugs to <https://bugs.unrealircd.org/>.
#
@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unrealircd'
PACKAGE_TARNAME='unrealircd'
PACKAGE_VERSION='6.1.2-rc2'
PACKAGE_STRING='unrealircd 6.1.2-rc2'
PACKAGE_VERSION='6.1.2.1'
PACKAGE_STRING='unrealircd 6.1.2.1'
PACKAGE_BUGREPORT='https://bugs.unrealircd.org/'
PACKAGE_URL='https://unrealircd.org/'
@ -1372,7 +1372,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures unrealircd 6.1.2-rc2 to adapt to many kinds of systems.
\`configure' configures unrealircd 6.1.2.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1438,7 +1438,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of unrealircd 6.1.2-rc2:";;
short | recursive ) echo "Configuration of unrealircd 6.1.2.1:";;
esac
cat <<\_ACEOF
@ -1616,7 +1616,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
unrealircd configure 6.1.2-rc2
unrealircd configure 6.1.2.1
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@ -1915,7 +1915,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by unrealircd $as_me 6.1.2-rc2, which was
It was created by unrealircd $as_me 6.1.2.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@ -2706,7 +2706,7 @@ printf "%s\n" "#define UNREAL_VERSION_MINOR $UNREAL_VERSION_MINOR" >>confdefs.h
# The version suffix such as a beta marker or release candidate
# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a
# string instead of an integer because it contains arbitrary data.
UNREAL_VERSION_SUFFIX="-rc2"
UNREAL_VERSION_SUFFIX=".1"
printf "%s\n" "#define UNREAL_VERSION_SUFFIX \"$UNREAL_VERSION_SUFFIX\"" >>confdefs.h
@ -10064,7 +10064,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by unrealircd $as_me 6.1.2-rc2, which was
This file was extended by unrealircd $as_me 6.1.2.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -10129,7 +10129,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
unrealircd config.status 6.1.2-rc2
unrealircd config.status 6.1.2.1
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View file

@ -7,7 +7,7 @@ dnl src/windows/unrealinst.iss
dnl doc/Config.header
dnl src/version.c.SH
AC_INIT([unrealircd], [6.1.2-rc2], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_INIT([unrealircd], [6.1.2.1], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_CONFIG_SRCDIR([src/ircd.c])
AC_CONFIG_HEADER([include/setup.h])
AC_CONFIG_AUX_DIR([autoconf])
@ -40,7 +40,7 @@ AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor versi
# The version suffix such as a beta marker or release candidate
# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a
# string instead of an integer because it contains arbitrary data.
UNREAL_VERSION_SUFFIX=["-rc2"]
UNREAL_VERSION_SUFFIX=[".1"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rcX for unrealircd-3.2.9-rcX)])
AC_PATH_PROG(RM,rm)

View file

@ -7,7 +7,7 @@
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for UnrealIRCd 6.1.2-rc2
for UnrealIRCd 6.1.2.1
This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.

View file

@ -1,8 +1,9 @@
UnrealIRCd 6.1.2-rc2
=====================
This is the second release candidate for future version 6.1.2.
UnrealIRCd 6.1.2.1
===================
This release focuses on adding spamfilter features but also contains various
other new features and some fixes.
You can help us by testing this release and reporting any issues at https://bugs.unrealircd.org/.
This .1 release (dot release) fixes a spamfilter::rule crash in 6.1.2.
### Enhancements:
* We now give tips on (security) best practices depending on settings in your
@ -117,6 +118,7 @@ You can help us by testing this release and reporting any issues at https://bugs
speed is acceptable for our purposes.
### Fixes:
* Temporary high CPU usage (99%) under some conditions
* UnrealIRCd has watch away notification since 2008, this is indicated in
RPL_ISUPPORT via `WATCHOPTS=A` and then the syntax to actually use this
is `WATCH A +Nick1 +Nick2 etc.`. In UnrealIRCd 6 there was a bug where

View file

@ -245,6 +245,15 @@ help ExtBans {
" | | If a user matches the ban or other limits (eg +l/+k/etc)";
" ~f | ~forward | then they will be forwarded to the specified channel. ";
" | | Example: +b ~forward:#badisp:*!*@*.isp.xx ";
"-----------------------------------------------------------------------------------";
" | | Bypass mode +f/+F flood protection. This extended ban is";
" | | only available as +e and not as +b. ";
" | | Syntax: +e ~flood:types:mask. ";
" | | Valid flood types are: c, j, k, m, n, t, r, and ";
" ~F | ~flood | * for all. ";
" | | For the meaning of the letters, see /HELPOP CHMODEF ";
" | | Example: +e ~flood:*:*!*@192.168.* ";
" | | +e ~flood:m:*!*@192.168.* ";
" ==------------------------------------------------------------------------------==";
" -";
" ==[ Group 3: selectors ]==";

View file

@ -1,4 +1,4 @@
/* [6.1.2-rc2]
/* [6.1.2.1]
* This file will load (nearly) all modules available on UnrealIRCd.
* So all commands, channel modes, user modes, etc..
*

View file

@ -38,7 +38,7 @@ PROJECT_NAME = "UnrealIRCd"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 6.1.2-rc2
PROJECT_NUMBER = 6.1.2.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View file

@ -1093,8 +1093,12 @@ struct crule_context
/** Evaluation function for a connection rule. */
typedef int (*crule_funcptr) (crule_context *context, int, void **);
#define CRULE_FLAG_NOT 0x1
#define CRULE_FLAG_AND_OR 0x2
/** CRULE - Node in a connection rule tree. */
struct CRuleNode {
int flags;
crule_funcptr funcptr; /**< Evaluation function for this node. */
int numargs; /**< Number of arguments. */
void *arg[CR_MAXARGS]; /**< Array of arguments. For operators, each arg
@ -1478,7 +1482,6 @@ struct LocalClient {
u_char targets[MAXCCUSERS]; /**< Hash values of targets for target limiting */
ConfigItem_listen *listener; /**< If this client IsListening() then this is the listener configuration attached to it */
long serial; /**< Current serial number for send.c functions (to avoid sending duplicate messages) */
time_t next_nick_allowed; /**< Time the next nick change will be allowed */
time_t idle_since; /**< Last time a RESETIDLE message was received (PRIVMSG) */
TrafficStats traffic; /**< Traffic statistics */
ModData moddata[MODDATA_MAX_LOCAL_CLIENT]; /**< LocalClient attached module data, used by the ModData system */

View file

@ -54,7 +54,7 @@
* Can be useful if the above 3 versionids are insufficient for you (eg: you want to support CVS).
* This is updated automatically on the CVS server every Monday. so don't touch it.
*/
#define UNREAL_VERSION_TIME 202338
#define UNREAL_VERSION_TIME 202340
#define UNREAL_VERSION ((UNREAL_VERSION_GENERATION << 24) + (UNREAL_VERSION_MAJOR << 16) + (UNREAL_VERSION_MINOR << 8))
#define UnrealProtocol 6100

View file

@ -67,6 +67,6 @@
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
-rcX for unrealircd-3.2.9-rcX) */
#define UNREAL_VERSION_SUFFIX "-rc2"
#define UNREAL_VERSION_SUFFIX ".1"
#endif

View file

@ -334,8 +334,6 @@ void fix_timers(void)
/* users */
if (MyUser(client))
{
if (client->local->next_nick_allowed > TStime())
client->local->next_nick_allowed = TStime();
if (client->local->nexttarget > TStime())
client->local->nexttarget = TStime();
}

View file

@ -615,6 +615,7 @@ static int crule_parseorexpr(CRuleNode **orrootp, crule_token *next_tokp, const
{
orptr = safe_alloc(sizeof(CRuleNode));
orptr->funcptr = crule__andor;
orptr->flags |= CRULE_FLAG_AND_OR;
orptr->numargs = 3;
orptr->arg[2] = (void *)1;
if (*orrootp != NULL)
@ -672,6 +673,7 @@ static int crule_parseandexpr(CRuleNode **androotp, crule_token *next_tokp, cons
{
andptr = safe_alloc(sizeof(CRuleNode));
andptr->funcptr = crule__andor;
andptr->flags |= CRULE_FLAG_AND_OR;
andptr->numargs = 3;
andptr->arg[2] = (void *)0;
if (*androotp != NULL)
@ -746,6 +748,7 @@ static int crule_parseprimary(CRuleNode **primrootp, crule_token *next_tokp, con
case CR_NOT:
*insertionp = safe_alloc(sizeof(CRuleNode));
(*insertionp)->funcptr = crule__not;
(*insertionp)->flags |= CRULE_FLAG_NOT;
(*insertionp)->numargs = 1;
(*insertionp)->arg[0] = NULL;
insertionp = (CRuleNode **) & ((*insertionp)->arg[0]);
@ -904,13 +907,13 @@ void _crule_free(CRuleNode **elem)
{
int arg, numargs;
if ((*(elem))->funcptr == crule__not)
if ((*(elem))->flags & CRULE_FLAG_NOT)
{
/* type conversions and ()'s are fun! ;) here have an aspirin.. */
if ((*(elem))->arg[0] != NULL)
crule_free((CRuleNode**) &((*(elem))->arg[0]));
}
else if ((*(elem))->funcptr == crule__andor)
else if ((*(elem))->flags & CRULE_FLAG_AND_OR)
{
crule_free((CRuleNode**) &((*(elem))->arg[0]));
if ((*(elem))->arg[1] != NULL)

View file

@ -961,6 +961,10 @@ int dead_socket(Client *to, const char *notice)
SetDeadSocket(to);
/* deregister I/O notification since we don't care anymore. the actual closing of socket will happen later. */
if (to->local->fd >= 0)
fd_unnotify(to->local->fd);
/* We may get here because of the 'CPR' in check_deadsockets().
* In which case, we return -1 as well.
*/

View file

@ -7,7 +7,7 @@ echo "Extracting src/version.c..."
if [ -d ../.git ]; then
SUFFIX="-$(git rev-parse --short HEAD)"
fi
id="6.1.2-rc2$SUFFIX"
id="6.1.2.1$SUFFIX"
echo "$id"
if test -r version.c

View file

@ -3,7 +3,7 @@
<assemblyIdentity
processorArchitecture="amd64"
name="UnrealIRCd.UnrealIRCd.6"
version="6.1.2.0"
version="6.1.2.1"
type="win32"
/>
<description>Internet Relay Chat Daemon</description>

View file

@ -6,7 +6,7 @@
[Setup]
AppName=UnrealIRCd 6
AppVerName=UnrealIRCd 6.1.2-rc2
AppVerName=UnrealIRCd 6.1.2.1
AppPublisher=UnrealIRCd Team
AppPublisherURL=https://www.unrealircd.org
AppSupportURL=https://www.unrealircd.org