diff --git a/Config b/Config index 3ea3336af..6a360a3fc 100755 --- a/Config +++ b/Config @@ -22,10 +22,10 @@ RUN_CONFIGURE () { ARG=" " -if [ -z "$BINDIR" -o -z "$DATADIR" -o -z "$CONFDIR" -o -z "$MODULESDIR" -o -z "$LOGDIR" -o -z "$CACHEDIR" -o -z "$DOCDIR" -o -z "$TMPDIR" -o -z "$LIBDIR" ]; then +if [ -z "$BINDIR" -o -z "$DATADIR" -o -z "$CONFDIR" -o -z "$MODULESDIR" -o -z "$LOGDIR" -o -z "$CACHEDIR" -o -z "$DOCDIR" -o -z "$TMPDIR" -o -z "$PRIVATELIBDIR" ]; then echo "Sorry './Config -quick' cannot be used because your 'config.settings'" echo "file either does not exist or is from an old UnrealIRCd version" - echo "(older than version 4.0.8)." + echo "(older than UnrealIRCd 5.0.0)." echo "" echo "Please run './Config' without -quick and answer all questions." echo "" @@ -34,7 +34,7 @@ fi mkdir -p $TMPDIR -mkdir -p $LIBDIR +mkdir -p $PRIVATELIBDIR # Do this even if we're not in advanced mode if [ "$SHOWLISTMODES" = "1" ] ; then @@ -84,7 +84,7 @@ ARG="$ARG--with-logdir=$LOGDIR " ARG="$ARG--with-cachedir=$CACHEDIR " ARG="$ARG--with-docdir=$DOCDIR " ARG="$ARG--with-tmpdir=$TMPDIR " -ARG="$ARG--with-privatelibdir=$LIBDIR " +ARG="$ARG--with-privatelibdir=$PRIVATELIBDIR " ARG="$ARG--with-scriptdir=$BASEPATH " ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH " ARG="$ARG--with-sendq=$MAXSENDQLENGTH " @@ -93,13 +93,13 @@ ARG="$ARG--enable-dynamic-linking " ARG="$ARG $EXTRAPARA " CONF="./configure $ARG" # remove possibly old instances of curl in ~/unrealircd/lib/ -rm -f $LIBDIR/*curl* 1>/dev/null 2>&1 +rm -f $PRIVATELIBDIR/*curl* 1>/dev/null 2>&1 # Ensure we install curl even if someone does ./Config -quick... if [ "x$CURLDIR" = "x$UNREALCWD/extras/curl" ]; then INSTALLCURL=1 fi if [ "x$INSTALLCURL" = "x1" ]; then - extras/curlinstall "$LIBDIR" || exit 1 + extras/curlinstall "$PRIVATELIBDIR" || exit 1 fi echo $CONF $CONF || exit 1 @@ -547,7 +547,7 @@ LOGDIR="$BASEPATH/logs" CACHEDIR="$BASEPATH/cache" DOCDIR="$BASEPATH/doc" TMPDIR="$BASEPATH/tmp" -LIBDIR="$BASEPATH/lib" +PRIVATELIBDIR="$BASEPATH/lib" TEST="" while [ -z "$TEST" ] ; do @@ -894,7 +894,7 @@ LOGDIR="$LOGDIR" CACHEDIR="$CACHEDIR" DOCDIR="$DOCDIR" TMPDIR="$TMPDIR" -LIBDIR="$LIBDIR" +PRIVATELIBDIR="$PRIVATELIBDIR" PREFIXAQ="$PREFIXAQ" MAXSENDQLENGTH="$MAXSENDQLENGTH" MAXCONNECTIONS_REQUEST="$MAXCONNECTIONS_REQUEST" diff --git a/extras/build-tests/nix/build b/extras/build-tests/nix/build index 525c2730a..c3119e92b 100755 --- a/extras/build-tests/nix/build +++ b/extras/build-tests/nix/build @@ -10,10 +10,18 @@ if [ "$1" != "" ]; then BUILDCONFIG="$*" fi -export MAKE="make -j3" +if [[ "$OSTYPE" == "freebsd"* ]]; then + export MAKE="gmake -j3" +else + export MAKE="make -j3" +fi + export CPPFLAGS="-DFAKELAG_CONFIGURABLE" -extras/build-tests/nix/select-config $BUILDCONFIG +# !! skipped for now: extras/build-tests/nix/select-config $BUILDCONFIG !! +# !! temporary use this: +cp extras/build-tests/nix/configs/default ./config.settings + # Read config.settings, this makes a couple of variables available to us. . ./config.settings if [ "$SSLDIR" != "" ]; then diff --git a/extras/build-tests/nix/configs/default b/extras/build-tests/nix/configs/default index e61ef0e4c..fd66aee9e 100644 --- a/extras/build-tests/nix/configs/default +++ b/extras/build-tests/nix/configs/default @@ -8,7 +8,7 @@ LOGDIR=$HOME/unrealircd/logs CACHEDIR=$HOME/unrealircd/cache DOCDIR=$HOME/unrealircd/doc TMPDIR=$HOME/unrealircd/tmp -LIBDIR=$HOME/unrealircd/lib +PRIVATELIBDIR=$HOME/unrealircd/lib PREFIXAQ="1" MAXSENDQLENGTH="3000000" MAXCONNECTIONS="1024" diff --git a/extras/build-tests/nix/run-tests b/extras/build-tests/nix/run-tests index 596123631..e3f954f2a 100755 --- a/extras/build-tests/nix/run-tests +++ b/extras/build-tests/nix/run-tests @@ -61,10 +61,12 @@ bin/unrealircd -f irc2.conf cd - # Do cipherscan test -sleep 2 -cd ../extras/tests/tls -./tls-tests -cd - +if [[ "$OSTYPE" != "freebsd"* ]]; then + sleep 2 + cd ../extras/tests/tls + ./tls-tests + cd - +fi # Back in unrealircd-tests, run the tests! if [[ "$OSTYPE" == "darwin"* ]]; then @@ -72,3 +74,5 @@ if [[ "$OSTYPE" == "darwin"* ]]; then else rake fi + +killall -15 unrealircd || true diff --git a/extras/build-tests/windows/build.bat b/extras/build-tests/windows/build.bat index bf143b31f..82af7e963 100644 --- a/extras/build-tests/windows/build.bat +++ b/extras/build-tests/windows/build.bat @@ -1,12 +1,18 @@ -rem Build script for appveyor +echo on + +rem Temporarily hardcoded: +set TARGET=Visual Studio 2019 +set SHORTNAME=vs2017 rem Initialize Visual Studio variables if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" +if "%TARGET%" == "Visual Studio 2019" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" rem Installing tools -cinst unrar -y -cinst unzip -y -cinst innosetup -y +rem only for appveyor: +rem cinst unrar -y +rem cinst unzip -y +rem cinst innosetup -y curl -fsS -o dlltool.exe https://www.unrealircd.org/files/dev/win/dlltool.exe rem Installing UnrealIRCd dependencies @@ -17,7 +23,8 @@ curl -fsS -o SetACL.exe https://www.unrealircd.org/files/dev/win/SetACL.exe curl -fsS -o unrealircd-libraries-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-devel.zip unzip unrealircd-libraries-devel.zip -cd \projects\unrealircd +rem for appveyor: cd \projects\unrealircd +cd \users\user\worker\unreal5-w10\build rem Now the actual build call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat @@ -33,7 +40,7 @@ if %ERRORLEVEL% NEQ 0 EXIT /B 1 rem Convert c:\dev to c:\projects\unrealircd-deps rem TODO: should use environment variable in innosetup script? -sed -i "s/c:\\\\dev/c:\\\\projects\\\\unrealircd-deps/gi" src\win32\unrealinst.iss +sed -i "s/c:\\dev/c:\\projects\\unrealircd-deps/gi" src\win32\unrealinst.iss rem Build installer file "c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\win32\unrealinst.iss @@ -45,5 +52,5 @@ dir unrealircd-dev-build.exe sha256sum unrealircd-dev-build.exe rem Upload artifact -appveyor PushArtifact unrealircd-dev-build.exe -if %ERRORLEVEL% NEQ 0 EXIT /B 1 +rem appveyor PushArtifact unrealircd-dev-build.exe +rem if %ERRORLEVEL% NEQ 0 EXIT /B 1 diff --git a/include/struct.h b/include/struct.h index 9a6448eed..e423430ea 100644 --- a/include/struct.h +++ b/include/struct.h @@ -1776,14 +1776,6 @@ struct liststructprio { #define MATCH_SERVER 1 #define MATCH_HOST 2 -/* used for async dns values */ - -#define ASYNC_NONE (-1) -#define ASYNC_CLIENT 0 -#define ASYNC_CONNECT 1 -#define ASYNC_CONF 2 -#define ASYNC_SERVER 3 - /* misc variable externs */ extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[], *unrealinfo[]; diff --git a/makefile.win32 b/makefile.win32 index be5f03b85..dfd6799d4 100644 --- a/makefile.win32 +++ b/makefile.win32 @@ -146,7 +146,8 @@ INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \ ./include/msg.h ./include/setup.h ./include/dynconf.h EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \ - SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ \ + SRC/S_CONF.OBJ SRC/CONF_PREPROCESSOR.OBJ \ + SRC/FDLIST.OBJ SRC/DBUF.OBJ \ SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \ SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ \ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \ @@ -158,7 +159,8 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \ SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/SSL.OBJ \ SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MODDATA.OBJ SRC/UID.OBJ SRC/MEMPOOL.OBJ \ SRC/S_DISPATCH.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \ - SRC/API-CLICAP.OBJ SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ SRC/CRYPT_BLOWFISH.OBJ \ + SRC/API-CLICAP.OBJ SRC/API-MTAG.OBJ \ + SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ SRC/CRYPT_BLOWFISH.OBJ \ SRC/OPERCLASS.OBJ SRC/UPDCONF.OBJ SRC/CRASHREPORT.OBJ \ SRC/OPENSSL_HOSTNAME_VALIDATION.OBJ $(CURLOBJ) @@ -268,6 +270,16 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE SRC/MODULES/CAP/PLAINTEXT-POLICY.DLL \ SRC/MODULES/CAP/LINK-SECURITY.DLL \ SRC/MODULES/TKLDB.DLL + SRC/MODULES/MESSAGE-TAGS.DLL \ + SRC/MODULES/BATCH.DLL \ + SRC/MODULES/ACCOUNT-TAG.DLL \ + SRC/MODULES/LABELED-RESPONSE.DLL \ + SRC/MODULES/LINK-SECURITY.DLL \ + SRC/MODULES/MESSAGE-IDS.DLL \ + SRC/MODULES/PLAINTEXT-POLICY.DLL \ + SRC/MODULES/SERVER-TIME.DLL \ + SRC/MODULES/STS.DLL \ + SRC/MODULES/TKLDB.DLL ALL: CONF UNREALSVC.EXE UnrealIRCd.exe MODULES @@ -377,6 +389,9 @@ src/s_auth.obj: src/s_auth.c $(INCLUDES) src/s_conf.obj: src/s_conf.c $(INCLUDES) $(CC) $(CFLAGS) src/s_conf.c +src/conf_preprocessor.obj: src/conf_preprocessor.c $(INCLUDES) + $(CC) $(CFLAGS) src/conf_preprocessor.c + src/s_debug.obj: src/s_debug.c $(INCLUDES) $(CC) $(CFLAGS) src/s_debug.c @@ -490,6 +505,9 @@ src/api-command.obj: src/api-command.c $(INCLUDES) src/api-clicap.obj: src/api-clicap.c $(INCLUDES) $(CC) $(CFLAGS) src/api-clicap.c +src/api-mtag.obj: src/api-mtag.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-mtag.c + src/ssl.obj: src/ssl.c $(INCLUDES) $(CC) $(CFLAGS) src/ssl.c diff --git a/src/win32/unrealinst.iss b/src/win32/unrealinst.iss index 3e84754b4..889817424 100644 --- a/src/win32/unrealinst.iss +++ b/src/win32/unrealinst.iss @@ -39,7 +39,6 @@ Name: "fixperm"; Description: "Make UnrealIRCd folder writable by current user"; [Files] Source: "UnrealIRCd.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "UnrealIRCd.pdb"; DestDir: "{app}"; Flags: ignoreversion -Source: ".CHANGES.NEW"; DestDir: "{app}"; DestName: "CHANGES.NEW.txt";Flags: ignoreversion Source: "doc\RELEASE-NOTES"; DestDir: "{app}"; DestName: "RELEASE.NOTES.txt"; Flags: ignoreversion Source: "doc\conf\*.default.conf"; DestDir: "{app}\conf"; Flags: ignoreversion @@ -69,7 +68,6 @@ Source: "src\modules\chanmodes\*.dll"; DestDir: "{app}\modules\chanmodes"; Flags Source: "src\modules\usermodes\*.dll"; DestDir: "{app}\modules\usermodes"; Flags: ignoreversion Source: "src\modules\snomasks\*.dll"; DestDir: "{app}\modules\snomasks"; Flags: ignoreversion Source: "src\modules\extbans\*.dll"; DestDir: "{app}\modules\extbans"; Flags: ignoreversion -Source: "src\modules\cap\*.dll"; DestDir: "{app}\modules\cap"; Flags: ignoreversion Source: "c:\dev\pcre2\bin\pcre*.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "c:\dev\argon2\vs2015\build\*.dll"; DestDir: "{app}"; Flags: ignoreversion