Commit graph

  • fcf0ff4e3c
    Document client statuses (cptr->status) and some more renames. Bram Matthys 2019-09-11 16:52:11 +0200
  • 2df5326615
    Overhaul of all client flag macros (mass renaming, always use getters/setters/checkers) Bram Matthys 2019-09-11 16:00:47 +0200
  • e372e9118d
    Move cptr->count to cptr->local->identbufcnt since this only used by the ident reading code nowadays, which obviously only happens for locally connected users. Bram Matthys 2019-09-11 14:36:12 +0200
  • d80e601760
    Rename sptr->username to sptr->ident, since that is what it is. [skip ci] Bram Matthys 2019-09-11 14:31:14 +0200
  • c69bdbe175
    ->status is now an enum of ClientStatus and STAT_xx -> CLIENT_STATUS_xx Bram Matthys 2019-09-11 14:27:32 +0200
  • 792709bf4f
    Move cptr->fd to cptr->local->fd. This may cause some crashes while the rest of the code is audited / checked ;) Bram Matthys 2019-09-11 14:21:07 +0200
  • 68b7368305
    Document Client struct [skip ci] Bram Matthys 2019-09-11 14:14:09 +0200
  • cb236eea88
    Rename cptr->from to cptr->direction, since the 'from' is rather misleading as cptr->from is NOT (necessarily) the server where cptr is connected to. So we now call it cptr->direction since it indicates the directly connected server (or &me)... in other words: the direction of the client path. Bram Matthys 2019-09-11 14:03:27 +0200
  • 6a019d6188
    Let's allow user connections. *sigh* (at least we have automated tests for this) Bram Matthys 2019-09-11 13:43:50 +0200
  • 628aab3a76
    Duh, check NULL pointer properly in Auth_Check() in case of NULL structs. Fixes crash-on-connect due to an earlier commit last hour. Bram Matthys 2019-09-11 13:38:49 +0200
  • 1e6a3bdd55
    Bump PASSWDLEN to something "large enough for everyone" (256) rather than current (48). Bram Matthys 2019-09-11 13:27:21 +0200
  • 786054e6b7
    Remove 'md5', 'sha1' and 'ripemd160' from auth code. These are insecure and old authentication types that are already deprecated in UnrealIRCd 4.x. They don't contain any rounds which means they can be cracked at a rate of millions per second. Use the secure hashing type 'argon2' instead (or, if you must, use the less secure 'bcrypt' type). Bram Matthys 2019-09-11 13:17:28 +0200
  • 04607f5b1a
    Various auth cleanups: Auth_Check() now returns 1 on allow and 0 on deny (!) to keep things simple, rather than having 4 different return values (yes.. FOUR!). [skip ci] Bram Matthys 2019-09-11 13:09:14 +0200
  • 05e776fb71
    More cleanups: now mostly auth-related: use better names and use enums for authentication types. Rename Auth_Make to Auth_Hash. Add docs. etc. Bram Matthys 2019-09-11 12:37:34 +0200
  • e8d53ffe8e
    And more type changes to make things consistent and more readable. Bram Matthys 2019-09-11 11:04:31 +0200
  • 2a5ea10453
    Lots of changes again. Most notable: Cmdoverride -> CommandOverride, including things like CallCmdoverride() to CallCommandOverride(). Type changes like aTKline -> TKL and many more (in particular aSomething to Something etc. such as aWatch to Watch) but these are less used by 3rd party module coders. Bram Matthys 2019-09-11 10:18:09 +0200
  • f55682cbaa
    More (typedef) struct name changes. Mostly configuration but also aCommand to RealCommand. Although not sure if this latter makes things a lot more descriptive :D. Can revisit later. (more to follow) Bram Matthys 2019-09-11 10:04:47 +0200
  • 23116d344a
    Give structs the same name as the typedefs. Rename aClient to Client, aChannel to Channel, and some more. Third party module coders will love this. But.. it makes things more logical and the doxygen output will look more clean and logical as well. (More changes will follow) Bram Matthys 2019-09-11 09:48:00 +0200
  • fbd7ff1f5a Implemented set::min-nick-length (default 0 aka no minimum required) and added a line for it to /stats S, as a bonus my editor strips trailing whitespace :D GottemHams 2019-09-09 20:33:38 +0200
  • a0db737408 hideserver module still used old-style version string [skip-ci] GottemHams 2019-09-09 19:46:46 +0200
  • 5b361e69bb
    Get rid of configure check for strtoul and the src/strtoul.c file. Bram Matthys 2019-09-09 17:49:10 +0200
  • ec2fdb82e0
    Get rid of configure check for strerror() Bram Matthys 2019-09-09 17:43:58 +0200
  • 80bc15c6d3
    Apparently our strtoken() is special, don't bother then. Still, get rid of the configure check. Bram Matthys 2019-09-09 17:32:59 +0200
  • 1cdbbe043f
    Make strtoken() use strtok_r / strtok_s. And get rid of the config check, as strtoken() never existed anyway. Bram Matthys 2019-09-09 17:16:38 +0200
  • e5f73fdbcd
    Don't use custom inet_pton{4,6} functions [skip ci] Bram Matthys 2019-09-09 17:08:25 +0200
  • 078cfa88ea
    Get rid of configure check for strtok() [skip ci] Bram Matthys 2019-09-09 16:58:44 +0200
  • 36cb2226cc
    Get rid of checking inet_pton/net_ntop. Should be available on IPv6-capable operating systems. And we require IPv6-capable since UnrealIRCd 4 already, so.. ;) Bram Matthys 2019-09-09 16:51:31 +0200
  • c86d03dcca
    Windows build fixes Bram Matthys 2019-09-09 16:46:57 +0200
  • 5f9e919b18
    Remove more configure checks: malloc.h, AC_FUNC_SETPGRP, AC_FUNC_SETVBUF_REVERSED [skip ci] Bram Matthys 2019-09-09 16:37:09 +0200
  • 5e4c481d93
    Yes, strcasecmp is always available, configure. Bram Matthys 2019-09-09 16:30:02 +0200
  • ca2239827e
    Get rid of NICK_GB2312/NICK_GBK/NICK_GBK_JAP in config.h. I am not aware of anyone actually using these. So running with this was rather untested (if it worked at all, which I doubt). Bram Matthys 2019-09-09 16:19:38 +0200
  • 7d4b7c2fed
    Get rid of stricmp/strnicmp (use strcasecmp/strncasecmp) Bram Matthys 2019-09-09 16:13:32 +0200
  • 9636f83a2b
    Always assume POSIX signals (on non-Windows, that is). Bram Matthys 2019-09-09 16:08:18 +0200
  • 05af50d1fc
    Remove some HPUX stuff. We don't support or test this so leaving this in the source gives a false impression. Also some ULTRIX stuff (from 1995???). Bram Matthys 2019-09-09 15:52:32 +0200
  • 1183e88077
    Remove old SunOS / Solaris / AIX code. And some other outdated things for non-POSIX systems... Bram Matthys 2019-09-09 15:46:19 +0200
  • 8d453ffc40
    Get rid of index() and some useless casts Bram Matthys 2019-09-09 14:54:49 +0200
  • 3f690ec1df
    Get rid of configure checks for inet_addr and inet_ntoa. Bram Matthys 2019-09-09 14:47:42 +0200
  • d434cf948b
    Get rid of bcmp/bcopy/bzero. Bram Matthys 2019-09-09 14:41:40 +0200
  • e34888802a
    Move check for C99 compiler to the beginning and print some meaningful hint to the user if it cannot be found. Bram Matthys 2019-09-09 14:05:32 +0200
  • 2276185939
    Get rid of more ./configure checks. (Let's see if Windows complains again...) Bram Matthys 2019-09-09 13:56:37 +0200
  • a0aec38df2
    Get rid of DISABLE_USERMOD, since you can achieve the same in U5 via the restrict-commands module in a dynamic way (with more options too). Bram Matthys 2019-09-09 13:27:25 +0200
  • 5141e3cdfe
    Fix for Windows due to previous [skip ci] Bram Matthys 2019-09-09 13:16:31 +0200
  • a9e0655650
    Remove more old stuff from ./configure Bram Matthys 2019-09-09 13:11:30 +0200
  • 90d39d4665
    tkldb module: Turn a few config_error() into config_warn() since we continue, while errors mean we would fail to boot (or fail to rehash) which is not the case. Bram Matthys 2019-09-08 20:50:55 +0200
  • c423f9c8f7
    Remove some more ./configure checks that are likely unneeded. Bram Matthys 2019-09-08 20:22:45 +0200
  • 7be894bcda
    Let's see if we can drop unreal_CHECK_TYPE_SIZES in configure.ac. Saves some ./configure CPU time. Bram Matthys 2019-09-08 20:14:35 +0200
  • 0c4502bf79
    Define and use SIPHASH_KEY_LENGTH rather than some magic value. Bram Matthys 2019-09-08 14:15:23 +0200
  • ebd9c738f2
    Some cleanup/rewrites of 'r' (repeat) in the floodprot module (+f). Use a more simple hashing algorithm and one that uses 64 bits, don't allocate any memory dynamically, just use an int64_t. Also, only do the hashing if 'r' is actually enabled in +f on the channel, as otherwise it's pointless. Bram Matthys 2019-09-08 14:06:40 +0200
  • 9fe82e4a9f
    Fix read-after-free in HOOKTYPE_LOCAL_PART hook. Bram Matthys 2019-09-08 08:41:58 +0200
  • e9847a2279
    Fix OOB read due to last commit (62c7f67f7a) Bram Matthys 2019-09-08 08:38:13 +0200
  • 62c7f67f7a
    Make StripControlCodes() filter out zero width space as well (U+200B). Bram Matthys 2019-09-07 18:32:21 +0200
  • 08a4c489f6
    Update HELPOP SPAMFILTER. The syntax was OK but the explanation under it was confusing since it was explaining the fields in a different order. Bram Matthys 2019-09-07 18:00:58 +0200
  • ec5a66ba80
    UnrealIRCd 5.0.0-alpha2 release Bram Matthys 2019-09-07 15:54:15 +0200
  • 7eb9ed90cb
    Cleanup sub1_from_channel. Don't kick insecure users on +z channels when we are merging (equal TS), only kick our users when we are on the losing side (=if there is a different TS, IOTW: the channel was recreated later). Bram Matthys 2019-09-07 14:45:47 +0200
  • ab0608a98c
    Don't send OperOverride notice if &me (server) [skip ci] Bram Matthys 2019-09-07 11:05:25 +0200
  • c6cfc2f5c8
    Fix receiving "+i must be set" twice (for users) or more (for opers) [skip ci] Bram Matthys 2019-09-07 10:48:20 +0200
  • b9e2f1c5fb
    Fix crash in RMTKL (only possible with rogue server traffic) [skip ci] Bram Matthys 2019-09-07 10:23:54 +0200
  • 62dc1181ba
    Protect against late bogus PROTOCTL SID=xxx (from authenticated servers) Bram Matthys 2019-09-07 10:16:46 +0200
  • d3db771a1b
    Add some tracing code until a certain RMTKL bug is found. Bram Matthys 2019-09-07 09:35:50 +0200
  • 7c9325d8d1
    Move get_mode_bitbychar() and get_extmode_bitbychar() to the core rather than helper functions in floodprot. (I need them) Bram Matthys 2019-09-07 09:24:26 +0200
  • 62c0edde12
    Partially rewrite SVSMODE #chan code to fix a crash from hostile servers. Also get rid of the TS parameter in there, which nobody uses anyway. It didn't even refer to the channel TS.. quite confusing.. it used user->since... so it seems it was against crossing users (nick changes)... well, we have UID for that now. Bram Matthys 2019-09-07 08:02:07 +0200
  • 579c4bd884
    Compile with -O1 in ASan mode, rather than -O0. Bram Matthys 2019-09-06 20:57:20 +0200
  • dc5fd50a54
    Fix potential issues if msgbypass extban module is not loaded. [skip ci] Bram Matthys 2019-09-06 20:54:06 +0200
  • a3e911a174
    Make issecure (+Z/-Z) use the same msgids network-wide. Bram Matthys 2019-09-06 15:18:45 +0200
  • cf873d826a
    Add MessageTag *mtags argument to various (channel related) hooks, in case they need access to those. For more information, see: https://bugs.unrealircd.org/view.php?id=5343 Bram Matthys 2019-09-06 14:30:16 +0200
  • 4a6f56e967
    Fix list modes not being restored properly from channeldb. Bram Matthys 2019-09-06 13:06:53 +0200
  • 758dc74315
    Fix memory leak in new ban exception code. Bram Matthys 2019-09-06 09:15:27 +0200
  • 9b1fa66434
    Duh, I meant, NOREMOVETMP. [skip ci] Bram Matthys 2019-09-06 09:13:19 +0200
  • 46486310dc
    Obey #define REMOVETMP (for testing) Bram Matthys 2019-09-06 09:02:17 +0200
  • 73d320f553
    Use enum for BAN_ACT_* and silence a (stupid) clang warning. Bram Matthys 2019-09-05 20:54:31 +0200
  • 868895c70a
    Add except ban type 'all'. For a full list of options, see https://www.unrealircd.org/docs/Except_ban_block#UnrealIRCd_5 Also, fix shun (s) not being available as an exempt option (bug). Bram Matthys 2019-09-04 19:33:42 +0200
  • 750479aa2c
    Add more /ELINE options to bypass the following types: unknown data flood, antirandom, antimixedutf8 and ban version. Just type /ELINE to see the options / syntax. (TODO: more testing) Bram Matthys 2019-09-04 18:43:06 +0200
  • 72664fc3df
    Deal with hostile servers in msgid code Bram Matthys 2019-09-02 20:45:58 +0200
  • 0724c0ce13
    stfu compiler, you are wrong Bram Matthys 2019-09-02 20:16:20 +0200
  • 7ff78b4cf6
    Make config test for except ban::type. Also use 'connect-flood' rather than throttling, since that's the term we use everywhere in our documentation and for config options. Bram Matthys 2019-09-02 20:11:09 +0200
  • a006a9aea9
    Recode tkl type table. '/STATS except' works now (lists ELINEs and except ban in config). If you want to play with exceptions, type /ELINE for information. For the configuration file it is important to know that 'except tkl' is now called 'except ban'. Also if you do not specify an except ban::type we now default to exempt from all regular server ban types (but not qline, spamfilters, blacklist or throttling) Bram Matthys 2019-09-02 19:23:03 +0200
  • 58618bf2b6
    Add support for ban exceptions, via /ELINE and via the config file. Still need to fix some FIXME/TODO items and things haven't been fully tested yet, so server sync issues or crashes are still possible. Release notes will be updated another day as well.. Bram Matthys 2019-09-01 20:45:47 +0200
  • 76b1655f9b
    Add TKL exception type handling (phase 2 of X) Bram Matthys 2019-09-01 10:52:35 +0200
  • cdcac52d81
    It helps if I git add src/api-efunctions.c... Bram Matthys 2019-09-01 09:40:44 +0200
  • 3fcd25b542
    Split off efunctions to src/api-efunctions.c, use enums and a different style of initializing the efunctions table which is less error-prone. Bram Matthys 2019-09-01 09:34:07 +0200
  • 2483376796
    Fix crash on adding QLINE (reported by The_Myth) and 'STATS bannick' should really show QLINEs as well. Up to now it only showed (local) config banned nicks. Fixes https://bugs.unrealircd.org/view.php?id=5387 Bram Matthys 2019-09-01 08:31:03 +0200
  • 8a6c84876e
    Rewrite/cleanup huge portion of TKL handling (16 files updated, but src/modules/tkl.c is the main one). Also move DB writing/reading functions to src/misc.c so they can be removed out of channeldb and tkldb. Bram Matthys 2019-08-31 15:24:52 +0200
  • 0116c4f0d6
    Partial TKL recode - (pre) phase 1 Bram Matthys 2019-08-28 20:11:24 +0200
  • e6c321c7dc
    Some cleanups / comments added, but no real code changes. Bram Matthys 2019-08-28 18:08:38 +0200
  • c1babb7411
    Fix reading unitialized memory due to one of the commits from yesterday (in the crash reporter) Bram Matthys 2019-08-28 07:12:05 +0200
  • 19a0d205e6
    Enable core dumps if using ASan (applies to alpha/beta and dev builds) Bram Matthys 2019-08-27 16:27:56 +0200
  • d477e4930e
    Crash reporter: include libc for better debugging. Bram Matthys 2019-08-27 16:05:32 +0200
  • 308ac85bba
    UnrealIRCd crash reporter: require TLSv1.2 or later Bram Matthys 2019-08-27 14:22:53 +0200
  • 083953ca00
    Release notes: Developers: mention ModuleHeader changes. [skip ci] Bram Matthys 2019-08-27 14:15:02 +0200
  • 17c6b5976d
    Update output of MODULE command (MODULE -all) to include the author, slightly change the output and use RPL_TXT rather than NOTICE. Bram Matthys 2019-08-27 14:12:00 +0200
  • fc69c5300e
    Windows buildbot fixes [skip ci] Bram Matthys 2019-08-27 12:47:30 +0200
  • fa29e22ea2
    Windows build: attempt build tests [skip ci] Bram Matthys 2019-08-27 08:46:54 +0200
  • 10faaf91ba
    Bump module header version to "unrealircd-5", add author field and remove old dependency field (never used, was always NULL, broken since 3.2.x) I'll add some constraints later on things like names and versions. IOTW: more changes to follow, don't mass update your own mods yet. Bram Matthys 2019-08-26 20:29:47 +0200
  • 526e5e09a4
    Fix for commit from an hour ago. One was unable to remove the +nt modes by f.e. setting set::modes-on-join to "+"; Bram Matthys 2019-08-26 19:35:40 +0200
  • a72e4f39f2
    Fix both duplicate channel messages (reported by The_Myth) and set::broadcast-channel-messages not having any effect (reported by FwdInTime). Yes, both fixes from earlier were incomplete. Bram Matthys 2019-08-26 19:21:14 +0200
  • 890e4c9acd
    Set set::modes-on-join to +nt by default and also put it in the example.conf. Leaving it empty by default is strange and contrasts with our "secure by default" principle. Bram Matthys 2019-08-26 18:22:12 +0200
  • d331f22dbc
    Windows buildbot updates Bram Matthys 2019-08-25 19:00:26 +0200
  • 8d2ac9c50e
    Fix set::broadcast-channel-messages configuration item not working. Reported by FwdInTime in https://bugs.unrealircd.org/view.php?id=5367 Bram Matthys 2019-08-25 18:52:39 +0200
  • e0b941739c
    Fix problem with PRIVMSG echoing back in S2S. Reported by The_Myth. Bram Matthys 2019-08-25 18:49:10 +0200
  • 4e1768d9ed
    Windows: Blah Bram Matthys 2019-08-25 18:41:30 +0200