79 Commits

Author SHA1 Message Date
Sadie Powell
3075cc7bd0 Move config typedefs to ServerConfig and use auto in more places. 2020-11-03 22:30:58 +00:00
Sadie Powell
be3b34fcea Rename ConfigItems to ConfigTag::Items. 2020-11-03 19:54:13 +00:00
Sadie Powell
1b181b42b8 Convert ConfigTag from reference<> to std::shared_ptr<>. 2020-10-31 23:21:15 +00:00
Sadie Powell
441bd151da Add stdalgo::iterator_range and switch config tag reading to use it.
This allows us to use range-based for loops which were not possible
with the previous config tag system.
2020-10-31 22:33:35 +00:00
Sadie Powell
58e9055162 Merge branch 'insp3' into master. 2020-06-08 18:14:19 +01:00
Sadie Powell
1cb1430c70 ModResult is a class now. 2020-05-22 17:20:34 +01:00
Sadie Powell
b755d2a778 Merge branch 'insp3' into master. 2020-05-05 22:03:14 +01:00
InspIRCd Robot
4f9abe96a4 Fixes by misspell-fixer 2020-04-21 00:52:12 -06:00
Sadie Powell
1de6f5b4a9 Merge branch 'insp3' into master. 2020-01-17 12:36:09 +00:00
InspIRCd Robot
aa692dc103 Update copyright headers. 2020-01-11 22:14:43 +00:00
Sadie Powell
a9e8e1f03a Add an event provider class for the event/messagetag event. 2020-01-03 21:01:52 +00:00
Sadie Powell
fb17bba197 Replace the TR1NS macro with the std namespace. 2019-01-25 02:49:03 +00:00
Peter Powell
58a0a7e014 Implement IRCv3 message tag support.
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-08-13 21:51:11 +01:00
Peter Powell
2beb73aba7 Get rid of the unused string_list typedef. 2018-07-24 10:02:07 +01:00
Peter Powell
5a378e8954 Change FailedPortList to store a sockaddrs/int instead of string. 2017-09-12 15:05:24 +01:00
Peter Powell
4b37c61225 Make the config system case insensitive. 2017-02-04 18:23:22 +00:00
Peter Powell
3fd1ba753d Store config values in a map instead of a unique vector of pairs. 2016-12-08 02:01:40 +00:00
Attila Molnar
adc366ab1d Replace irc::string in XLineLookup with irc::insensitive_swo map 2016-08-22 16:37:32 +02:00
Attila Molnar
019914b67d Predeclare IOHookProvider, remove iohook.h include from socket.h 2016-08-08 14:24:40 +02:00
Attila Molnar
304b6dbbf5 Introduce Stats::Context, pass it to the OnStats hook and switch all code to it 2016-02-25 17:02:03 +01:00
Attila Molnar
bc8664c5c4 Move and rename typedef LocalUserList to UserManager::LocalList 2014-07-19 14:23:31 +02:00
Attila Molnar
7e0e54eba3 Move typedef OperIndex to ServerConfig::OperIndex 2014-07-16 12:32:47 +02:00
Attila Molnar
046da7da9b Move typedef ClassVector to ServerConfig::ClassVector 2014-07-16 12:30:05 +02:00
Attila Molnar
46c97a8db7 Rename UserChanList to User::ChanList, remove UCListIter 2014-07-14 16:24:59 +02:00
Attila Molnar
63601e946e Remove typedef UserMembIter, use Channel::MemberMap::iterator instead
Remove the now unused UserMembList typedef too
2014-07-14 16:19:34 +02:00
Attila Molnar
fb8cb21144 Remove typedef UserMembCIter, use Channel::MemberMap::const_iterator instead 2014-07-14 16:15:38 +02:00
Attila Molnar
97faccd6c5 Remove global Commandtable typedef 2014-06-13 15:42:38 +02:00
Attila Molnar
0556720b55 Add ParamModeBase and ParamMode, change all parameter modes to inherit from ParamMode
- Type of the extension used to store data is a template parameter
- The extension is automatically unset when the mode is unset
- Handlers inheriting from ParamMode have to provide OnSet() and SerializeParam(); may optionally provide OnUnset()
- Transparently handle the case when OnSet() modifies the mode parameter
- Remove Channel::custom_mode_params map; ask the mode handlers to serialize their parameters instead
2014-02-15 14:38:24 +01:00
Attila Molnar
458168b575 Convert InviteBase::invites to an intrusively linked list 2014-01-24 13:20:11 +01:00
Attila Molnar
f1f8173bb5 Convert LocalUserList to an intrusively linked list 2014-01-24 13:08:13 +01:00
Attila Molnar
932e8d13f8 Convert UserChanList to an intrusively linked list 2014-01-24 12:58:01 +01:00
Attila Molnar
11916574f6 Introduce Server class
- Replaces std::string server in User
- Replaces InspIRCd::ULine() and SilentULine()
2014-01-05 15:04:01 +01:00
attilamolnar
cc74fb0be4 Pass an interface to the OnSync hooks
Remove Module::ProtoSendMetaData()
2013-09-13 12:15:44 +02:00
attilamolnar
c202dea024 Replace OnRehash() with ReadConfig() that is called on boot, on module load and on rehash
This eliminates the need for calling OnRehash() in init()
2013-08-30 13:15:10 +02:00
attilamolnar
50ecf259b6 Remove dead code from the InspIRCd and CommandParser classes and typedefs.h
Removed functions:

