]> git.netwichtig.de Git - user/henk/code/inspircd.git/log
user/henk/code/inspircd.git
10 years agoRemove empty Thread destructor
Attila Molnar [Tue, 24 Jun 2014 11:05:12 +0000 (13:05 +0200)]
Remove empty Thread destructor

10 years agothreadengine_win32 Don't ask for the thread id of newly created threads pointlessly
Attila Molnar [Tue, 24 Jun 2014 10:57:09 +0000 (12:57 +0200)]
threadengine_win32 Don't ask for the thread id of newly created threads pointlessly

10 years agoMove and rename class ThreadData to ThreadEngine::ThreadState
Attila Molnar [Tue, 24 Jun 2014 10:54:05 +0000 (12:54 +0200)]
Move and rename class ThreadData to ThreadEngine::ThreadState

10 years agoMove and rename ThreadData::FreeThread() to ThreadEngine::Stop() and document what...
Attila Molnar [Tue, 24 Jun 2014 10:53:10 +0000 (12:53 +0200)]
Move and rename ThreadData::FreeThread() to ThreadEngine::Stop() and document what it does

10 years agoMake Thread::state private
Attila Molnar [Tue, 24 Jun 2014 10:46:18 +0000 (12:46 +0200)]
Make Thread::state private

10 years agoChange allocation of ThreadData to be physically part of the object containing it
Attila Molnar [Tue, 24 Jun 2014 10:45:21 +0000 (12:45 +0200)]
Change allocation of ThreadData to be physically part of the object containing it

10 years agoRemove empty ThreadEngine constructors and destructors
Attila Molnar [Tue, 24 Jun 2014 10:40:02 +0000 (12:40 +0200)]
Remove empty ThreadEngine constructors and destructors

10 years agoRemove the unused ThreadEngine::GetName() method from both implementations
Attila Molnar [Tue, 24 Jun 2014 10:36:38 +0000 (12:36 +0200)]
Remove the unused ThreadEngine::GetName() method from both implementations

10 years agoChange allocation of InspIRCd::Users to be physically part of the object containing...
Attila Molnar [Tue, 24 Jun 2014 10:21:31 +0000 (12:21 +0200)]
Change allocation of InspIRCd::Users to be physically part of the object containing it using fakederef

10 years agoChange allocation of InspIRCd::SNO to be physically part of the object containing...
Attila Molnar [Tue, 24 Jun 2014 10:20:02 +0000 (12:20 +0200)]
Change allocation of InspIRCd::SNO to be physically part of the object containing it using fakederef

10 years agoRemove now needless dynref_init_complete
Attila Molnar [Tue, 24 Jun 2014 10:18:46 +0000 (12:18 +0200)]
Remove now needless dynref_init_complete

ModuleManager is constructed when ServerInstance is non-NULL, test that instead

10 years agoChange allocation of InspIRCd::Modules to be physically part of the object containing...
Attila Molnar [Tue, 24 Jun 2014 10:16:57 +0000 (12:16 +0200)]
Change allocation of InspIRCd::Modules to be physically part of the object containing it using fakederef

10 years agoChange allocation of InspIRCd::Logs to be physically part of the object containing...
Attila Molnar [Tue, 24 Jun 2014 10:15:03 +0000 (12:15 +0200)]
Change allocation of InspIRCd::Logs to be physically part of the object containing it using fakederef

10 years agoChange allocation of InspIRCd::Modes to be physically part of the object containing...
Attila Molnar [Tue, 24 Jun 2014 10:10:59 +0000 (12:10 +0200)]
Change allocation of InspIRCd::Modes to be physically part of the object containing it using fakederef

10 years agoAdd the fakederef class
Attila Molnar [Tue, 24 Jun 2014 10:08:20 +0000 (12:08 +0200)]
Add the fakederef class

10 years agoChange all occurrences of plain sort() to std::sort()
Attila Molnar [Sun, 22 Jun 2014 11:34:33 +0000 (13:34 +0200)]
Change all occurrences of plain sort() to std::sort()

10 years agocore_userhost Show real host if the target is the same as the user doing the /USERHOST
Attila Molnar [Sun, 22 Jun 2014 11:28:41 +0000 (13:28 +0200)]
core_userhost Show real host if the target is the same as the user doing the /USERHOST

