889 Commits

Author SHA1 Message Date
linuxdaemon
f400d5f394 Redo OnSetEndPoint logic to fix duplicate clones (#1549). 2019-01-14 11:48:45 +00:00
Peter Powell
51891f10f2 Fix a crash when the core_oper module is not loaded. 2018-12-12 14:43:55 +00:00
Peter Powell
c6e40d36b4 Merge branch 'insp20' into master. 2018-09-24 18:25:06 +01:00
Peter Powell
b5bc17fba3 Send the 001-004 numerics and MOTD/LUSERS from core_info.
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-08-22 21:25:55 +01:00
Peter Powell
f7a115884f Rename OnChangeLocalUserHost to OnPreChangeHost for consistency. 2018-08-14 00:22:59 +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
02838a0939 Move message parsing to ProcessBuffer and fix edge cases in it. 2018-08-10 20:04:56 +01:00
Peter Powell
213e4d9680 Remove the original line parameter of On{Pre,Post}Command.
In the brave new world of message tags and alternate wire formats
this is no longer something that is appropriate to expose.

In reality it was only ever used by m_alias which now reconstitutes
the command name and parameters into a RFC 1459-style message for
whatever it needs to do.
2018-08-10 13:55:32 +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
384ef31bc0 Use CommandBase::Params instead of std::vector<std::string>.
This is presently a typedef but will soon be replaced with a class
that encapsulates both tags and parameters.
2018-07-26 20:12:14 +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
97a1d6429a Make more config stuff case insensitive. 2018-07-24 21:55:10 +01:00
Peter Powell
6522f7e3e7 Remove Log() calls made unnecessary by the previous commit. 2018-07-20 12:34:24 +01:00
Peter Powell
87e328a1fb Add the family() member to the sockaddrs union. 2018-07-18 19:21:45 +01:00
Peter Powell
35b70631f0 Merge tag 'v2.0.26' into master. 2018-04-22 13:02:19 +01:00
Peter Powell
aa19c8fc02 Remove swhois messages set in the oper block on deoper.
Closes #1240.
2018-04-09 11:59:09 +01:00
Dylan Frank
93fa544b26 Optimize some behaviour in the core (#1476). 2018-04-09 04:41:04 +01:00
systocrat
3398ce7e50 Improve performance under load of OnDataReady and remove C-isms.
Re-use variables initialized within loop, const-ify config variables
accessed repeatedly, remove eol_found label.

Merges #1451.
2018-01-25 12:11:51 +00:00
Peter Powell
be12938393 Remove duplicated code in LocalUser::GetServerPort(). 2018-01-20 11:28:47 +00:00
Peter Powell
6efee33e92 Fix User::ChangeRealHost() to change the real host properly. 2017-12-23 15:35:50 +00:00
Peter Powell
e467fd0a6f Rename <security:hidewhois> to <security:hideserver>.
The previous name was horrible and didn't describe what the setting
actually does.
2017-12-22 01:11:14 +00:00
Peter Powell
3013a9dfbf Inherit non-core connect class settings properly.
Based partially on a patch by Attila.
2017-11-20 12:14:45 +00:00
Peter Powell
36040be295 Fix a ton of -Wsign-conversion warnings. 2017-11-17 15:33:01 +00:00
Peter Powell
5287af979e Add a class which encapsulates the concept of token lists. 2017-11-13 19:44:04 +00:00
Peter Powell
d23c030c9a Merge tag 'v2.0.25' into master. 2017-11-12 17:33:21 +00:00
Peter Powell
52de083afc Use InvalidateCache in the sockaddrs overload of OnSetClientIP.
This was done to the string variant in d3b82b2f7f.
2017-11-05 23:05:24 +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
attilamolnar
c65b5b4a1e Clean up the initialization of ConnectClass and ServerConfig. 2017-10-15 23:41:50 +01:00
Peter Powell
12c67fb0e5 Fix RPL_SERVERVERSION treating the modes as a single parameter. 2017-10-04 14:10:19 +01:00
Peter Powell
3b595d39a5 Get rid of irc::sockets::satoap().
This function is being misused in all but one scenario. It isn't
really worth keeping IMO.
2017-09-12 15:05:24 +01:00
Peter Powell
74dd288542 Move <dns:timeout> out of the core. 2017-09-03 19:28:50 +01:00
Peter Powell
97b5e92c3d Make the build reproducible by removing time related macros.
The compile time on boot is not accurate as it will only change
when the translation unit containing it is edited.

The startup time in RPL_SERVERCREATED is a lot more useful than
the compilation time. ngIRCd also implements this behaviour.
2017-08-26 15:27:59 +01:00
Peter Powell
c0aba5b728 Merge v2.0.23 and v2.0.24 into master. 2017-07-09 22:45:00 +01:00
Attila Molnar
df8015951b Merge pull request #1230 from SaberUK/insp20+ipcache
[2.0] Invalidate the caches properly when User::SetClientIP is called.
2017-05-17 23:41:32 +02: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
Attila Molnar
c165759fbe Fix users receiving a QUIT with themselves as source when host cycling in certain cases
The OnBuildNeighborList handler in m_auditorium can add the cycling user to the exceptions as an always send exception. To fix, remove the user from the exceptions before processing them.

Reported by @genius3000 on IRC
2016-12-05 11:37:08 +01:00
Peter Powell
02575ecbbb Allow classes to take a port range. 2016-10-25 09:36:54 +01:00
Peter Powell
d3b82b2f7f Invalidate the caches properly when User::SetClientIP is called. 2016-09-25 21:45:46 +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
19f0c09aa7 Convert ModeHandler::GetNumParams() to NeedsParam() that returns a bool 2016-08-29 14:50:08 +02:00
Attila Molnar
c528328748 Initialize more User and LocalUser fields using the init list 2016-08-10 17:30:02 +02:00
Attila Molnar
f87ad8e72c Update style of initializer lists in User and LocalUser constructors 2016-08-10 17:26:49 +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
7d37139ba6 Handle numerics with a source other than the local server in User::WriteNumeric() 2016-03-29 16:22:07 +02:00