Commit graph

  • 5b20716e9b
    [cleanup] floodprot: move set::modef-* handling from core to module. Bram Matthys 2019-03-25 13:10:03 +01:00
  • 6c837d3ce4
    Cleanup _test_operclass config code. Bram Matthys 2019-03-25 09:33:59 +01:00
  • 9ca53369e7
    Lots of config code checks for "if (!cep->ce_varname)" however this is a condition that will never happen, as it is already handled by the parser. Bram Matthys 2019-03-25 09:21:15 +01:00
  • 15d77298fe
    Empty blacklist::dns::type could lead to a crash (config file error). All the rest are things that "will never happen" or dead code. Bram Matthys 2019-03-25 09:04:31 +01:00
  • 4490b8744e
    Use HAVE_RLIMIT instead of FORCE_CORE. And get rid of error message. Bram Matthys 2019-03-24 15:50:56 +01:00
  • a9b3e05b0c
    Brain damage Bram Matthys 2019-03-24 15:22:02 +01:00
  • b3e9d391d8
    More updates to api-command, remove old functions such as del_Command(). Bram Matthys 2019-03-24 15:18:41 +01:00
  • e19639a1bd
    Fix compile problem #ifndef DEBUGMODE Bram Matthys 2019-03-24 15:13:34 +01:00
  • 59e3a42304
    For the function declaration of command overrides, module coders are now encouraged to use CMD_OVERRIDE_FUNC(override_xyz) rather than declaring the function themselves. This works similar to CMD_FUNC(somecmd). Example: /* Forward declaration */ CMD_OVERRIDE_FUNC(override_xyz); [..] MOD_LOAD(somemodule) { CmdoverrideAdd(modinfo->module, "XYZ", override_xyz); [..] CMD_OVERRIDE_FUNC(override_xyz) { /* Do something useful here */ Bram Matthys 2019-03-24 08:27:26 +01:00
  • 60952328f0
    Add function type checking in CommandAdd() And, for aliases, now use AliasAdd(), CommandAdd() is no longer permitted for it. Do any modules use this? Bram Matthys 2019-03-24 08:16:45 +01:00
  • f9db29b768
    Smart.. moving code to a separate function resulting in the use of sizeof() on a char *... Bram Matthys 2019-03-24 07:48:08 +01:00
  • cb60bf286d
    Get rid of this useless DLLFUNC junk. This is only needed for symbols that need to be visible from the outside of the .DLL (symbol export). Long story short: you never need to use this yourself in a module. Where needed it is already handled by UnrealIRCd. Bram Matthys 2019-03-23 19:53:12 +01:00
  • edfc832aa8
    Some minor code cleanups, use CMD_FUNC() where possible. Bram Matthys 2019-03-23 19:45:34 +01:00
  • 7bcf419eda
    Add references to the technical S2S documentation @skip-ci Bram Matthys 2019-03-23 19:39:56 +01:00
  • e4ddc80c2a
    Code cleanup: m_protoctl. Has always been ugly, just was never bothered enough to clean it up. Also, remove PROTOCTL -<option> support, which is not used by anything and was only supported on a handful of options anyway. Also remove some debugging and PROTOCTL_MADNESS. Finally, add a reference to the technical documentation. Bram Matthys 2019-03-23 19:23:10 +01:00
  • a11ee2b1a2
    Skip * in PROTOCTL SERVERS=. This probably caused a bug which could be triggered by doing quick server connects (crossing requests), something that the PROTOCTL SERVERS= code is supposed to prevent (it should be safe to connect to X servers at the same time, even every second). Bram Matthys 2019-03-23 19:04:59 +01:00
  • 5992a759f7
    return 0.. Bram Matthys 2019-03-23 18:44:00 +01:00
  • ab50bf2afc
    Communicate server featureset (and changes) across server links. Previously various information was only available for directly attached servers, since it is communicated via PROTOCTL. Now, we will also communicate information about leafs behind us. IRCOps can use the /SINFO command to see these server features. Services codes don't need to do anything, or at least are not expected to do anything. They can still receive the information and do something with it, of course... Read the following technical documentation for full information, as it will outline very specific rules for using the command S2S: https://www.unrealircd.org/docs/Server_protocol:SINFO_command Bram Matthys 2019-03-23 17:56:59 +01:00
  • 335a7569bb
    Bugs like this can keep you occupied for a while: safestrdup(somevar, s+10); ..always caused somevar to be NULL :D. Bram Matthys 2019-03-17 20:16:21 +01:00
  • 7ad6b15e92
    It would be nice if expired TKL's actually get removed (duh). Caused by fac1e30b91 from March 3, 2019. Bram Matthys 2019-03-15 16:34:30 +01:00
  • 761ae02935
    Change assert() to if..!...abort() so it produces proper core dumps. Yeah, that's how it works, unfortunately. Bram Matthys 2019-03-15 16:03:48 +01:00
  • fd73739847
    Handle SSL_ERROR_WANT_READ in a better way. Bram Matthys 2019-03-10 15:00:45 +01:00
  • 872830bdf2
    I give up. Test framework will no longer run on Travis-CI, ruby is broken. Bram Matthys 2019-03-09 15:38:08 +01:00
  • b396dc3c20
    .. Bram Matthys 2019-03-09 15:33:31 +01:00
  • f47dc78418
    . Bram Matthys 2019-03-09 15:31:48 +01:00
  • 2c114d458e
    ............................... Bram Matthys 2019-03-09 15:27:46 +01:00
  • f039e08f0b
    Travis-CI + ruby = .... Bram Matthys 2019-03-09 15:17:31 +01:00
  • e0a4e7fe71
    Travis-CI: :/ Bram Matthys 2019-03-09 15:05:47 +01:00
  • 2e79c34c11
    Travis-CI: more diagnostics Bram Matthys 2019-03-09 11:59:33 +01:00
  • 99b379fca8
    Travis-CI: :( Bram Matthys 2019-03-09 11:47:18 +01:00
  • 584f3e9d6d
    Travis-CI: argh argh Bram Matthys 2019-03-09 11:32:27 +01:00
  • 20550981f8
    Travis-CI: argh! Bram Matthys 2019-03-09 11:12:55 +01:00
  • 5d69fe9d93
    Missing return NULL in find_tkline_match_zap_matcher (due to commit from a few days ago) Bram Matthys 2019-03-09 10:23:19 +01:00
  • ad063ba36a
    Fix ./unrealircd spkifp complaining that it could not find the certificate file if you specified a relative path. Until now only absolute paths worked. Bug reported by CrazyCat. Bram Matthys 2019-03-08 09:32:05 +01:00
  • fac1e30b91
    Major TKL speed improvements. Bram Matthys 2019-03-03 20:25:05 +01:00
  • 87c81e7e9f
    This fsync() call slows things down too much at high connection rates. Bram Matthys 2019-03-03 19:03:05 +01:00
  • 41c1f01011
    Bump version to 4.2.3-dev to make clear that this git version is under development. Bram Matthys 2019-03-03 17:14:09 +01:00
  • 16659de0b2
    Changing set::anti-flood::invite-flood had no effect. It was always 4:60. Reported by Betaman2k in https://bugs.unrealircd.org/view.php?id=5222 Bram Matthys 2019-03-03 14:16:49 +01:00
  • 766055d5c0
    Fix set::ban-setter and set::topic-setter being set to nick-user-host out of the blue. The classic C mistake where = instead of == was written in an if statement... duh. Bram Matthys 2019-03-02 08:49:47 +01:00
  • de1548de73
    UnrealIRCd 4.2.2. Bram Matthys 2019-03-01 14:38:44 +01:00
  • f599ea02cb
    WHO(X) auto-conversion bug regarding 'a' and 'c' which no longer exist in WHOX. Bram Matthys 2019-03-01 14:34:43 +01:00
  • d068cd41ca
    Fix crash in websocket module. Bram Matthys 2019-03-01 14:10:06 +01:00
  • d7e5ff82f0
    Update curl-ca-bundle.crt (Wed Jan 23 04:12:09 2019 GMT) Bram Matthys 2019-03-01 13:57:35 +01:00
  • e16e2b36d8
    UnrealIRCd 4.2.2-rc2 Bram Matthys 2019-02-11 09:19:38 +01:00
  • c6f01aa3f1
    Protect 2 more commands against rogue server to server traffic. Bram Matthys 2019-02-11 08:47:51 +01:00
  • 294560f944
    KILL: Not sure if this fixes anything but at least it's less cryptic. Bram Matthys 2019-02-10 17:30:39 +01:00
  • 9a0bd31cf8
    Fix unlikely crash if you had a spamfilter targetting away that was only local (so in .conf) and it hit a remote user. Also, re-indent this monster... Bram Matthys 2019-02-10 17:09:48 +01:00
  • 1dbef111fb
    Fix crash if receiving malformed server to server traffic (from an authenticated server): TKL deleting a spamfilter with insufficient parameters. Bram Matthys 2019-02-10 17:08:47 +01:00
  • 1f03dbdd05
    CHGNAME and SETNAME: if a remote user used a realname that was banned on this server then we could possibly crash. (Fortunately most networks use the same ban realname blocks on all their servers) Bram Matthys 2019-02-10 14:54:28 +01:00
  • 3712fad891
    When a server does not use SID's, set empty id as before. This bug was post-rc1, caused by dde8f914fb. Bram Matthys 2019-02-10 14:48:29 +01:00
  • 7e444d3b9f
    Fix SJOIN bug in rc1: was using an incorrect buffer when SJSBY was not used, such as in a mixed version scenario. Bram Matthys 2019-02-10 14:43:34 +01:00
  • 77d3e844dc
    Fix a bunch of REHASH memory leaks. Bram Matthys 2019-02-10 10:36:20 +01:00
  • 7d5c3a1b68
    Fix hang/crash due to commit from yesterday, reported by k4be. (cause: dde8f914fb) Bram Matthys 2019-02-10 09:56:53 +01:00
  • c7f00edd9d
    Quicker handshake when using many CAP requests and/or AUTHENTICATE. I was wondering why the handshake took 4 seconds for a client which authenticates using SASL. Turns out that fake lag was kicking in due to the many "CAP req" commands combined with the other handshake stuff. Now the first 15 (or so) "CAP" requests are "free", without fake lag. Bram Matthys 2019-02-09 16:47:24 +01:00
  • 78cd122a05
    Allow SASL post-registration. Unfortunately the anope unreal4 protocol module also requires an update to support this. Bram Matthys 2019-02-09 14:39:34 +01:00
  • dde8f914fb
    Internal: make UID available early (pre-auth). Bram Matthys 2019-02-09 14:35:48 +01:00
  • a740570710
    Fix crash bug (in rc1 only) if ::ssl-options are being used and the outdated SSL protocols/ciphers are being checked. Bram Matthys 2019-02-08 12:02:52 +01:00
  • 9c0f1f3505
    Fix OOB read in m_whox. Strange order for a compare, first the 2nd byte, then the 1st byte ;) Anyway, this issue can only be triggered since rc1, no big issue. Bram Matthys 2019-02-06 19:31:10 +01:00
  • e443182573
    UnrealIRCd 4.2.2-rc1 Bram Matthys 2019-02-06 16:00:38 +01:00
  • 988f64e3b3
    Fix crash when linking (caused by commit from 4 days ago). Bram Matthys 2019-02-06 12:54:37 +01:00
  • f92a6fec79
    Release notes: clarify flood limit in older versions @skip-ci Bram Matthys 2019-02-06 12:17:47 +01:00
  • 70a9a6f6b2
    Added INVITE and KNOCK flood protection (command rate limiting). set::anti-flood::invite-flood defaults to 4 per 60 seconds. set::anti-flood::knock-flood defaults to 4 per 120 seconds. Bram Matthys 2019-02-06 12:00:51 +01:00
  • 57f97a5a43
    Removed a debugging message and fixed TARGMAX being broken after a REHASH. Bram Matthys 2019-02-06 09:24:31 +01:00
  • 1e1f750b44
    New set::max-targets-per-command which configures the maximum number of targets accepted for a command, eg /MSG nick1,nick2,nick3,nick4 hi. Also changed the following defaults (previously hardcoded): * PRIVMSG from 20 to 4 targets, to counter /amsg spam * NOTICE from 20 to 1 target, to counter /anotice spam * KICK from 1 to 4 targets, to make it easier for channel operators to quickly kick a large amount of spambots See https://www.unrealircd.org/docs/Set_block#set::max-targets-per-command Bram Matthys 2019-02-04 17:51:09 +01:00
  • 1e6d8ea536
    Fix compile problem due to previous commit. Bram Matthys 2019-02-04 14:42:17 +01:00
  • 9f4296d648
    New set::anti-flood::max-concurrent-conversations which configures the maximum number of conversations a user can have with other users at the same time. Until now this was hardcoded at limiting /MSG and /INVITE to 20 different users in a 15 second period. The new default is 10 users, which serves as a protection measure against spambots. See https://www.unrealircd.org/docs/Set_block#maxcc for more details. Bram Matthys 2019-02-04 09:52:08 +01:00
  • 7153468081
    UnrealIRCd will now warn if your ulines { } are matching UnrealIRCd servers. See https://www.unrealircd.org/docs/FAQ#WARNING:_Bad_ulines Bram Matthys 2019-02-02 08:37:50 +01:00
  • be50ef4a1e
    Get rid of warning on-boot "Channel modes changed at runtime" Bram Matthys 2019-02-02 07:53:07 +01:00
  • f9415e1a91
    m_whox: now accept and transform most classic UnrealIRCd WHO requests such as "WHO +s serv.er.name" to "WHO serv.er.name s". It also does advanced transformation such as "WHO -m z" to "WHO -z m" **copy paste from comment in code** Flag a: user is away << no longer exists Flag c <channel>: user is on <channel> << no longer exists Flag g <gcos/realname>: user has string <gcos> in his/her GCOS << now called 'r' Flag h <host>: user has string <host> in his/her hostname << no change Flag i <ip>: user has string <ip> in his/her IP address << no change Flag m <usermodes>: user has <usermodes> set << behavior change Flag n <nick>: user has string <nick> in his/her nickname << no change Flag s <server>: user is on server <server> << no change Flag u <user>: user has string <user> in his/her username << no change Behavior flags: Flag M: check for user in channels I am a member of << no longer exists Flag R: show users' real hostnames << no change (re-added) Flag I: show users' IP addresses << no change (re-added) **end of paste** Of course we cannot convert 100% from classic UnrealIRCd WHO to WHOX-style because things like "WHO +m r" could mean either "search for +m in realname" (WHOX) or "search for +r in modes" (classic). In cases like this we assume WHOX, so to not break any WHOX compatibility. Bram Matthys 2019-02-01 17:46:59 +01:00
  • eecd29bdc8
    WHOX: adaptions for UnrealIRCd part 1: * No longer require a ! prefix for ircops to see users * "WHO *" is no longer different than the rest (previously in m_whox would only list users on 1st channel) Neither is part of the WHOX specs. Bram Matthys 2019-02-01 15:21:53 +01:00
  • 52e72c2ed9
    Update reference to RELEASE-NOTES.old (link used wrong branch) Bram Matthys 2019-02-01 14:27:07 +01:00
  • 1790efd05d
    The message sent to users upon *LINE can now be adjusted completely via set::reject-message::kline and set::reject-message::gline. See https://www.unrealircd.org/docs/Set_block#set::reject-message Suggested by k4be in https://bugs.unrealircd.org/view.php?id=5198 Bram Matthys 2019-02-01 14:25:52 +01:00
  • ff9ca3c8ef
    Add 005 token DEAF=d Bram Matthys 2019-01-31 17:47:06 +01:00
  • a999b305a5
    Remove 005 CMDS= token, which was an unnecessary abstraction and was not picked up by any other IRCd. The 005 tokens KNOCK MAP USERIP are now used instead. We do not announce STARTTLS in 005 anymore as this is way too late (post-handshake, sensitive info already sent and/or received). Not to mention STARTTLS is not the preferred method to setup a secure connection in the first place. Module coders: this means CommandAdd() with M_ANNOUNCE should no longer be used. If a 3rd party module does use it, then UnrealIRCd will now raise a warning. In a later UnrealIRCd version the flag is likely to be removed completely so would cause a compile error. (I doubt any module uses this anyway... but still..) Bram Matthys 2019-01-31 17:34:07 +01:00
  • 6cbd2744d7
    * The default maximum topic length has been increased from 307 to 360. * You can now set more custom limits. The default settings are shown below: set { topic-length 360; /* maximum: 360 */ away-length 307; /* maximum: 360 */ quit-length 307; /* maximum: 395 */ kick-length 307; /* maximum: 360 */ }; * A new 005 token has been added: QUITLEN. Works similar to KICKLEN. Bram Matthys 2019-01-30 17:50:17 +01:00
  • 41239119f8
    Update release notes a bit. Bram Matthys 2019-01-30 16:54:56 +01:00
  • 88030c63fb
    1) Simplify dealing with isupport (numeric 005) stuff from the config code. There's now no longer a difference between a rehash or boot. 2) Other cleanups in s_conf.c as well. Looks better now. 3) Sort the 005 tokens alphabetically. Enforcing some other 'logical order' was futile and this makes things consistent between rehashes. Bram Matthys 2019-01-30 16:42:19 +01:00
  • 98fca7979f
    Code cleanup: internally rename iConf.nicklen to .nick_length to match the convention that set::some-name is called iConf.some_name Bram Matthys 2019-01-30 10:49:44 +01:00
  • 5eaa711969
    Update release notes to reflect current state. Bram Matthys 2019-01-28 16:06:59 +01:00
  • d085fb09c1
    Three new config items to make topic and ban setter nick!user@host and to control synchronization of the +beI setter across server links (that is, the feature just introduced one commit ago): set { topic-setter [nick|nick-user-host]; /* nick = default */ ban-setter [nick|nick-user-host]; /* nick = default */ ban-setter-sync [yes|no]; /* yes = default */ }; This also means that --with-topicisnuhost / TOPIC_NICK_IS_NUHOST is now removed, since this now goes via set::topic-setter. Bram Matthys 2019-01-28 15:41:44 +01:00
  • 874d99e0eb
    For +beI lists the 'set by' and 'set at' information is now synchronized when servers link. Thus, you can see the real setter and time also after a netsplit (/mode #channel b). This, unlike before, when setby was name.of.server and time was the time of the synch. This requires the entire network to run UnrealIRCd 4.2.2 or later. Suggested by k4be in https://bugs.unrealircd.org/view.php?id=5183 Technical details: the PROTOCTL token to enable this is "SJSBY" and see https://www.unrealircd.org/docs/Server_protocol:SJOIN_command for more information, in particular the last section there. Bram Matthys 2019-01-28 14:36:41 +01:00
  • 4aa2d47deb
    Run test framework with a hub in-between to test command propagation. Bram Matthys 2019-01-28 09:29:44 +01:00
  • ed1f47f80a
    Can't stand http:// URLs... Bram Matthys 2019-01-25 20:50:05 +01:00
  • 2a3dd0e350
    what is this 'return 0' doing here... Bram Matthys 2019-01-23 16:36:42 +01:00
  • ac9463a83f
    Rename hook HOOKTYPE_CAN_SEND_SECURE to HOOKTYPE_SEND_CHANNEL, which is more descriptive and AFAICT nobody uses this hook in a public 3rd party module anyway. Bram Matthys 2019-01-21 17:02:14 +01:00
  • 083826ee94
    modules/usermodes/noctcp (+T): 1) only block CTCP's and not CTCP REPLIES, 2) allow IRCOps to bypass user mode +T restrictions. Reported by St3Nl3y, HeXiLeD and Koragg in https://bugs.unrealircd.org/view.php?id=5166 Bram Matthys 2019-01-21 16:55:29 +01:00
  • ee20160bc3
    Add another type for HOOKTYPE_CONFIGTEST and HOOKTYPE_CONFIGRUN for CONFIG_LISTEN. This so a module can have custom options in the listen block. Like all other CONFIG_* options you are supposed to return 1 if your module handles this option and 0 if not. From HOOKTYPE_CONFIGTEST you can also return -1 to indicate error for an option that is handled by the module. Note that 'cep' is passed, that is the option for the variable that is being checked, and not the 'ce', the parent of the listen block. If you want to access the parent, then use ce->ce_prevlevel. Bram Matthys 2019-01-21 13:55:20 +01:00
  • 7a3ba05c03
    Similar to previous commit, fix resolving of temporary modules (.so files) in crash reports as well... and make them in English, regardless of the users' locale... better for us ;) Bram Matthys 2019-01-21 13:37:52 +01:00
  • 6fcacdf148
    Fix './unrealircd backtrace' not working correctly in non-English environments. The script symlinks any missing tmp/xxxx.so's to the real module name but depends on English statements (ugly, yeah, but it works). With a non-English locale this did previously not work so the backtrace was screwed. Bram Matthys 2019-01-21 13:30:15 +01:00
  • 41e6d5b7e9
    Fix for strangely formatted 'creation date' if compiled with certain locales. Reported by k4be. Bram Matthys 2019-01-21 13:26:22 +01:00
  • bcb667c59e
    New hook HOOKTYPE_WELCOME (aClient *acptr, int after_numeric): allows you to send a message at very specific places during the initial welcome https://www.unrealircd.org/docs/Dev:Hook_API#HOOKTYPE_WELCOME Bram Matthys 2019-01-21 10:12:46 +01:00
  • 25ede84a04
    This makes more sense. Also testing announcement bot :D Bram Matthys 2019-01-21 10:10:51 +01:00
  • c726df5758
    Travis-CI: The job exceeded the maximum log length, and has been terminated. Fantastic. https://github.com/travis-ci/travis-ci/issues/1382 Bram Matthys 2019-01-18 15:31:14 +01:00
  • 013dd06aee
    Travis-CI: End of argh. Bram Matthys 2019-01-18 14:45:55 +01:00
  • 3bacb28555
    Travis-CI: no comment Bram Matthys 2019-01-18 14:24:19 +01:00
  • 8a9971618f
    Travis-CI: ..or without sudo.. I really love this.. Bram Matthys 2019-01-18 14:05:45 +01:00
  • 3e3da94a41
    Travis-CI: new image, have to install bundler again. Bram Matthys 2019-01-18 14:00:00 +01:00
  • 4d5e627b27
    Update release notes: * New set::outdated-tls-policy which describes what to do with clients that use outdated SSL/TLS protocols (eg: TLSv1.0) and ciphers. The default settings are to warn in all cases: users connecting, opers /OPER'ing up and servers linking in. The user will see a message telling them to upgrade their IRC client. This should help with migrating such users, since in the future, say one or two years from now, we would want to change the default to only allow TSLv1.2+ with ciphers that provide Forward Secrecy. Instead of rejecting clients without any error message, this provides a way to warn them and give them some time to upgrade their outdated IRC client. https://www.unrealircd.org/docs/Set_block#set::outdated-tls-policy Bram Matthys 2019-01-18 13:38:14 +01:00
  • 425571a8d2
    Update UnrealIRCd version to 4.2.2-dev Bram Matthys 2019-01-18 13:22:58 +01:00
  • e82dbdce1a
    Update doc/RELEASE-NOTES.old. Now contains 4.2.0 and 4.2.1 release notes, I forgot the 4.2.0 one earlier.. Bram Matthys 2019-01-18 13:20:28 +01:00