10 years agocore_userhost Append data to the output in a saner way
Attila Molnar [Sun, 22 Jun 2014 11:27:28 +0000 (13:27 +0200)]
core_userhost Append data to the output in a saner way

10 years agocore_userhost Do the HasPrivPermission() check only once, not once per nick
Attila Molnar [Sun, 22 Jun 2014 11:25:09 +0000 (13:25 +0200)]
core_userhost Do the HasPrivPermission() check only once, not once per nick

10 years agocore_ison Use iterators
Attila Molnar [Sun, 22 Jun 2014 11:22:44 +0000 (13:22 +0200)]
core_ison Use iterators

10 years agocore_ison Extract duplicated code into a function
Attila Molnar [Sun, 22 Jun 2014 11:20:21 +0000 (13:20 +0200)]
core_ison Extract duplicated code into a function

Change append(" ") to push_back(' ')

10 years agocore_ison Truncate string after sending it on overflow instead of recreating it
Attila Molnar [Sun, 22 Jun 2014 11:19:15 +0000 (13:19 +0200)]
core_ison Truncate string after sending it on overflow instead of recreating it

10 years agocore_ison Don't deduplicate nicks
Attila Molnar [Sun, 22 Jun 2014 11:17:57 +0000 (13:17 +0200)]
core_ison Don't deduplicate nicks

Deduplication makes us do pointless processing for every ISON and offers
no benefit at all to proper clients that send a nick only once

10 years agocore_ison Remove check that is always true
Attila Molnar [Sun, 22 Jun 2014 11:16:31 +0000 (13:16 +0200)]
core_ison Remove check that is always true

10 years agocore_list Improve readability by assigning the Channel being inspected to a variable
Attila Molnar [Sun, 22 Jun 2014 11:13:08 +0000 (13:13 +0200)]
core_list Improve readability by assigning the Channel being inspected to a variable

10 years agocore_list Check whether the chan name/topic has to be Match()ed once, not once per...
Attila Molnar [Sun, 22 Jun 2014 11:10:03 +0000 (13:10 +0200)]
core_list Check whether the chan name/topic has to be Match()ed once, not once per chan

10 years agocore_list Do the HasPrivPermission() check only once, not once per chan
Attila Molnar [Sun, 22 Jun 2014 11:06:35 +0000 (13:06 +0200)]
core_list Do the HasPrivPermission() check only once, not once per chan

10 years agoCheck Q-Lines on nick change in core_xline
Attila Molnar [Fri, 20 Jun 2014 14:34:03 +0000 (16:34 +0200)]
Check Q-Lines on nick change in core_xline

10 years agoReject nickname case changes too when enforcing <security:restrictbannedusers>
Attila Molnar [Fri, 20 Jun 2014 14:29:40 +0000 (16:29 +0200)]
Reject nickname case changes too when enforcing <security:restrictbannedusers>

10 years agoChange the type of the user parameter in the OnUserPreNick() hook from User to LocalUser
Attila Molnar [Fri, 20 Jun 2014 14:20:19 +0000 (16:20 +0200)]
Change the type of the user parameter in the OnUserPreNick() hook from User to LocalUser

No remote users were passed to this hook before.

Remove needless IS_LOCAL() checks.

10 years agoIncrement serverstats::Collisions when a collision is handled, not when a module...
Attila Molnar [Fri, 20 Jun 2014 14:04:21 +0000 (16:04 +0200)]
Increment serverstats::Collisions when a collision is handled, not when a module denies a nick change

10 years agom_spanningtree Share server description updates via SINFO desc
Attila Molnar [Tue, 17 Jun 2014 11:48:50 +0000 (13:48 +0200)]
m_spanningtree Share server description updates via SINFO desc

10 years agoUpdate the description field in the Server object representing the local server on...
Attila Molnar [Tue, 17 Jun 2014 11:45:57 +0000 (13:45 +0200)]
Update the description field in the Server object representing the local server on rehash

10 years agom_spanningtree Remove server-to-server VERSION handler
Attila Molnar [Tue, 17 Jun 2014 11:41:21 +0000 (13:41 +0200)]
m_spanningtree Remove server-to-server VERSION handler

10 years agom_spanningtree Translate SINFO version to VERSION and vice versa for 1202 protocol...
Attila Molnar [Tue, 17 Jun 2014 11:39:08 +0000 (13:39 +0200)]
m_spanningtree Translate SINFO version to VERSION and vice versa for 1202 protocol servers

