From c5b9eaeda030638a6fbd59396f7ad61baaf70fad Mon Sep 17 00:00:00 2001 From: cyberbotx Date: Wed, 26 Nov 2008 01:41:39 +0000 Subject: Various fixes for compiling under Windows. Also updated ms_* modules to use std::vector Memo struct from earlier commit. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1797 5417fbe8-f217-4b02-8779-1006273d7864 --- include/bots.h | 2 +- include/configreader.h | 2 +- include/modules.h | 6 +- include/services.h | 18 +- include/sockets.h | 1 + include/users.h | 2 +- install.js | 156 +++---- makefile.inc.win32 | 111 +---- src/core/Makefile.win32 | 2 +- src/core/ms_cancel.c | 10 +- src/core/ms_check.c | 8 +- src/core/ms_del.c | 19 +- src/core/ms_info.c | 36 +- src/core/ms_list.c | 20 +- src/core/ms_read.c | 16 +- src/init.c | 4 + src/main.c | 2 + src/makefile.win32 | 29 +- src/misc.c | 2 + src/modulemanager.cpp | 6 +- src/modules/makefile.win32 | 6 +- src/protocol/Makefile.win32 | 4 +- src/tools/db-convert.c | 3 +- src/tools/db-merger.c | 2 + version.log | 1050 +++++++++++++++++++++---------------------- 25 files changed, 731 insertions(+), 786 deletions(-) diff --git a/include/bots.h b/include/bots.h index 73941fbc4..7b175d99f 100644 --- a/include/bots.h +++ b/include/bots.h @@ -15,7 +15,7 @@ * --lara */ -class BotInfo +class CoreExport BotInfo { public: BotInfo *next, *prev; diff --git a/include/configreader.h b/include/configreader.h index 89b28e672..d7786e11d 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -420,7 +420,7 @@ class ConfigException : public std::exception * Constructing the class using one parameter allows you to specify a path to your own configuration * file, otherwise, inspircd.conf is read. */ -class ConfigReader +class CoreExport ConfigReader { protected: /** The contents of the configuration file diff --git a/include/modules.h b/include/modules.h index 524b23e1a..fc7451b49 100644 --- a/include/modules.h +++ b/include/modules.h @@ -150,7 +150,7 @@ struct ModuleLang_ { /** Every module in Anope is actually a class. */ -CoreExport class Module +class CoreExport Module { private: bool permanent; @@ -163,7 +163,7 @@ CoreExport class Module */ std::string filename; - void *handle; + ano_module_t handle; time_t created; std::string version; std::string author; @@ -285,7 +285,7 @@ CoreExport class Module /** Used to manage modules. */ -CoreExport class ModuleManager +class CoreExport ModuleManager { public: /** Load up a list of modules. diff --git a/include/services.h b/include/services.h index ad67f1eb4..163d620fa 100644 --- a/include/services.h +++ b/include/services.h @@ -178,10 +178,18 @@ extern int strncasecmp(const char *, const char *, size_t); #define MARK_DEPRECATED #endif -/** XXX: we need to grab these from inspircd -- w00t - */ -#define DllExport -#define CoreExport +#ifdef _WIN32 +# ifdef MODULE_COMPILE +# define CoreExport __declspec(dllimport) +# define DllExport __declspec(dllexport) +# else +# define CoreExport __declspec(dllexport) +# define DllExport __declspec(dllimport) +# endif +#else +# define DllExport +# define CoreExport +#endif /** This definition is used as shorthand for the various classes * and functions needed to make a module loadable by the OS. @@ -203,7 +211,7 @@ extern int strncasecmp(const char *, const char *, size_t); } \ return TRUE; \ } \ - extern "C" DllExport void *destroy_module(y *m) \ + extern "C" DllExport void destroy_module(y *m) \ { \ delete m; \ } diff --git a/include/sockets.h b/include/sockets.h index 470ad7761..dea2de663 100644 --- a/include/sockets.h +++ b/include/sockets.h @@ -22,6 +22,7 @@ typedef SOCKET ano_socket_t; #define ano_sockgeterr() WSAGetLastError() #define ano_sockseterr(err) WSASetLastError(err) /* ano_sockstrerror in sockutil.c */ +extern char *ano_sockstrerror(int); /* ano_socksetnonb in sockutil.c */ #define ano_sockerrnonb(err) (err == WSAEINPROGRESS || err == WSAEWOULDBLOCK) #define SOCKERR_EBADF WSAENOTSOCK diff --git a/include/users.h b/include/users.h index 315a6c508..a54ad255d 100644 --- a/include/users.h +++ b/include/users.h @@ -20,7 +20,7 @@ struct u_chaninfolist { }; /* Online user and channel data. */ -class User : public Extensible +class CoreExport User : public Extensible { public: // XXX: exposing a tiny bit too much User *next, *prev; diff --git a/install.js b/install.js index 57e7cbdc2..678d3bb69 100644 --- a/install.js +++ b/install.js @@ -56,24 +56,24 @@ var installerQuestions = [ f.WriteLine("MYSQL_INC_PATH=/I $(MYSQL_INC)"); f.WriteLine("BASE_CFLAGS=/D $(BASE_CFLAGS)"); f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib"); - f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib"); + f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib"); } else { f.WriteLine("USE_MYSQL=0"); } - } + } }, - + ]; var buildPackages = [ { 'name' : 'Microsoft Visual Studio 2008 (New PSDK)', - 'libpaths' : [ + 'libpaths' : [ 'Program Files\\Microsoft Visual Studio 9.0\\VC\\Lib', 'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib' ], - 'incpaths' : [ + 'incpaths' : [ 'Program Files\\Microsoft Visual Studio 9.0\\VC\\Include', 'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Include' ], @@ -99,7 +99,7 @@ var buildPackages = [ 'additional_switches' : [ '/w' ], 'installedDrive' : 'C' }, - + { 'name' : 'Microsoft Visual Studio 2005 (New PSDK)', 'libpaths' : [ @@ -119,7 +119,7 @@ var buildPackages = [ ], 'installedDrive' : 'C' }, - { + { 'name' : 'Microsoft Visual Studio 2005 (Old PSDK)', 'libpaths' : [ 'Program Files\\Microsoft Visual Studio 8\\VC\\Lib', @@ -138,7 +138,7 @@ var buildPackages = [ ], 'installedDrive' : 'C' }, - + { 'name' : 'Microsoft Visual Studio .NET 2003', 'libpaths' : [ @@ -152,7 +152,7 @@ var buildPackages = [ 'nmake' : [ 'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Bin', '' - ], + ], 'additional_switches' : false, 'installedDrive' : 'C' }, @@ -174,10 +174,10 @@ var buildPackages = [ ], 'installedDrive' : 'C' } - - ]; - - + + ]; + + var mysqlVersions = [ { 'name' : 'MySQL 5.1', @@ -199,10 +199,10 @@ var buildPackages = [ 'incpaths' : [ 'Program Files\\MySQL\\MySQL Server 5.0\\Include' ], - 'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.0\\Bin\\libmysql.dll', + 'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.0\\Bin\\libmysql.dll', 'installedDrive' : 'C' }, - + { 'name' : 'MySQL 4.1', 'libpaths' : [ @@ -211,10 +211,10 @@ var buildPackages = [ 'incpaths' : [ 'Program Files\\MySQL\\MySQL Server 4.1\\Include' ], - 'dllfile' : 'Program Files\\MySQL\\MySQL Server 4.1\\Bin\\libmysql.dll', + 'dllfile' : 'Program Files\\MySQL\\MySQL Server 4.1\\Bin\\libmysql.dll', 'installedDrive' : 'C' - }, - + }, + { 'name' : 'MySQL 4.0', 'libpaths' : [ @@ -225,8 +225,8 @@ var buildPackages = [ ], 'dllfile' : 'Program Files\\MySQL\\MySQL Server 4.0\\Bin\\libmysql.dll', 'installedDrive' : 'C' - }, - + }, + { 'name' : 'MySQL 3.23 or older (or other default path)', 'libpaths' : [ @@ -236,11 +236,11 @@ var buildPackages = [ 'mysql\\include' ], 'dllfile' : 'mysql\\Bin\\libmysql.dll', - 'installedDrive' : 'C' + 'installedDrive' : 'C' } - ]; - + ]; + var bannerReplacements = [ { 'findtext' : /CURVER/g, @@ -250,32 +250,32 @@ var buildPackages = [ 'findtext' : / For more options type .\/Config --help/g, 'replacement' : function() { return ''; } } - ]; - - - var fso = WScript.CreateObject("Scripting.FileSystemObject"); + ]; + + + var fso = WScript.CreateObject("Scripting.FileSystemObject"); var x, y, z; - + if (fso.FileExists('.BANNER')) { var bannerStream = fso.OpenTextFile(".BANNER"); - var bannerText = bannerStream.ReadAll(); + var bannerText = bannerStream.ReadAll(); bannerStream.close(); - + for (x in bannerReplacements) { var thisReplacement = bannerReplacements[x]; bannerText = bannerText.replace(thisReplacement['findtext'], thisReplacement['replacement']); } - + WScript.Echo(bannerText+"\n"); - } + } else { WScript.Echo("ERROR: Cannot find banner file!\n"); } - + WScript.Echo("Press Enter to Begin..."); - InstallerInput(); + InstallerInput(); WScript.Echo(""); - + for (x in installerQuestions) { var thisQuestion = installerQuestions[x]; var validResponse = false; @@ -305,10 +305,10 @@ var buildPackages = [ else if (thisQuestion.store_answer(inputValue)) { validResponse = true; } - } + } WScript.Echo(""); } - + if (!findCompiler()) { WScript.Echo("\nERROR: No suitable build tools were found!"); WScript.Echo("Please ensure you have downloaded and installed a version of Visual C++ and/or PlatformSDK.\n"); @@ -320,7 +320,7 @@ var buildPackages = [ for (x in installerResponses) { var thisResponse = installerResponses[x]; WScript.Echo("\t"+x+":\t\t["+thisResponse.toUpperCase()+"]"); - } + } for (x in softwareVersions) { var thisVer = softwareVersions[x]; if (!thisVer) { @@ -328,12 +328,12 @@ var buildPackages = [ } else { WScript.Echo("\t"+x+" Version:\t\t"+thisVer.name); - } + } } WScript.Echo("\tAnope Version:\t\t\t"+anopeVersion); WScript.Echo("\nTo continue, please press Enter..."); - InstallerInput(); - + InstallerInput(); + var f = fso.OpenTextFile("Makefile.inc.win32", 2); f.WriteLine("#"); f.WriteLine("# Generated by install.js"); @@ -364,47 +364,47 @@ var buildPackages = [ f.WriteLine("CC=cl"); f.WriteLine("RC=rc"); f.WriteLine("MAKE=nmake -f Makefile.win32"); - f.WriteLine("BASE_CFLAGS=$(VC6) /O2 /MD /TP /EHsc $(INCFLAGS)"); + f.WriteLine("BASE_CFLAGS=$(VC6) /O2 /MD /TP /GR /EHsc $(INCFLAGS)"); f.WriteLine("RC_FLAGS="+path_line_rc); f.WriteLine("LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib"); - f.WriteLine("LFLAGS=$(LIBPATH)"); - + f.WriteLine("LFLAGS=$(LIBPATH)"); + for (x in installerQuestions) { var thisQuestion = installerQuestions[x]; thisQuestion.commit_config(); - } - + } + f.WriteLine("MORE_CFLAGS = /I\"../include\""); f.WriteLine("CFLAGS = /nologo $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS)"); f.close(); - + generateRC(); - + WScript.Echo("\nConfiguration Complete!"); WScript.Echo("-----------------------\n"); WScript.Echo("Anope has been configured to your system. To compile, simply type:"); WScript.Echo("nmake -f Makefile.win32\n"); WScript.Echo("If you update Anope, you should run this script again to ensure\nall available options are set.\n"); - - } + + } // Fin. - + // ----------------------------------------------------------------- - + // Functions - + function FindAnopeVersion() { if (!fso.FileExists('version.log')) { anopeVersion = 'Unknown'; return; - } - + } + var versionLog = fso.OpenTextFile("version.log"); while (!versionLog.atEndOfStream) { var versionLine = versionLog.readline(); var thisMatch = versionLine.replace('\n', ''); while (thisMatch.match(/\"/g)) { - thisMatch = thisMatch.replace('"', ''); + thisMatch = thisMatch.replace('"', ''); } versionLine = thisMatch; if (versionLine.match(/VERSION_MAJOR=/g)) { @@ -414,30 +414,30 @@ var buildPackages = [ if (versionLine.match(/VERSION_MINOR=/g)) { vMin = versionLine.replace('VERSION_MINOR=', ''); continue; - } + } if (versionLine.match(/VERSION_PATCH=/g)) { vPat = versionLine.replace('VERSION_PATCH=', ''); continue; - } + } if (versionLine.match(/VERSION_EXTRA=/g)) { vExtra = versionLine.replace('VERSION_EXTRA=', ''); continue; - } + } if (versionLine.match(/VERSION_BUILD=/g)) { vBuild = versionLine.replace('VERSION_BUILD=', ''); continue; - } + } } versionLog.close(); anopeVersion = vMaj+"."+vMin+"."+vPat+"."+vBuild+vExtra; return; } - + function InstallerInput() { var input = WScript.StdIn.Readline(); - return input; + return input; } - + function findMySQL() { WScript.Echo("\nLooking for MySQL...\n"); var installedDrive = ""; @@ -459,11 +459,11 @@ var buildPackages = [ } return false; } - + function findCompiler() { WScript.Echo("\nLooking for a suitable compiler...\n"); var noPSDK = false; - var installedDrive = ""; + var installedDrive = ""; for (x in buildPackages) { var thisPack = buildPackages[x]; WScript.Echo("Looking for: "+thisPack.name+"..."); @@ -478,7 +478,7 @@ var buildPackages = [ } if (!findFile("advapi32.lib", thisPack.libpaths)) { WScript.Echo("ERROR: Cannot find advapi32.lib - Probably missing PlatformSDK...\n"); - noPSDK = true; + noPSDK = true; continue; } if (!findFile("stdio.h", thisPack.incpaths)) { @@ -487,7 +487,7 @@ var buildPackages = [ } if (!findFile("windows.h", thisPack.incpaths)) { WScript.Echo("ERROR: Cannot find windows.h - Probably missing PlatformSDK headers...\n"); - noPSDK = true; + noPSDK = true; continue; } if (!findFile("nmake.exe", thisPack.nmake)) { @@ -497,7 +497,7 @@ var buildPackages = [ WScript.Echo("nmake.exe is also available in the PlatformSDK which can be freely downloaded from Microsoft.\n"); WScript.Echo("nmake.exe:\nhttp://download.microsoft.com/download/vc15/patch/1.52/w95/en-us/nmake15.exe\n"); break; - } + } WScript.Echo("SUCCESS: "+thisPack.name+" was found, and is complete!"); thisPack.installedDrive = installedDrive; softwareVersions.Compiler = thisPack; @@ -507,11 +507,11 @@ var buildPackages = [ WScript.Echo("Some of the build tools were detected on your computer, but the essential PlatformSDK components were missing."); WScript.Echo("You will need to download the PlatformSDK from the URL below, ensuring that the Core Windows files, and Debugging Tools are installed."); WScript.Echo("For more details on installing the PlatformSDK, visit http://windows.anope.org\n"); - WScript.Echo("PSDK: http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe\n"); + WScript.Echo("PSDK: http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe\n"); } return false; } - + function findFile(fileName, arrayOfPaths) { for (z in arrayOfPaths) { var thisPath = arrayOfPaths[z]; @@ -522,27 +522,27 @@ var buildPackages = [ } } } - return false; + return false; } - + function generateRC() { var version_matches = [ { 'find' : /VERSION_COMMA/g, 'replacement' : vMaj+","+vMin+","+vPat+","+vBuild }, - + { 'find' : /VERSION_FULL/g, 'replacement' : anopeVersion }, - + { 'find' : /VERSION_DOTTED/g, 'replacement' : vMaj+"."+vMin+"."+vPat+"."+vBuild } ]; - + var template = fso.OpenTextFile("src/win32.rc.template", 1); var output = fso.OpenTextFile("src/win32.rc", 2, true); if (!template) { @@ -553,15 +553,15 @@ var buildPackages = [ } var templateText = template.ReadAll(); template.close(); - + for (x in version_matches) { var thisVerStr = version_matches[x]; while (templateText.match(thisVerStr.find)) { templateText = templateText.replace(thisVerStr.find, thisVerStr.replacement); } } - + output.WriteLine(templateText); output.close(); } - + diff --git a/makefile.inc.win32 b/makefile.inc.win32 index 75567aa2a..f9b06845a 100644 --- a/makefile.inc.win32 +++ b/makefile.inc.win32 @@ -1,93 +1,18 @@ -# -# Anope IRC Services 1.7.9 for Windows -# -# Contact us at info@anope.org -# -# Please read COPYING and README for further details. -# -# Based on the original code of Epona by Lara. -# Based on the original code of Services by Andy Church. -# - -# Please read and edit the configurations options below. - - -# Set this to 1 to enable MySQL support -USE_MYSQL=0 -# Set this to the path where the MySQL includes can be found -#MYSQL_INC="c:\\mysql\\include\\" -# Set this to the path where the MySQL libraries can be found -#MYSQL_LIB="c:\\mysql\\lib\\opt\\" - -# Set this to 1 to enable database encryption -DB_ENCRYPTION=0 - -# If you want to change the names/locations of files/folders, you -# can do that here. -PROGRAM=anope.exe -DATDEST=data - -# If you are compiling using VC6, or get __ftol2 errors, please uncomment -# the following line: -#VC6=/QIfist - -# If you are getting errors such as 'Cannot find wsock32.lib', then change -# the following line to the path where the library files can be found. -# -# Eg: LIBPATH=C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Vc7\\lib -# -LIBPATH= - -# If you edited the line above, uncomment the next line. -#LFLAGS=/LIBPATH:"$(LIBPATH)" - - -############################################################### -#Don't touch anything below unless you know what you are doing# -############################################################### - - -CC=cl -RC=rc -MAKE=nmake -f Makefile.win32 -BASE_CFLAGS=/O2 /MD -LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib -ELIBS= -MLIBS= - -!IF $(USE_MYSQL) == 1 -!IF $(MYSQL_LIB) != "" -LIBS=$(LIBS) /LIBPATH:$(MYSQL_LIB) -MYSQL_LIB_PATH=/LIBPATH:$(MYSQL_LIB) -!ENDIF -!IF $(MYSQL_INC) != "" -BASE_CFLAGS=$(BASE_CFLAGS) /I $(MYSQL_INC) -MYSQL_INC_PATH=/I $(MYSQL_INC) -!ENDIF -BASE_CFLAGS=$(BASE_CFLAGS) - -MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) \ -/DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib - -LIBS=$(LIBS) libmysql.lib zlib.lib -!ENDIF - -!IF $(DB_ENCRYPTION) == 1 -BASE_CFLAGS=/D USE_ENCRYPTION /D ENCRYPT_MD5 $(BASE_CFLAGS) -!ENDIF - -# Note that changing any of these options (or, in fact, anything in this -# file) will automatically cause a full rebuild of Services. - -# Compilation options: -# -DCLEAN_COMPILE Attempt to compile without any warnings (note that -# this may reduce performance) - -CDEFS = - -# Add any extra flags you want here. The default line enables warnings and -# debugging symbols on GCC. If you have a non-GCC compiler, you may want -# to comment it out or change it. - -MORE_CFLAGS = /I"../include" -CFLAGS = /nologo $(VC6) $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS) +# +# Generated by install.js +# +LIBPATH=/LIBPATH:"C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Lib" /LIBPATH:"C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\Lib" +INCFLAGS=/I "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Include" /I "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\Include" +VERSION=1.9.0.0-git +PROGRAM=anope.exe +DATDEST=data +CC=cl +RC=rc +MAKE=nmake -f Makefile.win32 +BASE_CFLAGS=$(VC6) /O2 /MD /TP /GR /EHsc $(INCFLAGS) +RC_FLAGS=/i "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Include" /i "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\Include" +LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib +LFLAGS=$(LIBPATH) +USE_MYSQL=0 +MORE_CFLAGS = /I"../include" +CFLAGS = /nologo $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS) diff --git a/src/core/Makefile.win32 b/src/core/Makefile.win32 index f313fe862..b005fd1de 100644 --- a/src/core/Makefile.win32 +++ b/src/core/Makefile.win32 @@ -3,7 +3,7 @@ include ../../Makefile.inc.win32 SRCS=bs_act.c bs_assign.c bs_badwords.c bs_bot.c bs_botlist.c bs_fantasy.c bs_fantasy_kick.c bs_fantasy_kickban.c bs_fantasy_owner.c bs_fantasy_seen.c bs_help.c bs_info.c bs_kick.c bs_say.c bs_set.c bs_unassign.c cs_access.c cs_akick.c cs_ban.c cs_clear.c cs_drop.c cs_forbid.c cs_getkey.c cs_getpass.c cs_help.c cs_identify.c cs_info.c cs_invite.c cs_kick.c cs_list.c cs_logout.c cs_modes.c cs_register.c cs_sendpass.c cs_set.c cs_status.c cs_suspend.c cs_topic.c cs_xop.c enc_none.c enc_md5.c enc_old.c he_help.c hs_del.c hs_delall.c hs_group.c hs_help.c hs_list.c hs_off.c hs_on.c hs_set.c hs_setall.c ms_cancel.c ms_check.c ms_del.c ms_help.c ms_info.c ms_list.c ms_read.c ms_rsend.c ms_send.c ms_sendall.c ms_set.c ms_staff.c ns_access.c ns_alist.c ns_drop.c ns_forbid.c ns_getemail.c ns_getpass.c ns_ghost.c ns_group.c ns_help.c ns_identify.c ns_info.c ns_list.c ns_logout.c ns_recover.c ns_register.c ns_release.c ns_sendpass.c ns_set.c ns_saset.c ns_status.c ns_suspend.c ns_update.c os_admin.c os_akill.c os_chankill.c os_chanlist.c os_clearmodes.c os_defcon.c os_global.c os_help.c os_ignore.c os_jupe.c os_kick.c os_logonnews.c os_mode.c os_modinfo.c os_modlist.c os_modload.c os_modunload.c os_noop.c os_oline.c os_oper.c os_opernews.c os_quit.c os_randomnews.c os_raw.c os_reload.c os_restart.c os_session.c os_set.c os_sgline.c os_shutdown.c os_sqline.c os_staff.c os_stats.c os_svsnick.c os_szline.c os_umode.c os_update.c os_userlist.c OBJECTS= $(SRCS:.c=.dll) CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include" -LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /export:AnopeFini /VERSION:$(VERSION) +LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module /VERSION:$(VERSION) all: $(OBJECTS) diff --git a/src/core/ms_cancel.c b/src/core/ms_cancel.c index c7a5402d0..715481777 100644 --- a/src/core/ms_cancel.c +++ b/src/core/ms_cancel.c @@ -76,11 +76,11 @@ int do_cancel(User * u) } else { int i; - for (i = mi->memocount - 1; i >= 0; i--) { - if ((mi->memos[i].flags & MF_UNREAD) - && !stricmp(mi->memos[i].sender, u->na->nc->display) - && (!(mi->memos[i].flags & MF_NOTIFYS))) { - delmemo(mi, mi->memos[i].number); + for (i = mi->memos.size() - 1; i >= 0; i--) { + if ((mi->memos[i]->flags & MF_UNREAD) + && !stricmp(mi->memos[i]->sender, u->na->nc->display) + && (!(mi->memos[i]->flags & MF_NOTIFYS))) { + delmemo(mi, mi->memos[i]->number); notice_lang(s_MemoServ, u, MEMO_CANCELLED, name); return MOD_CONT; } diff --git a/src/core/ms_check.c b/src/core/ms_check.c index 383291635..e656d5e3b 100644 --- a/src/core/ms_check.c +++ b/src/core/ms_check.c @@ -80,15 +80,15 @@ int do_memocheck(User * u) /* Okay, I know this looks strange but we wanna get the LAST memo, so we have to loop backwards */ - for (i = (mi->memocount - 1); i >= 0; i--) { - if (!stricmp(mi->memos[i].sender, u->na->nc->display)) { + for (i = (mi->memos.size() - 1); i >= 0; i--) { + if (!stricmp(mi->memos[i]->sender, u->na->nc->display)) { found = 1; /* Yes, we've found the memo */ - tm = localtime(&mi->memos[i].time); + tm = localtime(&mi->memos[i]->time); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_DATE_TIME_FORMAT, tm); - if (mi->memos[i].flags & MF_UNREAD) + if (mi->memos[i]->flags & MF_UNREAD) notice_lang(s_MemoServ, u, MEMO_CHECK_NOT_READ, na->nick, timebuf); else diff --git a/src/core/ms_del.c b/src/core/ms_del.c index fb620a013..0d0e3fe07 100644 --- a/src/core/ms_del.c +++ b/src/core/ms_del.c @@ -88,7 +88,7 @@ int do_del(User * u) || (!isdigit(*numstr) && stricmp(numstr, "ALL") != 0 && stricmp(numstr, "LAST") != 0)) { syntax_error(s_MemoServ, u, "DEL", MEMO_DEL_SYNTAX); - } else if (mi->memocount == 0) { + } else if (mi->memos.size() == 0) { if (chan) notice_lang(s_MemoServ, u, MEMO_X_HAS_NO_MEMOS, chan); else @@ -128,18 +128,17 @@ int do_del(User * u) } } else if (stricmp(numstr, "LAST") == 0) { /* Delete last memo. */ - for (i = 0; i < mi->memocount; i++) - last = mi->memos[i].number; + for (i = 0; i < mi->memos.size(); i++) + last = mi->memos[i]->number; delmemo(mi, last); notice_lang(s_MemoServ, u, MEMO_DELETED_ONE, last); } else { /* Delete all memos. */ - for (i = 0; i < mi->memocount; i++) { - delete [] mi->memos[i].text; + for (i = 0; i < mi->memos.size(); i++) { + delete [] mi->memos[i]->text; + delete mi->memos[i]; } - free(mi->memos); - mi->memos = NULL; - mi->memocount = 0; + mi->memos.clear(); if (chan) notice_lang(s_MemoServ, u, MEMO_CHAN_DELETED_ALL, chan); else @@ -147,8 +146,8 @@ int do_del(User * u) } /* Reset the order */ - for (i = 0; i < mi->memocount; i++) - mi->memos[i].number = i + 1; + for (i = 0; i < mi->memos.size(); i++) + mi->memos[i]->number = i + 1; } return MOD_CONT; } diff --git a/src/core/ms_info.c b/src/core/ms_info.c index 501730416..a519b0beb 100644 --- a/src/core/ms_info.c +++ b/src/core/ms_info.c @@ -98,31 +98,31 @@ int do_info(User * u) if (name && (ci || na->nc != u->na->nc)) { - if (!mi->memocount) { + if (mi->memos.empty()) { notice_lang(s_MemoServ, u, MEMO_INFO_X_NO_MEMOS, name); - } else if (mi->memocount == 1) { - if (mi->memos[0].flags & MF_UNREAD) + } else if (mi->memos.size() == 1) { + if (mi->memos[0]->flags & MF_UNREAD) notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMO_UNREAD, name); else notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMO, name); } else { int count = 0, i; - for (i = 0; i < mi->memocount; i++) { - if (mi->memos[i].flags & MF_UNREAD) + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->flags & MF_UNREAD) count++; } - if (count == mi->memocount) + if (count == mi->memos.size()) notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMOS_ALL_UNREAD, name, count); else if (count == 0) notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMOS, name, - mi->memocount); + mi->memos.size()); else if (count == 1) notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMOS_ONE_UNREAD, - name, mi->memocount); + name, mi->memos.size()); else notice_lang(s_MemoServ, u, MEMO_INFO_X_MEMOS_SOME_UNREAD, - name, mi->memocount, count); + name, mi->memos.size(), count); } if (mi->memomax == 0) { if (hardmax) @@ -161,30 +161,30 @@ int do_info(User * u) } else { /* !name || (!ci || na->nc == u->na->nc) */ - if (!mi->memocount) { + if (mi->memos.empty()) { notice_lang(s_MemoServ, u, MEMO_INFO_NO_MEMOS); - } else if (mi->memocount == 1) { - if (mi->memos[0].flags & MF_UNREAD) + } else if (mi->memos.size() == 1) { + if (mi->memos[0]->flags & MF_UNREAD) notice_lang(s_MemoServ, u, MEMO_INFO_MEMO_UNREAD); else notice_lang(s_MemoServ, u, MEMO_INFO_MEMO); } else { int count = 0, i; - for (i = 0; i < mi->memocount; i++) { - if (mi->memos[i].flags & MF_UNREAD) + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->flags & MF_UNREAD) count++; } - if (count == mi->memocount) + if (count == mi->memos.size()) notice_lang(s_MemoServ, u, MEMO_INFO_MEMOS_ALL_UNREAD, count); else if (count == 0) - notice_lang(s_MemoServ, u, MEMO_INFO_MEMOS, mi->memocount); + notice_lang(s_MemoServ, u, MEMO_INFO_MEMOS, mi->memos.size()); else if (count == 1) notice_lang(s_MemoServ, u, MEMO_INFO_MEMOS_ONE_UNREAD, - mi->memocount); + mi->memos.size()); else notice_lang(s_MemoServ, u, MEMO_INFO_MEMOS_SOME_UNREAD, - mi->memocount, count); + mi->memos.size(), count); } if (mi->memomax == 0) { diff --git a/src/core/ms_list.c b/src/core/ms_list.c index 148433ff0..c8937134d 100644 --- a/src/core/ms_list.c +++ b/src/core/ms_list.c @@ -83,7 +83,7 @@ int do_list(User * u) } if (param && !isdigit(*param) && stricmp(param, "NEW") != 0) { syntax_error(s_MemoServ, u, "LIST", MEMO_LIST_SYNTAX); - } else if (mi->memocount == 0) { + } else if (mi->memos.size() == 0) { if (chan) notice_lang(s_MemoServ, u, MEMO_X_HAS_NO_MEMOS, chan); else @@ -95,11 +95,11 @@ int do_list(User * u) mi, &sent_header, chan); } else { if (param) { - for (i = 0, m = mi->memos; i < mi->memocount; i++, m++) { - if (m->flags & MF_UNREAD) + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->flags & MF_UNREAD) break; } - if (i == mi->memocount) { + if (i == mi->memos.size()) { if (chan) notice_lang(s_MemoServ, u, MEMO_X_HAS_NO_NEW_MEMOS, chan); @@ -108,8 +108,8 @@ int do_list(User * u) return MOD_CONT; } } - for (i = 0, m = mi->memos; i < mi->memocount; i++, m++) { - if (param && !(m->flags & MF_UNREAD)) + for (i = 0; i < mi->memos.size(); i++) { + if (param && !(mi->memos[i]->flags & MF_UNREAD)) continue; list_memo(u, i, mi, &sent_header, param != NULL, chan); } @@ -132,8 +132,8 @@ int list_memo_callback(User * u, int num, va_list args) const char *chan = va_arg(args, const char *); int i; - for (i = 0; i < mi->memocount; i++) { - if (mi->memos[i].number == num) + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->number == num) break; } /* Range checking done by list_memo() */ @@ -156,7 +156,7 @@ int list_memo(User * u, int index, MemoInfo * mi, int *sent_header, int newi, co char timebuf[64]; struct tm tm; - if (index < 0 || index >= mi->memocount) + if (index < 0 || index >= mi->memos.size()) return 0; if (!*sent_header) { if (chan) { @@ -171,7 +171,7 @@ int list_memo(User * u, int index, MemoInfo * mi, int *sent_header, int newi, co notice_lang(s_MemoServ, u, MEMO_LIST_HEADER); *sent_header = 1; } - m = &mi->memos[index]; + m = mi->memos[index]; tm = *localtime(&m->time); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_DATE_TIME_FORMAT, &tm); diff --git a/src/core/ms_read.c b/src/core/ms_read.c index 07f293156..2760beec7 100644 --- a/src/core/ms_read.c +++ b/src/core/ms_read.c @@ -88,7 +88,7 @@ int do_read(User * u) && num <= 0)) { syntax_error(s_MemoServ, u, "READ", MEMO_READ_SYNTAX); - } else if (mi->memocount == 0) { + } else if (mi->memos.empty()) { if (chan) notice_lang(s_MemoServ, u, MEMO_X_HAS_NO_MEMOS, chan); else @@ -99,8 +99,8 @@ int do_read(User * u) if (stricmp(numstr, "NEW") == 0) { int readcount = 0; - for (i = 0; i < mi->memocount; i++) { - if (mi->memos[i].flags & MF_UNREAD) { + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->flags & MF_UNREAD) { read_memo(u, i, mi, chan); readcount++; } @@ -113,7 +113,7 @@ int do_read(User * u) notice_lang(s_MemoServ, u, MEMO_HAVE_NO_NEW_MEMOS); } } else if (stricmp(numstr, "LAST") == 0) { - for (i = 0; i < mi->memocount - 1; i++); + for (i = 0; i < mi->memos.size() - 1; i++); read_memo(u, i, mi, chan); } else { /* number[s] */ if (!process_numlist(numstr, &count, read_memo_callback, u, @@ -143,8 +143,8 @@ int read_memo_callback(User * u, int num, va_list args) const char *chan = va_arg(args, const char *); int i; - for (i = 0; i < mi->memocount; i++) { - if (mi->memos[i].number == num) + for (i = 0; i < mi->memos.size(); i++) { + if (mi->memos[i]->number == num) break; } /* Range check done in read_memo */ @@ -165,9 +165,9 @@ int read_memo(User * u, int index, MemoInfo * mi, const char *chan) char timebuf[64]; struct tm tm; - if (index < 0 || index >= mi->memocount) + if (index < 0 || index >= mi->memos.size()) return 0; - m = &mi->memos[index]; + m = mi->memos[index]; tm = *localtime(&m->time); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_DATE_TIME_FORMAT, &tm); diff --git a/src/init.c b/src/init.c index ac1837fb9..1168a4515 100644 --- a/src/init.c +++ b/src/init.c @@ -317,7 +317,11 @@ static void write_pidfile(void) pidfile = fopen(PIDFilename, "w"); if (pidfile) { +#ifdef _WIN32 + fprintf(pidfile, "%d\n", static_cast(GetCurrentProcessId())); +#else fprintf(pidfile, "%d\n", static_cast(getpid())); +#endif fclose(pidfile); atexit(remove_pidfile); } else { diff --git a/src/main.c b/src/main.c index 53bebd298..69b887140 100644 --- a/src/main.c +++ b/src/main.c @@ -48,6 +48,8 @@ int protocoldebug = 0; /* -protocoldebug */ #ifdef _WIN32 char *binary_dir; /* Used to store base path for win32 restart */ +#include +#define execve _execve #endif /* Set to 1 if we are to quit */ diff --git a/src/makefile.win32 b/src/makefile.win32 index 718948d88..8490ee507 100644 --- a/src/makefile.win32 +++ b/src/makefile.win32 @@ -6,9 +6,9 @@ # Please read COPYING and README for further details. # # Based on the original code of Epona by Lara. -# Based on the original code of Services by Andy Church. -# -# $Id:$ +# Based on the original code of Services by Andy Church. +# +# $Id:$ # # Source Makefile @@ -19,19 +19,19 @@ include ../Makefile.inc.win32 OBJS = actions.obj base64.obj bots.obj botserv.obj channels.obj chanserv.obj commands.obj compat.obj \ config.obj datafiles.obj encrypt.obj events.obj helpserv.obj hostserv.obj \ - init.obj ircd.obj language.obj list.obj log.obj mail.obj main.obj memory.obj \ + init.obj ircd.obj language.obj log.obj mail.obj main.obj memory.obj \ memoserv.obj messages.obj misc.obj modules.obj mod_version.obj news.obj nickserv.obj operserv.obj \ process.obj send.obj servers.obj sessions.obj slist.obj sockutil.obj \ - timeout.obj users.obj module.obj modulemanager.obj - + timeout.obj users.obj module.obj modulemanager.obj hashcomp.obj + SRCS = actions.c base64.c botserv.c bots.cpp channels.c chanserv.c commands.c compat.c \ config.c datafiles.c encrypt.c events.c helpserv.c hostserv.c init.c ircd.c \ - language.c list.c log.c mail.c main.c memory.c memoserv.c messages.c misc.c \ + language.c log.c mail.c main.c memory.c memoserv.c messages.c misc.c \ modules.c mod_version.c news.c nickserv.c operserv.c process.c send.c servers.obj sessions.c \ - slist.c sockutil.c timeout.c users.c module.cpp modulemanager.cpp + slist.c sockutil.c timeout.c users.c module.cpp modulemanager.cpp hashcomp.cpp ########################################################################### - + .c.obj: $(CC) $(CFLAGS) -c $< @@ -46,9 +46,9 @@ $(PROGRAM): $(OBJS) win32.res spotless: -@erase *.obj *.exe *.exp *.lib tools\*.exe *.res win32.rc *.manifest - + install: - -@copy anope.exe ..\anope.exe + -@copy anope.exe ..\anope.exe -@mkdir ..\$(DATDEST)\bin -@copy bin\* ..\$(DATDEST)\bin -@copy anope.exe.manifest ..\anope.exe.manifest @@ -56,9 +56,9 @@ install: win32.res: win32.rc $(RC) /l 0x409 $(RC_FLAGS) /fowin32.res win32.rc - + ########################################################################### - + # Catch any changes in compilation options at the top of this file $(OBJS): @@ -76,6 +76,7 @@ encrypt.obj: encrypt.c ..\include\encrypt.h ..\include\sysconf.h events.obj: events.c ..\include\modules.h ..\include\language.h ..\include\version.h init.obj: init.c ..\include\services.h ircd.obj: ircd.c ..\include\services.h +hashcomp.obj: hashcomp.cpp ..\include\services.h ..\include\hashcomp.h hostserv.obj: hostserv.c ..\include\services.h ..\include\pseudo.h language.obj: language.c ..\include\services.h ..\include\language.h list.obj: list.c ..\include\services.h @@ -110,7 +111,7 @@ vsnprintf.obj: vsnprintf.c ..\include\extern.h: ..\include\slist.h ..\include\pseudo.h: ..\include\commands.h ..\include\language.h ..\include\timeout.h ..\include\encrypt.h ..\include\datafiles.h ..\include\slist.h - + ########################################################################### FRC: diff --git a/src/misc.c b/src/misc.c index ccdfeaf15..ab164800a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1336,8 +1336,10 @@ char *GetWindowsVersion(void) extra = sstrdup("Datacenter Edition"); } else if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) { extra = sstrdup("Enterprise Edition"); +#ifdef VER_SUITE_COMPUTE_SERVER } else if (osvi.wSuiteMask & VER_SUITE_COMPUTE_SERVER) { extra = sstrdup("Compute Cluster Edition"); +#endif } else if (osvi.wSuiteMask == VER_SUITE_BLADE) { extra = sstrdup("Web Edition"); } else { diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index f584fe3ff..7ffe35a7a 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -54,7 +54,7 @@ static int moduleCopyFile(const char *name, const char *output) if ((srcfp = mkstemp(const_cast(output))) == -1) return MOD_ERR_FILE_IO; #else - if (!mktemp(output)) + if (!mktemp(const_cast(output))) return MOD_ERR_FILE_IO; #endif @@ -152,7 +152,7 @@ int ModuleManager::LoadModule(const std::string &modname, User * u) ano_modclearerr(); - void *handle = ano_modopen(pbuf.c_str()); + ano_module_t handle = ano_modopen(pbuf.c_str()); if (handle == NULL && (err = ano_moderr()) != NULL) { alog("%s", err); @@ -253,7 +253,7 @@ void ModuleManager::DeleteModule(Module *m) { const char *err; void (*destroy_func)(Module *m); - void *handle; + ano_module_t handle; if (!m || !m->handle) /* check m is least possibly valid */ { diff --git a/src/modules/makefile.win32 b/src/modules/makefile.win32 index 038ff25ba..fffa51d74 100644 --- a/src/modules/makefile.win32 +++ b/src/modules/makefile.win32 @@ -3,7 +3,7 @@ include ./Makefile.inc.win32 OBJECTS= $(SRCS:.c=.dll) CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include" -LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /export:AnopeFini +LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module all: $(OBJECTS) subs @@ -11,7 +11,7 @@ distclean: clean spotless .c.dll: $(CC) $(CFLAGS) $(IRCTYPE) $< ..\mod_version.c $(LFLAGS) - + subs: @for %i in ( $(SUBS) ); do \ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) && cd .. @@ -29,7 +29,7 @@ spotless: clean subs-spotless subs-spotless: @for %i in ( $(SUBS) ); do \ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) spotless && cd .. - + install: -@mkdir ..\..\$(DATDEST)\modules -@mkdir ..\..\$(DATDEST)\modules\runtime diff --git a/src/protocol/Makefile.win32 b/src/protocol/Makefile.win32 index da1f018c4..aec850976 100644 --- a/src/protocol/Makefile.win32 +++ b/src/protocol/Makefile.win32 @@ -2,10 +2,10 @@ include ../../Makefile.inc.win32 SRCS=bahamut.c inspircd11.c inspircd12.cpp \ ratbox.c unreal32.c +OBJECTS=bahamut.dll inspircd11.dll inspircd12.dll ratbox.dll unreal32.dll -OBJECTS= $(SRCS:.c=.dll) CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include" -LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /VERSION:$(VERSION) +LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module /VERSION:$(VERSION) all: $(OBJECTS) diff --git a/src/tools/db-convert.c b/src/tools/db-convert.c index d61e9c417..7093f2960 100644 --- a/src/tools/db-convert.c +++ b/src/tools/db-convert.c @@ -27,6 +27,7 @@ #else #include "sysconf.h" #include +#include #endif #include @@ -1079,7 +1080,7 @@ dbFILE *open_db_write(const char *service, const char *filename, int version) #ifndef _WIN32 fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0666); #else - fd = open(filename, O_WRONLY | O_CREAT | O_EXCL | _O_BINARY, 0666); + fd = _open(filename, O_WRONLY | O_CREAT | O_EXCL | _O_BINARY, 0666); #endif f->fp = fdopen(fd, "wb"); /* will fail and return NULL if fd < 0 */ if (!f->fp || !write_file_version(f, version)) { diff --git a/src/tools/db-merger.c b/src/tools/db-merger.c index c141e8382..81d03bba8 100644 --- a/src/tools/db-merger.c +++ b/src/tools/db-merger.c @@ -57,6 +57,8 @@ #else #include "sysconf.h" #include +#include +#define open _open #endif /* Some SUN fixs */ diff --git a/version.log b/version.log index 8ed81282d..3d79324a8 100644 --- a/version.log +++ b/version.log @@ -1,4 +1,4 @@ -# (C) 2003-2008 Anope +# (C) 2003-2008 Anope # Contact us at info@anope.org # # Please read COPYING and README for furhter details. @@ -9,12 +9,12 @@ VERSION_MAJOR="1" VERSION_MINOR="9" VERSION_PATCH="0" VERSION_EXTRA="-git" -VERSION_BUILD="" +VERSION_BUILD="0" # $Log$ # # BUILD : 1.8.0 (1489) -# BUGS : +# BUGS : # NOTES : Anope 1.8.0-rc1 # # BUILD : 1.7.24 (1488) @@ -22,35 +22,35 @@ VERSION_BUILD="" # NOTES : Updated russian language file. Update provided by Kein. # # BUILD : 1.7.24 (1487) -# BUGS : +# BUGS : # NOTES : Updated polish language file. Update provided by Syzmek. # # BUILD : 1.7.24 (1486) -# BUGS : +# BUGS : # NOTES : Fixed Changes from my last commit. # # BUILD : 1.7.24 (1485) -# BUGS : +# BUGS : # NOTES : Update Anope Credits # # BUILD : 1.7.24 (1484) -# BUGS : +# BUGS : # NOTES : Development Framework # # BUILD : 1.7.24 (1483) -# BUGS : +# BUGS : # NOTES : 1.7.24 Release # # BUILD : 1.7.23 (1482) -# BUGS : -# NOTES : Added entry to the FAQ regarding anopes max nicklength. +# BUGS : +# NOTES : Added entry to the FAQ regarding anopes max nicklength. # # BUILD : 1.7.23 (1481) -# BUGS : 957 +# BUGS : 957 # NOTES : Added a warning message in the logs regarding the combined usage of MySQL and skeleton mode. # # BUILD : 1.7.23 (1480) -# BUGS : +# BUGS : # NOTES : Updated german language file. Update provided by Han`. # # BUILD : 1.7.23 (1479) @@ -58,99 +58,99 @@ VERSION_BUILD="" # NOTES : Fixed minor German langfile errors. # # BUILD : 1.7.23 (1478) -# BUGS : +# BUGS : # NOTES : updated langfile for pl.l # # BUILD : 1.7.23 (1477) -# BUGS : 956 -# NOTES : Fixed OS STATS missing HostServ and showing disabled optional client(s). +# BUGS : 956 +# NOTES : Fixed OS STATS missing HostServ and showing disabled optional client(s). # # BUILD : 1.7.23 (1476) -# BUGS : -# NOTES : Fixed fuckup in earlier commit message... No more multitasking for me.. +# BUGS : +# NOTES : Fixed fuckup in earlier commit message... No more multitasking for me.. # # BUILD : 1.7.23 (1475) -# BUGS : -# NOTES : Fixed compile warning in nickserv.c. +# BUGS : +# NOTES : Fixed compile warning in nickserv.c. # # BUILD : 1.7.23 (1474) -# BUGS : -# NOTES : Added missing SVN tag to version string. +# BUGS : +# NOTES : Added missing SVN tag to version string. # # BUILD : 1.7.23 (1473) -# BUGS : 940 +# BUGS : 940 # NOTES : Rewrote MySQL password storing and loading to properly handle hashes. Note that Anope should not be started with UseRDB if the MySQL DB was dumped by an older version. # # BUILD : 1.7.23 (1472) -# BUGS : -# NOTES : Fixed language error in SASET AUTOOP help. +# BUGS : +# NOTES : Fixed language error in SASET AUTOOP help. # # BUILD : 1.7.23 (1471) -# BUGS : -# NOTES : Development Framework +# BUGS : +# NOTES : Development Framework # # BUILD : 1.7.23 (1469) -# BUGS : +# BUGS : # NOTES : 1.7.23b Release (fixes encrypted nick.db issue on .23) # # BUILD : 1.7.23 (1468) -# BUGS : -# NOTES : Fixed fuckup in nickserv.c. Passwords should not be encrypted when loading an old nick.db, only when loading pre-nick.db. +# BUGS : +# NOTES : Fixed fuckup in nickserv.c. Passwords should not be encrypted when loading an old nick.db, only when loading pre-nick.db. # # BUILD : 1.7.23 (1467) -# BUGS : -# NOTES : Development Framework +# BUGS : +# NOTES : Development Framework # # BUILD : 1.7.23 (1465) -# BUGS : +# BUGS : # NOTES : Anope 1.7.23 Release # # BUILD : 1.7.22 (1464) -# BUGS : 951 +# BUGS : 951 # NOTES : Applied patch by katsklaw to add missing optional parameters to OS MODLIST help. # # BUILD : 1.7.22 (1463) -# BUGS : 941 +# BUGS : 941 # NOTES : Applied patches by chaz and katsklaw to fix issues with CS LOGOUT documentation. # # BUILD : 1.7.22 (1462) -# BUGS : 940 +# BUGS : 940 # NOTES : Fixed a bug in the database system causing certain nickserv password hashes to be stored incorrectly. Note that THIS BREAKS BACKWARDS COMPATIBILITY !!! As of now nick.db is no longer backwards compatible. # # BUILD : 1.7.22 (1461) -# BUGS : -# NOTES : Fixed possible compile warning in os_ignore_db. +# BUGS : +# NOTES : Fixed possible compile warning in os_ignore_db. # # BUILD : 1.7.22 (1460) -# BUGS : 948 +# BUGS : 948 # NOTES : Corrected some errors in the OS IGNORE help. # # BUILD : 1.7.22 (1459) -# BUGS : 948 +# BUGS : 948 # NOTES : Added a supported module to provide a database back-end for OS IGNORE. # # BUILD : 1.7.22 (1458) -# BUGS : 950 +# BUGS : 950 # NOTES : Fixed an error in the help docs on SASET. Patch provided by chaz. # # BUILD : 1.7.22 (1457) -# BUGS : -# NOTES : Forgot Changes log. Autoformatters during commit ought to die.. last try to get process.c properly formatted in SVN. +# BUGS : +# NOTES : Forgot Changes log. Autoformatters during commit ought to die.. last try to get process.c properly formatted in SVN. # # BUILD : 1.7.22 (1456) -# BUGS : 948 -# NOTES : We now support real permanent ignoring. When ignoring a nick we now also use the hostmask if the user exists. +# BUGS : 948 +# NOTES : We now support real permanent ignoring. When ignoring a nick we now also use the hostmask if the user exists. # # BUILD : 1.7.22 (1455) -# BUGS : 943 +# BUGS : 943 # NOTES : Applied patch by katsklaw to fix a bug in HELP OPER. # # BUILD : 1.7.22 (1454) -# BUGS : -# NOTES : Applied patch by w00t to fix math bug in strnrepl(). +# BUGS : +# NOTES : Applied patch by w00t to fix math bug in strnrepl(). # # BUILD : 1.7.22 (1453) -# BUGS : 947 +# BUGS : 947 # NOTES : Fixed a buffer overflow in enc_sha1. # # BUILD : 1.7.22 (1452) @@ -158,83 +158,83 @@ VERSION_BUILD="" # NOTES : Updated NSIS Build script and added anope.bat to properly remove windows menus after uninstall. Provided by chaz. # # BUILD : 1.7.22 (1451) -# BUGS : 942 +# BUGS : 942 # NOTES : We now enforce UnRestrictSAdmin on Unreal and InspIRCd. # # BUILD : 1.7.22 (1450) -# BUGS : -# NOTES : Fixed a number of remaining buffer overflows in NS and CS not addressed by previous commit. +# BUGS : +# NOTES : Fixed a number of remaining buffer overflows in NS and CS not addressed by previous commit. # # BUILD : 1.7.22 (1449) -# BUGS : -# NOTES : Applied a patch by w00t to fix possible buffer overflows in NS/CS REGISTER. As of now the max pass length is 31 instead of 32 characters. +# BUGS : +# NOTES : Applied a patch by w00t to fix possible buffer overflows in NS/CS REGISTER. As of now the max pass length is 31 instead of 32 characters. # # BUILD : 1.7.22 (1448) -# BUGS : -# NOTES : Applied patch by w00t to remove a pointer comparison on a non-ptr in cs_clear.c +# BUGS : +# NOTES : Applied patch by w00t to remove a pointer comparison on a non-ptr in cs_clear.c # # BUILD : 1.7.22 (1447) -# BUGS : +# BUGS : # NOTES : Applied patch by w00t to enable UMODE in insp # # BUILD : 1.7.22 (1446) -# BUGS : -# NOTES : Removed password truncating and fixed a crashbug in enc_none. This build still crashes on CS GETPASS on some systems though. Someone take a look at termination of ci->founderpass pls. +# BUGS : +# NOTES : Removed password truncating and fixed a crashbug in enc_none. This build still crashes on CS GETPASS on some systems though. Someone take a look at termination of ci->founderpass pls. # # BUILD : 1.7.22 (1445) -# BUGS : -# NOTES : Added missing entries for .22 release to Changes.lang. +# BUGS : +# NOTES : Added missing entries for .22 release to Changes.lang. # # BUILD : 1.7.22 (1444) -# BUGS : +# BUGS : # NOTES : Fixed a typo in modules.c introduced in the last commit # # BUILD : 1.7.22 (1442) -# BUGS : +# BUGS : # NOTES : Development Framework # # BUILD : 1.7.22 (1440) -# BUGS : +# BUGS : # NOTES : Anope 1.7.22 release # # BUILD : 1.7.21 (1439) -# BUGS : -# NOTES : Fixed compiling on windows. We needed access to do_help_limited(). +# BUGS : +# NOTES : Fixed compiling on windows. We needed access to do_help_limited(). # # BUILD : 1.7.21 (1438) -# BUGS : -# NOTES : Updated docs regarding myself and CIDR channellists. +# BUGS : +# NOTES : Updated docs regarding myself and CIDR channellists. # # BUILD : 1.7.21 (1437) -# BUGS : 939 +# BUGS : 939 # NOTES : Applied patch by chaz to fix compile warning in os_clearmodes.c. # # BUILD : 1.7.21 (1436) -# BUGS : 937 +# BUGS : 937 # NOTES : Rewrote CLEAR OPS to have it send correct mode changes on all ircds. # # BUILD : 1.7.21 (1435) -# BUGS : 935 +# BUGS : 935 # NOTES : AKICK now respects ChanServ PEACE. Checks are performed before adding a nick/mask. # # BUILD : 1.7.21 (1434) -# BUGS : 937 +# BUGS : 937 # NOTES : Applied patch by Jobe to fix a bug with ratbox RESV caused by incorrect client introduction order. # # BUILD : 1.7.21 (1433) -# BUGS : +# BUGS : # NOTES : Help now handled by respective modules. Should fix compiling on windows. # # BUILD : 1.7.21 (1432) -# BUGS : +# BUGS : # NOTES : The newscount in help is now handled by modules instead of os_help. # # BUILD : 1.7.21 (1431) -# BUGS : +# BUGS : # NOTES : Fixes possible mismatches in entry_match() introduced in previous commit. # # BUILD : 1.7.21 (1430) -# BUGS : +# BUGS : # NOTES : Fixes a possible segfault in entry_match. # # BUILD : 1.7.21 (1429) @@ -243,27 +243,27 @@ VERSION_BUILD="" # # BUILD : 1.7.21 (1428) # BUGS : 930 -# NOTES : Rewrote the ignore system to handle both nicks and masks +# NOTES : Rewrote the ignore system to handle both nicks and masks # properly. # # BUILD : 1.7.21 (1427) -# BUGS : 931 +# BUGS : 931 # NOTES : Added anope build scripts for windows to /src/tools # # BUILD : 1.7.21 (1426) -# BUGS : 876 +# BUGS : 876 # NOTES : We now support CIDR in channel ban/invite/except lists. Introduces new CIDR capable generic lists system. # # BUILD : 1.7.21 (1425) -# BUGS : 873 +# BUGS : 873 # NOTES : We now show config variables in the help. # # BUILD : 1.7.21 (1424) -# BUGS : 934 +# BUGS : 934 # NOTES : Fixed bogus password being returned by enc_none when password was truncated. # # BUILD : 1.7.21 (1423) -# BUGS : 932 +# BUGS : 932 # NOTES : Fixed crashbug in cs_access. # # BUILD : 1.7.21 (1422) @@ -276,7 +276,7 @@ VERSION_BUILD="" # # BUILD : 1.7.21 (1420) # BUGS : 882 -# NOTES : Replaces the static count in logon&oper -news by a reference to NewsCount. Also fixes a booboo in my first commit. +# NOTES : Replaces the static count in logon&oper -news by a reference to NewsCount. Also fixes a booboo in my first commit. # # BUILD : 1.7.21 (1419) # BUGS : 875 @@ -287,7 +287,7 @@ VERSION_BUILD="" # NOTES : Applied a patch by w00t to store the timestamp supplied by insp in FJOIN on channel creation # # BUILD : 1.7.21 (1417) -# BUGS : +# BUGS : # NOTES : Set SO_REUSEADDR on sock to prevent potential issues with bind() failing after a restart # # BUILD : 1.7.21 (1416) @@ -307,11 +307,11 @@ VERSION_BUILD="" # NOTES : Added support for channelmodes +efI and SVSHOLD to inspircd11.c # # BUILD : 1.7.21 (1412) -# BUGS : +# BUGS : # NOTES : Fixed the SVN ID/module version for inspircd11.c # # BUILD : 1.7.21 (1411) -# BUGS : 887 +# BUGS : 887 # NOTES : SGLINE and SQLINE support added for Hybrid # # BUILD : 1.7.21 (1410) @@ -319,15 +319,15 @@ VERSION_BUILD="" # NOTES : Bug fixed where forbidden channels will appear in /list when inhabited by ChanServ # # BUILD : 1.7.21 (1409) -# BUGS : 922 +# BUGS : 922 # NOTES : Changes 'check' argument in calls to chan_set_modes() from cs_modes.c/do_util() to 2 to avoid calling chan_set_proper_modes() # # BUILD : 1.7.21 (1408) -# BUGS : +# BUGS : # NOTES : Set os_raw to show up as a 3rd party module... # # BUILD : 1.7.21 (1407) -# BUGS : +# BUGS : # NOTES : Removed pointless checks for buf existing, as they always will for non pointers. # # BUILD : 1.7.21 (1406) @@ -371,11 +371,11 @@ VERSION_BUILD="" # NOTES : install.js script now works properly on x64 machines # # BUILD : 1.7.21 (1393) -# BUGS : +# BUGS : # NOTES : Services Operators can now also use NickServ INFO ALL # # BUILD : 1.7.21 (1392) -# BUGS : +# BUGS : # NOTES : fixes a potential crash in channels.c and does handle the TS on incoming FMODE in inspircd.11 # # BUILD : 1.7.21 (1390) @@ -527,7 +527,7 @@ VERSION_BUILD="" # NOTES : Ficed various oddities in moduleAddData() # # BUILD : 1.7.21 (1353) -# BUGS : +# BUGS : # NOTES : Rules for Changes: [[1]] A always goes before F (and anything else in between) [[2]] Anything within an A-block or F-block for 1 version is sorted ascending on the date (newer lines on the bottom) [[3]] Lines end with a period. #