InspIRCd:
- Restart() - unused
- DoSocketTimeouts() - no implementation exists
- AddCommand() - useless wrapper around ModuleManager::AddService()

CommandParser:
- IsValidCommand() - unused
- ProcessParameters() - no implementation exists
2013-06-18 21:25:43 +02:00
Adam
8428bbb387 Modularize DNS
The DNS modules are temporarily in commands/ so they're loaded automatically

Thanks to Attila for helping with much of this.
2013-04-26 16:59:29 -05:00
Peter Powell
0d3a6719b8 Fix building with libc++.
- Purged std::tr1::strlower (was never used).
- Moved std::tr1::insensitive to irc::insensitive.
- Added TR1NS macro to point to the correct C++ TR1 namespace.
2013-04-19 01:34:07 +01:00
Peter Powell
11cafc12d5 Tidy up source files:
- Use #pragma once instead of include guards.
- Move header files in src/modules to include/modules.
- Fixed various spacing issues.
2013-04-12 17:03:05 +01:00
Peter Powell
fd655fa93a Purge the deprecated hash_map from existance. 2013-04-01 05:57:33 +01:00
attilamolnar
74b05d5500 Make LocalUserList an std::list 2012-11-29 23:41:22 +01:00
attilamolnar
a589577b68 Add a typedef for LocalUserList 2012-11-29 23:41:22 +01:00
ChrisTX
5b9682275e Windows: In-depth cleanup (see details)
-Fix x64 builds for Windows. Now all configurations compile.
-Remove the non-working rebase stuff.
-Remove the Windows fork hack and instead use FreeConsole() to emulate the behavior. This directly allows us to compile with ASLR, which is turned on now.
-Remove the old IPC mechanism for the removed GUI. This is not needed anymore as the GUI wasn't ever supported on anything newer than 1.2
-Remove the WIN32/WINDOWS macros. _WIN32 is supported on all x86-based VC++ targets, so that's what we need.
-Enable optimizations for release builds.
-De-duplicate printf_c(), it was previously copy-pasted into colors.h for configure
-Add the VC++ specific bad files in .gitignore
-Disable PID writing on Windows. This is only making sense for *nix builds.
-Replace the CPU usage retrieval with an algorithm analogous to the *nix behavior. Also supports separated now/total values. (Tested with a dummy busy loop - seems working)
-Removed certain unused functions and variables
-Remove stdint defines from the windows wrapper
-Remove CRT debug alloc. This is a bad idea as it would define a macro to replace free which breaks builds.
-Re-evaluated the warnings list, commented it.
-Moved inspircd_config/_version to include/ to match *nix
-Removed the creation of inspircd_se_config, as it isn't used at all.
-Made non-git builds show as "r0" instead of "r" (thanks to @SaberUK for pointing this out)
-Fixed up m_spanningtree's project paths. Now all configurations (debug/release x86/x64) have been tested and build properly.
-Moved FindDNS out of the wrapper and matched its log behavior with *nix. (It's pointless having it in the wrapper after the recent slimming down)
-Replaced random/srandom wrappers with a mechanism that tries to use Windows' Random API first is no SSL module is loaded.
-Removed more old junk from support for compilers older than VC++ 2010 (we don't have project files for these, so compiling them would be hard anyways)
-Removed the unused ClearConsole()
-Removed unused includes from the wrapper. Also, do not include psapi.h here if we don't link psapi.lib. This should be done where appropriate.
-Made inet_aton an inline function for increased performance
-C4800, performance warning about bool forcing, resolved at all occurrences.
-C4701, uninitialized variable 'cached', resolved at all occurrences.
-dlerror() was migrated out of the wrapper for more thread safety (no global buffer being shared) and increased performance.
-Removed the wrong CRT debug flags. This drains a lot of performance.
-Removed the clock_gettime/gettimeofday wrappers
-Replaced all TCHAR/ANSI mix-ups of functions with the correct respective function.
-Added a block of C4355 for < VS2012
-Update project files for c870714
2012-10-12 22:31:38 +02:00
attilamolnar
d2e189102b Fix pending invites not being removed when a channel was deleted or had its TS lowered 2012-06-17 17:54:49 +02:00
Robby-
46a3904619 Replace copyright headers with headers granting specific authors copyright 2012-04-19 20:58:29 +02:00
Justin Crawford
9ebd9cba72 Fix some of the include guard names (requested by SaberUK) 2012-04-14 23:33:20 -07:00
Justin Crawford
df5f76832e Fixes for bug #12 2012-04-14 18:03:25 -07:00
danieldg
f2256deeef Executable include for MOTD and more
This introduces an <execfiles> tag that reads files from the output of
a command, in the same way as executable includes. The files specified
here can also be used anywhere a file is used (opermotd, randquote, etc)

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12354 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-02 16:47:25 +00:00
brain
cd712c40e1 ...because every now and again, i have to do a massive commit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-11 03:07:32 +00:00
danieldg
54fb0cd5aa Use ServiceProvider for inter-module dependencies
This will stop dependency chains from preventing module reloads when
it is not actually needed; however, it removes some failsafes that will
need to be reimplemented in order to avoid unmapped vtables.

This deprecates Request as an inter-module signaling mechanism, although
SQL still uses it.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12140 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-16 17:59:06 +00:00
danieldg
6b2ea83367 Move forward declarations to typedefs.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11967 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-24 20:03:53 +00:00