10 years agom_spanningtree Exchange public server version strings via SINFO instead of VERSION
Attila Molnar [Tue, 17 Jun 2014 11:36:10 +0000 (13:36 +0200)]
m_spanningtree Exchange public server version strings via SINFO instead of VERSION

10 years agom_spanningtree Show the full version string of servers to opers
Attila Molnar [Tue, 17 Jun 2014 11:32:00 +0000 (13:32 +0200)]
m_spanningtree Show the full version string of servers to opers

Issue #637, suggested by @CuleX

10 years agom_spanningtree Send and receive full version strings via SINFO
Attila Molnar [Tue, 17 Jun 2014 11:28:19 +0000 (13:28 +0200)]
m_spanningtree Send and receive full version strings via SINFO

10 years agom_spanningtree Add a field to TreeServer for storing full version strings
Attila Molnar [Tue, 17 Jun 2014 11:27:21 +0000 (13:27 +0200)]
m_spanningtree Add a field to TreeServer for storing full version strings

10 years agom_spanningtree Add server-to-server SINFO command handler and builder
Attila Molnar [Tue, 17 Jun 2014 11:25:06 +0000 (13:25 +0200)]
m_spanningtree Add server-to-server SINFO command handler and builder

Don't send SINFO to 1202 protocol servers

10 years agom_spanningtree Add TreeSocket::SendServerInfo() that sends all additional data about...
Attila Molnar [Tue, 17 Jun 2014 11:20:57 +0000 (13:20 +0200)]
m_spanningtree Add TreeSocket::SendServerInfo() that sends all additional data about a server

10 years agoKill needless #includes in source files
Attila Molnar [Sat, 14 Jun 2014 13:30:14 +0000 (15:30 +0200)]
Kill needless #includes in source files

10 years agoRemove unused #define ERROR -1
Attila Molnar [Sat, 14 Jun 2014 13:14:46 +0000 (15:14 +0200)]
Remove unused #define ERROR -1

10 years agom_spanningtree Remove declaration for nonexistent function: OnLine()
Attila Molnar [Sat, 14 Jun 2014 13:14:05 +0000 (15:14 +0200)]
m_spanningtree Remove declaration for nonexistent function: OnLine()

10 years agom_spanningtree Use vector back() where it makes sense
Attila Molnar [Sat, 14 Jun 2014 13:12:13 +0000 (15:12 +0200)]
m_spanningtree Use vector back() where it makes sense

10 years agom_spanningtree Initialize boolean member variables in the constructor of the module
Attila Molnar [Sat, 14 Jun 2014 13:07:19 +0000 (15:07 +0200)]
m_spanningtree Initialize boolean member variables in the constructor of the module

10 years agom_spanningtree Initialize TreeServer::UserCount for TreeRoot in its constructor
Attila Molnar [Sat, 14 Jun 2014 13:03:48 +0000 (15:03 +0200)]
m_spanningtree Initialize TreeServer::UserCount for TreeRoot in its constructor

10 years agoMake the default ProtocolInterface instance part of class InspIRCd
Attila Molnar [Fri, 13 Jun 2014 13:59:37 +0000 (15:59 +0200)]
Make the default ProtocolInterface instance part of class InspIRCd

The protocol module no longer has to delete it on load and construct it on
unload, only assign a new value to ServerInstance->PI

10 years agom_spanningtree Change allocation of the specialized ProtocolInterface to be physicall...
Attila Molnar [Fri, 13 Jun 2014 13:57:14 +0000 (15:57 +0200)]
m_spanningtree Change allocation of the specialized ProtocolInterface to be physically part of ModuleSpanningTree

10 years agoChange allocation of InspIRCd::Parser to be physically part of the object containing it
Attila Molnar [Fri, 13 Jun 2014 13:45:55 +0000 (15:45 +0200)]
Change allocation of InspIRCd::Parser to be physically part of the object containing it

10 years agoRemove global Commandtable typedef
Attila Molnar [Fri, 13 Jun 2014 13:42:38 +0000 (15:42 +0200)]
Remove global Commandtable typedef

10 years agoMake CommandParser::cmdlist private
Attila Molnar [Fri, 13 Jun 2014 13:41:43 +0000 (15:41 +0200)]
Make CommandParser::cmdlist private

