Merge branch 'unreal60_dev' of git://github.com/unrealircd/unrealircd into unrealircd-unreal60_dev

This commit is contained in:
angryce 2021-11-21 17:23:28 +01:00
commit e4a14efdc1
10 changed files with 70 additions and 54 deletions

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.0.0-beta2 unrealircd-6.0.0-beta1 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 unrealircd-5.0.5.1 unrealircd-5.0.5 unrealircd-5.0.4 unrealircd-5.0.3.1 unrealircd-5.0.3 unrealircd-5.0.2 unrealircd-5.0.1 unrealircd-5.0.0"
UNREALRELEASES="unrealircd-6.0.0-beta3 unrealircd-6.0.0-beta2 unrealircd-6.0.0-beta1 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 unrealircd-5.0.5.1 unrealircd-5.0.5 unrealircd-5.0.4 unrealircd-5.0.3.1 unrealircd-5.0.3 unrealircd-5.0.2"
if [ -f "config.settings" ]; then
. ./config.settings
else

View file

@ -7,7 +7,7 @@ dnl src/windows/unrealinst.iss
dnl doc/Config.header
dnl src/version.c.SH
AC_INIT([unrealircd], [6.0.0-beta3], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_INIT([unrealircd], [6.0.0-beta4], [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=["-beta3"]
UNREAL_VERSION_SUFFIX=["-beta4"]
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.0.0-beta3
for UnrealIRCd 6.0.0-beta4
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,6 +1,6 @@
UnrealIRCd 6.0.0-beta3
UnrealIRCd 6.0.0-beta4
=======================
This is the third beta for UnrealIRCd 6. It contains all the planned
This is the fourth beta for UnrealIRCd 6. It contains all the planned
features for U6 and now we need the help of the public to test these beta's.
Caution: this beta may crash spectacularly, behave weird or in unexpected
ways, so don't run it on production systems!
@ -15,6 +15,13 @@ you, then answer --disable-asan to the last question in ./Config about
custom parameters to pass to configure.
Naturally, the eventual stable release won't use AddressSanitizer.
Changes since beta3:
* Fix regular users being able to set some channel modes (users without +hoaq)
* Fix memory leak in SJOIN
* Fix websocket memory leak and two issues with forwarders
* Fix issue with MODE expansion leading to duplicate msgids (rare)
* Update Turkish example and help conf
Changes since beta2:
* Fix crash with non-matching link block
* Update MODE to behave better in mixed U5-U6 networks, preventing desyncs.

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.0.0-beta3
PROJECT_NUMBER = 6.0.0-beta4
# 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

@ -65,6 +65,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 "-beta3"
#define UNREAL_VERSION_SUFFIX "-beta4"
#endif

View file

@ -162,6 +162,14 @@ CMD_FUNC(cmd_mode)
}
#endif
/* User does not have permission to use the MODE command */
if (MyUser(client) && !IsULine(client) && !check_channel_access(client, channel, "hoaq") &&
!ValidatePermissionsForPath("channel:override:mode",client,NULL,channel,NULL))
{
sendnumeric(client, ERR_CHANOPRIVSNEEDED, channel->name);
return;
}
if (parv[2] && (*parv[2] == '&'))
{
/* We don't do any bounce-mode handling anymore since UnrealIRCd 6 */

View file

@ -261,6 +261,7 @@ void websocket_mdata_free(ModData *m)
{
safe_free(wsu->handshake_key);
safe_free(wsu->lefttoparse);
safe_free(wsu->sec_websocket_protocol);
safe_free(wsu->forwarded);
safe_free(m->ptr);
}
@ -578,57 +579,57 @@ struct HTTPForwardedHeader *websocket_parse_forwarded_header(char *input)
break;
}
switch (action)
{
case FHEADER_ACTION_APPEND:
if (state == FHEADER_STATE_NAME)
{
case FHEADER_ACTION_APPEND:
if (state == FHEADER_STATE_NAME)
{
if (name_length < FHEADER_NAMELEN)
{
if (name_length < FHEADER_NAMELEN)
{
name[name_length++] = c;
} else
{
/* truncate */
}
name[name_length++] = c;
} else
{
if (name_length < IPLEN)
{
value[value_length++] = c;
} else
{
/* truncate */
}
/* truncate */
}
break;
case FHEADER_ACTION_IGNORE: default:
break;
case FHEADER_ACTION_PROCESS:
value[value_length] = '\0';
name[name_length] = '\0';
if (!strcasecmp(name, "for"))
} else
{
if (value_length < IPLEN)
{
strlcpy(forwarded.ip, value, IPLEN+1);
} else if (!strcasecmp(name, "proto"))
{
if (!strcasecmp(value, "https"))
{
forwarded.secure = 1;
} else if (!strcasecmp(value, "http"))
{
forwarded.secure = 0;
} else
{
/* ignore unknown value */
}
value[value_length++] = c;
} else
{
/* ignore unknown field name */
/* truncate */
}
value_length = 0;
name_length = 0;
state = FHEADER_STATE_NAME;
break;
}
}
break;
case FHEADER_ACTION_IGNORE: default:
break;
case FHEADER_ACTION_PROCESS:
value[value_length] = '\0';
name[name_length] = '\0';
if (!strcasecmp(name, "for"))
{
strlcpy(forwarded.ip, value, IPLEN+1);
} else if (!strcasecmp(name, "proto"))
{
if (!strcasecmp(value, "https"))
{
forwarded.secure = 1;
} else if (!strcasecmp(value, "http"))
{
forwarded.secure = 0;
} else
{
/* ignore unknown value */
}
} else
{
/* ignore unknown field name */
}
value_length = 0;
name_length = 0;
state = FHEADER_STATE_NAME;
break;
}
}
return &forwarded;
@ -819,7 +820,7 @@ int websocket_handle_handshake(Client *client, const char *readbuf, int *length)
if (end_of_request)
{
if (!websocket_handshake_valid(client))
if (!websocket_handshake_valid(client) || IsDead(client))
return -1;
websocket_handshake_send_response(client);
return 0;

View file

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

View file

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