Adam
845ca576b4
More properly track topic change sources and allow users with access to change topics through topiclock
2015-01-28 22:57:15 -05:00
Alexander Barton
d4732faf41
Correctly assign nicks to their respective host servers
...
Use the "server token" parameter of NICK commands to find the host server and
correctly assign the nick name to this server.
This allows Anope to correctly free all nick names again when (remote) servers
leave the network, which fixes arbitrary "KILL attacks" when such nick names
reconnect later on.
Initial debugging and patch by DukePyrolator, thanks a lot!
2014-11-30 21:50:11 +01:00
Alexander Barton
95684187b6
Fix server token assignment of servers in the network
...
1. the directly linked server, our upstream, always has token "1", and
2. for remote servers in the network, the token and description filds
were interchanged during registration,
therefore up to now no server could be found by Server::Find() using its
assigned server token.
2014-11-30 21:49:34 +01:00
Adam
18b3c572f4
ngircd doesn't allow sourceless messages
2014-10-06 14:06:36 -04:00
Adam
f627a3bacd
Core prep for p10 stuff
2014-05-21 08:50:40 -04:00
Adam
fb5c5e3442
Set minus no arg on +l in all proto mods
...
Set oper modes/vhost on oper too, evan after iding
Add umode +q to plexus
2014-04-02 22:37:35 -04:00
Alexander Barton
547fe0da1a
ngircd protocol module: really kill users
...
ngIRCd doesn't send a QUIT for each user KILL'ed, so kill them immediately.
2014-03-05 10:26:54 +01:00
Adam
fee016bb84
Handle nick collisions somewhat instead of blindly overwriting the nicks
...
in memory, which does weird things.
For fun different ircds implement this differently (Unreal compares
timestamps, TS6 compares timestamps and user username/host), and whether
or not we get a kill for our user also varies, so just kill everyone.
This can't really happen anyway with properly set qlines, only if
services haven't yet set the qlines, or possibly in a bot add/nick
user introduce race, or with enforcers, which not many ircds require.
2014-02-27 22:42:54 -05:00
Adam
4d9273efa4
Unbreak account stuff from commit ccae59430a.
2014-01-21 17:20:15 -05:00
Adam
34826f71c7
Merge pull request #22 from fgsch/misc
...
Better ngIRCd support
2013-08-25 01:49:42 -07:00
Adam
847cceaba3
Create persistent channels on startup, which used to work and got lost somewhere
...
Fix some oddities with using persistent channels with no botserv
Send list modes to uplink when bursting
Fix issues with persist + keepmodes
Fix /os modes clear all not clearing all status modes
Fix operwall on ratbox/plexus
Dont apply mlock in SetCorrectModes since that just recursively calls itself unncessarially
Change command logging to show the command name and not the service name
2013-08-25 04:48:43 -04:00
Federico G. Schwindt
76f5d4b316
Sort parameters and correct comments
2013-08-25 04:54:35 +01:00
Federico G. Schwindt
9b59925144
For ngIRCd, on nick change set mode -R
2013-08-25 04:54:32 +01:00
Federico G. Schwindt
243d781e99
Add login support for ngIRCd
...
This is implemented via the accountname METADATA command
2013-08-24 17:56:46 +01:00
Federico G. Schwindt
9d6f88de39
Add certificate fingerprint support for ngIRCd
2013-08-07 23:44:58 +01:00
Adam
1e625b6837
Use MessageSource as the source for many IRCDProto funcs
...
Keep track of what user modes are oper only/server only/etc
2013-08-01 13:39:35 +00:00
Federico G. Schwindt
e908dc0dc7
Make ChannelModeStatus level mandatory
...
Levels are used in Channel::SetCorrectModes() when removing modes.
2013-07-23 18:03:32 +01:00
DukePyrolator
f6b915a169
added whois support to the ngircd protocol module, thanks to fgs for sending the patch
2013-07-19 22:28:33 +02:00
DukePyrolator
2ea594d677
added protocol support for incoming NOTICEs
2013-07-08 05:05:13 +02:00
Adam
5ac1e9175d
Set vhosts when users id to an account (and not a nick), add account arg to user ctor to ease handling users who connect already identified
2013-06-19 19:03:56 -04:00
Adam
37b3535543
Initially attach all modules to all events, and detach them as the events are run if they are not implemented per module
2013-05-27 19:36:37 -04:00
Adam
22658d63bd
Get rid of the remaining references in the core to specific services. Move more stuff out of the core to the proper modules.
2013-05-26 17:13:11 -04:00
Adam
1d0bb9b26b
Rework the config file reader to be much more flexible and move many configuration directives to the actual modules they are used in.
2013-05-05 01:55:04 -04:00
Adam
f08dbced60
Allow assigning service bots via /invite
2013-04-14 17:39:01 -05:00
Adam
207c46c871
Move some of the modules in extras/ that arent really extra out of extras. Mark our modules as VENDOR and allow modules to have multple types.
2013-04-10 22:26:40 -05:00
Adam
325b018ed0
Add a default method for user's SendModeInternal
2013-04-09 00:00:52 -05:00
Adam
fb7fef7a84
Optimizations of much of the more commonly used code
2013-04-07 23:46:44 -05:00
Adam
ddaa001daf
Merge usefulness of Flags and Extensible classes into Extensible, made most flags we have juse strings instead of defines/enums
2013-01-21 22:31:16 -05:00
Adam
827469600e
Move nickserv validate stuff to an event in nickserv.cpp
2013-01-02 13:59:33 -05:00
Adam
b591e8cdc8
Use the same object for chanusercontainer and userchancontainer
2012-12-28 10:43:30 -05:00
Alexander Barton
fdc62daa8b
ngircd protocol module: Fix NJOIN, actually join users to the channel
...
Bug introduced by commit d33a0f75 : "Pretty large coding style cleanup,
in source doc cleanup, and allow protocol mods to depend on each other":
Since then, the NJOIN command has been "ignored", no users were added
to channels at all while linking ...
2012-12-27 22:15:33 +01:00
DukePyrolator
f711dd3460
ngircd protocol module: improved vhost support
2012-12-05 06:18:36 +01:00
Adam
ded89b0d49
Made IRCDProto a Service
2012-11-23 23:10:41 -05:00
Adam
36b1166cf6
Change the return type of ircdmessage to void now that we don't use it, add an ircd message module event, and a few more fixups
2012-11-23 16:56:06 -05:00
Adam
0e7bd9f3ba
Fix compile/pch generation
2012-11-22 20:27:42 -05:00
DukePyrolator
7963534940
fixed some compile errors
2012-11-22 21:44:51 +01:00
Adam
d33a0f75a5
Pretty large coding style cleanup, in source doc
...
cleanup, and allow protocol mods to depend on each
other
2012-11-22 00:50:33 -05:00
DukePyrolator
368d469631
added METADATA and vhost support to the ngircd protocol module
2012-11-18 10:34:35 +01:00
Adam
5d6fb2427e
Fixed some stuff spotted by Cronus, made db_old convert ACCESS_INVALID levels to ACCESS_FOUNDER, fix cs_enforce +R from an earlier commit, fixed ChangeModeInternal TS checking when IRCds don't send TS on mode
2012-11-16 00:03:15 -05:00
DukePyrolator
504232b388
added support for the ngircd SQUERY command
2012-11-10 18:29:35 +01:00
DukePyrolator
0c47017046
added support for SVSNICK in the ngircd protocol module
2012-11-03 09:40:01 +01:00
Adam
1730bfb2bc
Send uids everywhere when setting modes on clients
2012-10-30 21:22:10 -04:00
Adam
36f357c354
Fixed build errors and warnings with -std=c++11
2012-10-30 17:10:31 -04:00
Adam
b07928eea9
Clean up ngircd proto mod slightly, and send sqlines before introducing clients
2012-10-30 15:50:39 -04:00
DukePyrolator
9c8570ac68
readded ngircd protocol support
2012-10-29 04:17:24 +01:00
Adam
605b5d5717
Removed ngircd as we've decided not to support it at this time
2011-05-16 02:57:28 -04:00
Adam
ddfb16de1a
Fixed compile
2011-03-14 20:16:38 -04:00
DukePyrolator
3fbf39b25d
Added some useful Anope::Version functions to prevent some files from unnecessarily rebuilding on every make
2011-03-13 03:42:30 -04:00
DukePyrolator
fbae3344ff
added ns_cert
2011-03-12 09:27:16 +01:00
Alexander Barton
09a5791bc6
ngIRCd protocol: announce Anope with its version
2011-03-09 12:29:59 -05:00