10 years agoAdd CommandParser::GetCommands() and typedef CommandMap and use it instead of directl...
Attila Molnar [Fri, 13 Jun 2014 13:40:03 +0000 (15:40 +0200)]
Add CommandParser::GetCommands() and typedef CommandMap and use it instead of directly accessing cmdlist

10 years agoUse CommandParser::GetHandler() in ServerConfig::ApplyDisabledCommands()
Attila Molnar [Fri, 13 Jun 2014 13:33:10 +0000 (15:33 +0200)]
Use CommandParser::GetHandler() in ServerConfig::ApplyDisabledCommands()

10 years agoChange allocation of InspIRCd::BanCache to be physically part of the object containing it
Attila Molnar [Fri, 13 Jun 2014 13:27:40 +0000 (15:27 +0200)]
Change allocation of InspIRCd::BanCache to be physically part of the object containing it

10 years agoPull in bancache.h from inspircd.h
Attila Molnar [Fri, 13 Jun 2014 13:23:39 +0000 (15:23 +0200)]
Pull in bancache.h from inspircd.h

10 years agoMove the definition of the BanCacheHit constructor into the source file from the...
Attila Molnar [Fri, 13 Jun 2014 13:19:27 +0000 (15:19 +0200)]
Move the definition of the BanCacheHit constructor into the source file from the header

10 years agoMove BanCacheHash typedef into the private part of BanCacheManager
Attila Molnar [Fri, 13 Jun 2014 13:16:12 +0000 (15:16 +0200)]
Move BanCacheHash typedef into the private part of BanCacheManager

10 years agoChange allocation of BanCacheManager::BanHash to be physically part of the object...
Attila Molnar [Fri, 13 Jun 2014 13:14:31 +0000 (15:14 +0200)]
Change allocation of BanCacheManager::BanHash to be physically part of the object containing it

10 years agoChange allocation of InspIRCd::Threads to be physically part of the object containing it
Attila Molnar [Fri, 13 Jun 2014 13:09:20 +0000 (15:09 +0200)]
Change allocation of InspIRCd::Threads to be physically part of the object containing it

10 years agoChange allocation of InspIRCd::stats to be physically part of the object containing it
Attila Molnar [Fri, 13 Jun 2014 13:03:56 +0000 (15:03 +0200)]
Change allocation of InspIRCd::stats to be physically part of the object containing it

While at it, remove "stats" from all field names

10 years agom_spanningtree Explicitly specify the routing for RESYNC as the one inherited from...
Attila Molnar [Thu, 12 Jun 2014 14:20:31 +0000 (16:20 +0200)]
m_spanningtree Explicitly specify the routing for RESYNC as the one inherited from ServerCommand doesn't suit it

Command::GetRouting() defaulted to local only when RESYNC was added, but
ServerCommand overrides it.

10 years agom_spanningtree Strip membership id from KICKs sent to 1202 protocol servers
Attila Molnar [Wed, 11 Jun 2014 13:13:58 +0000 (15:13 +0200)]
m_spanningtree Strip membership id from KICKs sent to 1202 protocol servers

10 years agoSend the membership id when kicking a remote user and drop KICKs with mismatching...
Attila Molnar [Wed, 11 Jun 2014 13:07:27 +0000 (15:07 +0200)]
Send the membership id when kicking a remote user and drop KICKs with mismatching membership ids

This fixes the desync happening when a PART+JOIN crosses a KICK targetting
the same user.

10 years agom_spanningtree Strip membership ids from FJOINs sent to 1202 protocol servers
Attila Molnar [Wed, 11 Jun 2014 12:57:25 +0000 (14:57 +0200)]
m_spanningtree Strip membership ids from FJOINs sent to 1202 protocol servers

10 years agom_spanningtree Send and parse FJOINs with membership ids
Attila Molnar [Wed, 11 Jun 2014 12:46:53 +0000 (14:46 +0200)]
m_spanningtree Send and parse FJOINs with membership ids

10 years agom_spanningtree Add CmdBuilder::push_raw_int()
Attila Molnar [Wed, 11 Jun 2014 12:41:31 +0000 (14:41 +0200)]
m_spanningtree Add CmdBuilder::push_raw_int()

10 years agom_spanningtree Use the FJOIN builder when a channel is created
Attila Molnar [Wed, 11 Jun 2014 12:40:18 +0000 (14:40 +0200)]
m_spanningtree Use the FJOIN builder when a channel is created

