390 Commits

Author SHA1 Message Date
Peter Powell
a7fc2fe0dc Replace GetServerPort() with server_sa.port(). 2019-02-15 11:35:25 +00:00
Peter Powell
168ee80490 Rename User::nping to nextping for consistency with lastping. 2019-02-15 11:35:25 +00:00
Peter Powell
cbef0241a0 Implement support for the extended tag space for client tags. 2019-01-24 14:28:21 +00:00
linuxdaemon
f400d5f394 Redo OnSetEndPoint logic to fix duplicate clones (#1549). 2019-01-14 11:48:45 +00:00
Matt Schatz
f2e3fd5952 Improve X-line text consistency.
- Change any "-Line", ":Line", or "*line" to "-line" throughout
the X-line code, comments, and documentation.
- Add periods to the end of some notices.
- Correct a typo in the Q-line code comments.
- Update the filter module documentation (shun addition).

Co-authored-by: Robby <robby@chatbelgie.be>
2019-01-09 10:07:09 +00:00
Peter Powell
654355c2d1 Reject setting modes which are null or not registered. 2018-12-12 14:43:55 +00:00
Peter Powell
d62c870ffb Store the type of a StreamSocket within itself.
Similar to with IOHooks this allows you to convert StreamSocket to
a UserIOHandler quickly.
2018-10-25 13:50:43 +01:00
Peter Powell
98a80a730e Fix unregistered user modes thinking they are enabled. 2018-10-18 10:59:52 +01: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
abbf70b2a3 Rename User::fullname to realname and make it private. 2018-07-30 18:50:34 +01:00
Peter Powell
7bde9de9b3 Replace most usages of "name" with "real" or "real name". 2018-07-30 18:34:57 +01:00
Peter Powell
8cb20e3545 Replace most usages of "GECOS" with "real" or "real name". 2018-07-30 18:30:11 +01:00
Peter Powell
09c5439c02 Add a module which implements the HAProxy PROXY v2 protocol. 2018-07-26 12:35:22 +01:00
Peter Powell
91e0af0fc4 Add the override keyword in places that it is missing.
GCCs warnings for this are much better than Clangs.
2017-11-21 15:51:45 +00:00
Peter Powell
36040be295 Fix a ton of -Wsign-conversion warnings. 2017-11-17 15:33:01 +00:00
Peter Powell
d865b43486 Hide User#host and User#dhost and use accessors to modify them.
This removes the need to invalidate the cache after changing a
user's hostname.
2017-10-28 16:16:10 +01:00
Peter Powell
08f6f05666 Change SetClientIP to take a C++ string instead of a char array. 2017-10-27 19:15:23 +01:00
Peter Powell
a62ae50007 Fix a bunch of Doxygen warnings. 2017-08-26 09:58:15 +01:00
Peter Powell
d1df2bce56 Add CXX11_OVERRIDE to overridden members that lack it.
This fixes a ton of warnings when building on compilers that
default to C++11 or newer.
2017-07-12 14:41:52 +01:00
Attila Molnar
0c061aff64 Clean up User::FormatModes(), rename to GetModeLetters()
Prefix the returned string with '+'
2016-12-30 18:58:31 +01:00
Attila Molnar
8db52f66a2 Make all User::IsModeSet() methods const, accept const ModeHandler 2016-12-30 18:51:56 +01:00
Attila Molnar
0c3b041d1b Deduplicate nickname overruling code
Create LocalUser::OverruleNick(), call it from User::ChangeNick() and the UID handler in spanningtree
2016-12-30 18:44:39 +01:00
Peter Powell
02575ecbbb Allow classes to take a port range. 2016-10-25 09:36:54 +01:00
Attila Molnar
f0debf907a Pass the ModeHandler to User::HasModePermission()
Mark the method as const
2016-08-30 16:05:01 +02:00
Attila Molnar
f67aba687b Remove User::SendText() and overrides completely 2016-03-30 12:37:29 +02:00
Attila Molnar
5fbb5a0b2c Make User::WriteRemoteNumeric() virtual, implement it in SpanningTree::RemoteUser 2016-03-29 16:43:30 +02:00
Attila Molnar
55ad0595a7 Remove now unused overload of User::SendText() 2016-03-22 18:41:30 +01:00
Attila Molnar
49e2df0307 Add User::WriteRemoteNotice()
Sends a NOTICE from the local server to the user which can be local or remote
2016-03-01 16:15:59 +01:00
Attila Molnar
dbe5a1fc6f Add User::WriteRemoteNumeric() and switch code using SendText() to send numerics to it 2016-02-25 16:40:50 +01:00
Attila Molnar
da29af8cba Convert WriteNumeric() calls to pass the parameters of the numeric as method parameters 2016-02-25 16:12:09 +01:00
Attila Molnar
c89cc290fb Move already sent id rollover handling and static LocalUser::already_sent_id into UserManager 2015-11-03 13:13:00 +01:00
Attila Molnar
30fc51c6dd Rewrite invite system
- Moved out of core, now lives entirely in core_channel
- Accessible using the provided API after including the appropriate header
- Invites are stored in an extension attached to LocalUser/Channel objects, they no longer need special handling when destroying these objects or when lowering TS
- Expiration of timed invites are implemented using Timers
- When creating a new invite let a non-timed invite override a timed one
2015-11-02 13:28:55 +01:00
Attila Molnar
cf728bd8a3 Implement User::WriteCommonQuit() using ForEachNeighbor() in UserManager 2015-01-24 14:53:03 +01:00
Attila Molnar
662dfa6c18 Add User::ForEachNeighbor() 2015-01-24 14:49:10 +01:00
Attila Molnar
84ae29d0ea Move the intrusive list containers into the insp namespace 2014-08-30 10:35:21 +02:00
Attila Molnar
46c97a8db7 Rename UserChanList to User::ChanList, remove UCListIter 2014-07-14 16:24:59 +02:00
Attila Molnar
2eb0505a16 User::ChangeNick() cannot fail if the new nick is the uuid, document this and rely on it 2014-07-03 12:36:14 +02:00
Attila Molnar
393cc8f9d6 Remove now needless User::ForceNickChange()
Change call sites to call ChangeNick()
2014-07-03 12:27:24 +02:00
Attila Molnar
10bae31483 Remove unused User::WriteCommonExcept()
WriteCommonRaw(msg, false) has similiar functionality with a std::string parameter
2014-04-02 12:52:20 +02:00
Attila Molnar
2465f88a58 Move User::SendAll() into core_privmsg
This functionality is only used by the PRIVMSG and NOTICE handlers
2014-04-02 12:50:04 +02:00
Attila Molnar
a6e68c0d34 Remove User::WriteTo() functions; use User::WriteFrom() instead
The removed functions were rarely used and all they did was to call User::WriteFrom() with swapped arguments. On call sites, WriteTo() hardly offers any readability improvement over WriteFrom().
2014-04-02 12:44:12 +02:00
Attila Molnar
b1173ca66a Update nick timestamps in User::ChangeNick(), pass the new TS in a parameter 2014-03-03 15:07:17 +01:00
Attila Molnar
7ffef79f97 Index Channel::modes and User::modes with the id of the mode instead of its letter 2014-02-21 15:11:24 +01:00
Peter Powell
db0e78c5d2 Fix various cases of UUID exposure.
- Introduce WriteCommand which sends * when the user has not registered.
- Switch a ton of code to use WriteCommand instead of WriteServ.
- Convert WriteNotice to be a wrapper around WriteCommand.
- Only send * when NICK has not been sent instead of before registration.
2014-02-06 23:10:01 +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
9136136ac3 Move server description field from TreeServer into Server; remove OnGetServerDescription hook 2014-01-05 15:20:17 +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
Attila Molnar
d736eba00b Improve UserManager::QuitUser() and related code
- Make operreason optional; NULL means same as quitreason
- Remove User::quietquit, it is now handled internally in spanningtree
- Send snotice about quitting remote users from spanningtree
2014-01-05 14:17:12 +01:00
Peter Powell
03a623a284 Rename <connect:nouserdns> to <connect:resolvehostnames>.
This name is more descriptive and avoids a double negative which
could make the name of this setting unclear to non-native speakers.
2013-08-10 14:04:09 +01:00