10 years agom_spanningtree Add CmdBuilder specialization for FJOIN
Attila Molnar [Wed, 11 Jun 2014 12:37:42 +0000 (14:37 +0200)]
m_spanningtree Add CmdBuilder specialization for FJOIN

10 years agom_spanningtree Send, parse and translate IJOINs with membership ids
Attila Molnar [Wed, 11 Jun 2014 12:30:17 +0000 (14:30 +0200)]
m_spanningtree Send, parse and translate IJOINs with membership ids

10 years agom_spanningtree Assign an id to new Memberships
Attila Molnar [Wed, 11 Jun 2014 12:15:40 +0000 (14:15 +0200)]
m_spanningtree Assign an id to new Memberships

10 years agom_spanningtree Initialize membership ids on load
Attila Molnar [Wed, 11 Jun 2014 12:08:15 +0000 (14:08 +0200)]
m_spanningtree Initialize membership ids on load

10 years agoAdd foundation for membership ids
Attila Molnar [Wed, 11 Jun 2014 12:04:00 +0000 (14:04 +0200)]
Add foundation for membership ids

10 years agoAdd ConvToUInt64()
Attila Molnar [Sun, 1 Jun 2014 11:44:51 +0000 (13:44 +0200)]
Add ConvToUInt64()

10 years agoReturn the newly created Membership object from Channel::ForceJoin()
Attila Molnar [Tue, 10 Jun 2014 15:45:41 +0000 (17:45 +0200)]
Return the newly created Membership object from Channel::ForceJoin()

10 years agoAdd channel TS to server-to-server INVITE to detect and drop unauthorized invites
Attila Molnar [Tue, 10 Jun 2014 15:37:16 +0000 (17:37 +0200)]
Add channel TS to server-to-server INVITE to detect and drop unauthorized invites

The syntax of the server-to-server INVITE command changes from
:<source> INVITE <target> <channel> [<expire>]
to
:<source> INVITE <target> <channel> <chants> [<expire>]

10 years agom_spanningtree Allow callers of InsertCurrentChannelTS() to customize positions
Attila Molnar [Tue, 10 Jun 2014 15:36:19 +0000 (17:36 +0200)]
m_spanningtree Allow callers of InsertCurrentChannelTS() to customize positions

10 years agocmd_kick Assign a value to the kick reason string more reasonably
Attila Molnar [Tue, 10 Jun 2014 15:22:02 +0000 (17:22 +0200)]
cmd_kick Assign a value to the kick reason string more reasonably

10 years agoUse the iterator version of Channel::KickUser() in a few places
Attila Molnar [Tue, 10 Jun 2014 15:19:27 +0000 (17:19 +0200)]
Use the iterator version of Channel::KickUser() in a few places

10 years agoChange Channel::KickUser() to accept an iterator, add overload that accepts a User
Attila Molnar [Tue, 10 Jun 2014 15:12:00 +0000 (17:12 +0200)]
Change Channel::KickUser() to accept an iterator, add overload that accepts a User

Remove srcmemb parameter

10 years agoMove pre-kick checks from core to cmd_kick (core_channel)
Attila Molnar [Tue, 10 Jun 2014 15:04:42 +0000 (17:04 +0200)]
Move pre-kick checks from core to cmd_kick (core_channel)

10 years agoDocument the config options of m_remove
Attila Molnar [Mon, 9 Jun 2014 15:49:57 +0000 (17:49 +0200)]
Document the config options of m_remove

10 years agom_remove Make the protected rank configurable instead of hardcoding it to 50000
Attila Molnar [Mon, 9 Jun 2014 15:47:07 +0000 (17:47 +0200)]
m_remove Make the protected rank configurable instead of hardcoding it to 50000

Change type of ulevel and tlevel to unsigned int

10 years agom_remove Recognize /REMOVE <chan> <nick>
Attila Molnar [Mon, 9 Jun 2014 15:43:50 +0000 (17:43 +0200)]
m_remove Recognize /REMOVE <chan> <nick>

The old syntax is now deprecated

Fixes issue #860 reported by @Shawn-Smith

10 years agom_remove Manually forward all REMOVE messages, turn FPART into REMOVE
Attila Molnar [Mon, 9 Jun 2014 15:40:22 +0000 (17:40 +0200)]
m_remove Manually forward all REMOVE messages, turn FPART into REMOVE

10 years agoUse std::find() in ParseStack::ParseFile()
Attila Molnar [Mon, 9 Jun 2014 15:13:31 +0000 (17:13 +0200)]
Use std::find() in ParseStack::ParseFile()

10 years agoDeduplicate ParseStack::ParseFile() and ParseExec()
Attila Molnar [Mon, 9 Jun 2014 15:10:17 +0000 (17:10 +0200)]
Deduplicate ParseStack::ParseFile() and ParseExec()

10 years agom_ssl_openssl Remove unused MAX_DESCRIPTORS define
Attila Molnar [Sat, 7 Jun 2014 11:48:42 +0000 (13:48 +0200)]
m_ssl_openssl Remove unused MAX_DESCRIPTORS define

10 years agoChange the number reported by SocketEngine::GetMaxFds() to be informal
Attila Molnar [Sat, 7 Jun 2014 11:47:26 +0000 (13:47 +0200)]
Change the number reported by SocketEngine::GetMaxFds() to be informal

Do not exit if we can't determine it

10 years agosocketengine_epoll Pass a dummy value to epoll_create() that does not depend on GetMa...
Attila Molnar [Sat, 7 Jun 2014 11:33:50 +0000 (13:33 +0200)]
socketengine_epoll Pass a dummy value to epoll_create() that does not depend on GetMaxFds()

From man epoll:
Since Linux 2.6.8, the size argument is unused, but must be greater than zero. (The kernel dynamically sizes the required data structures without needing this initial hint.)

10 years agoRelax fd bounds checking
Attila Molnar [Sat, 7 Jun 2014 11:30:14 +0000 (13:30 +0200)]
Relax fd bounds checking

We can cope with fds greater than SocketEngine::GetMaxFds() since 3752b3f59d5216d7dc6221a361efc76b9ad2273d

10 years agom_channames Remove temporary vector from ValidateChans()
Attila Molnar [Sat, 7 Jun 2014 11:07:32 +0000 (13:07 +0200)]
m_channames Remove temporary vector from ValidateChans()

10 years agom_channames Call ValidateChans() from cull() on unload
Attila Molnar [Sat, 7 Jun 2014 11:04:09 +0000 (13:04 +0200)]
m_channames Call ValidateChans() from cull() on unload

This ensures that if ValidateChans() removes everyone from a channel the
channel is added to the cull list at the right time, that is, before the
destruction of objects begin.

The core IsChannel() is less strict than us regardless of our
configuration (for now) but nevertheless this is the correct behavior.

10 years agom_ident Close the ident socket when the object is culled instead of using hooks
Attila Molnar [Wed, 28 May 2014 12:01:00 +0000 (14:01 +0200)]
m_ident Close the ident socket when the object is culled instead of using hooks

10 years agom_ident Make use of the min parameter of ConfigTag::getInt()
Attila Molnar [Wed, 28 May 2014 11:47:41 +0000 (13:47 +0200)]
m_ident Make use of the min parameter of ConfigTag::getInt()

10 years agoDescribe <ident:nolookupprefix>
Attila Molnar [Wed, 28 May 2014 11:46:01 +0000 (13:46 +0200)]
Describe <ident:nolookupprefix>

10 years agom_ident: Add an option to allow idents of users to still be prefixed with a '~' for...
Robby- [Wed, 13 Nov 2013 20:01:24 +0000 (21:01 +0100)]
m_ident: Add an option to allow idents of users to still be prefixed with a '~' for connect classes which have disabled ident lookups through the <connect:useident> setting.

Fixes #683.

Some changes by @attilamolnar, original PR #684

10 years agom_ssl_gnutls Don't include cap.h
Attila Molnar [Mon, 26 May 2014 10:16:50 +0000 (12:16 +0200)]
m_ssl_gnutls Don't include cap.h

The tls cap is handled by m_starttls

10 years agoSwitch to std::string::compare() from substr() in a couple of places
Attila Molnar [Mon, 26 May 2014 10:07:22 +0000 (12:07 +0200)]
Switch to std::string::compare() from substr() in a couple of places

10 years agoPrefix all definitions in config.h to avoid potential collisions.
Peter Powell [Wed, 21 May 2014 00:26:22 +0000 (01:26 +0100)]
Prefix all definitions in config.h to avoid potential collisions.