Commit graph

  • f5137678ff
    Update 5.0.0-alpha4 release notes a bit. Bram Matthys 2019-10-12 08:42:40 +02:00
  • d55eb642e5
    Fix 421 in restrict-commands, again. Bram Matthys 2019-10-11 20:42:05 +02:00
  • 139e5faae6
    UnrealIRCd 5.0.0-alpha4 (release tomorrow) Bram Matthys 2019-10-11 19:28:44 +02:00
  • 03645750f1
    Protect against services that don't reply to SASL: time out the SASL session after a 15 seconds timeout. The exact timeout value can be changed by adjusting set::sasl-timeout, which should be (quite a bit) less than set::handshake-timeout by the way. 15<30 now, so fine. Bram Matthys 2019-10-11 19:17:59 +02:00
  • 3c4d14ca58
    Warn about the necessity of an anope patch, which is pending since February... Bram Matthys 2019-10-11 18:55:01 +02:00
  • 96509f6802
    except tkl { } -> except ban { } in example*conf [skip ci] Bram Matthys 2019-10-11 17:57:13 +02:00
  • 9f2530fdb7
    Fix 421 numeric syntax if command is blocked (commit from yesterday). Reported by westor. Bram Matthys 2019-10-11 17:06:57 +02:00
  • ff5f2d97a0
    Some release notes markdown changes (always fun when 3 markdown editors show the output in 3 different ways, and github is even different) [skip ci] Bram Matthys 2019-10-11 16:23:31 +02:00
  • 62352c2b70
    Update release notes, refer to web/github or the .md file. Bram Matthys 2019-10-11 16:19:54 +02:00
  • a5e6fb4a12
    Convert release notes to markdown (add many links) [skip ci] Bram Matthys 2019-10-11 15:58:33 +02:00
  • 65f6b97ea7
    Advertise as "draft/labeled-response-0.2" rather than "draft/labeled-response". [skip ci] Bram Matthys 2019-10-11 15:57:43 +02:00
  • 98f1974c8f
    Don't fall through (fix for previous commit). Bram Matthys 2019-10-11 15:01:07 +02:00
  • 77bee69951
    Fix Windows build Bram Matthys 2019-10-11 14:46:13 +02:00
  • 394168c288
    Style fixes: "char* " -> "char *" etc. Bram Matthys 2019-10-11 12:23:45 +02:00
  • ccaec871bb
    And some fixes, to previous commits and older issues. Bram Matthys 2019-10-11 12:19:04 +02:00
  • aec54db360
    Add is_extended_ban() which does a quick check for "~x:". This, rather than scattered checks - which are sometimes different - everywhere in the source code. Also extban handler "is_ok" was being called with EXBTYPE_EXCEPT rather than EXBTYPE_INVEX for +I. (Not reported by anyone) Bram Matthys 2019-10-11 11:17:50 +02:00
  • 33c176e59e
    Juse in case pcre2_get_error_message() fails... Bram Matthys 2019-10-11 11:17:29 +02:00
  • 1d0fa3278f
    Protect against flawed S2S traffic: more checks for bad base64 encoded IP addresses. Bram Matthys 2019-10-11 11:16:16 +02:00
  • 3d81c7101c
    Merge branch 'unreal50' of github.com:unrealircd/unrealircd into unreal50 Bram Matthys 2019-10-10 19:51:56 +02:00
  • f7a35bd77e
    Fix for change from yesterday in JOIN: parv[1] would point to a stack buffer in do_join but it goes out of scope after a return from that function, still pointing to invalid data. Duh. Bram Matthys 2019-10-10 19:46:08 +02:00
  • be571f81c6 Changed snotice to numeric 421 for commands disabled/restricted by the restrict-commands module GottemHams 2019-10-09 21:00:41 +02:00
  • 80353cd7d3
    Win...... [skip ci] Bram Matthys 2019-10-09 19:23:50 +02:00
  • e1fdba7931
    Windows....................... Bram Matthys 2019-10-09 19:16:34 +02:00
  • 62110778dd
    Silence Windows compiler warning Bram Matthys 2019-10-09 18:55:04 +02:00
  • 04334f022e
    Fixes for Windows build Bram Matthys 2019-10-09 18:20:06 +02:00
  • 22dec96f9a
    No clean_channelname() anymore but a valid_channelname() function. Also, deal with servers with different set::allowed-channelchars settings: * We reject the link if set::allowed-channelchars settings differ between UnrealIRCd 5 servers. * For the case where you have a mixed network consisting of UnrealIRCd 4.x and UnrealIRCd 5.x servers we try not to desync, BUT will not allow anyone to join the invalid channels locally. For IRCOps a message is printed with additional information on such a failed JOIN attempt. See https://www.unrealircd.org/docs/Set_block#set::allowed-channelchars for the different settings, which are best and U4<->U5 advice. Bram Matthys 2019-10-09 17:55:23 +02:00
  • fbbd915403
    Reject link if set::allowed-channelchars differ. Bram Matthys 2019-10-09 15:59:59 +02:00
  • 798b223ee3
    Convert some more stuff to enums (config preprocessor mostly). Bram Matthys 2019-10-06 07:54:46 +02:00
  • d2a93c3a03
    websocket module will now only disable show-connect-info on the ports that have listen::options::websocket. It will no longer disable it on all ports. Bram Matthys 2019-10-06 07:37:55 +02:00
  • ba7ff01e0f
    Remove some unnecessary checks Bram Matthys 2019-10-06 07:25:31 +02:00
  • 24f73d8c4f
    Crash fixes for can_send_to_user / can_send_to_channel from earlier. Bram Matthys 2019-10-05 18:31:29 +02:00
  • c399aab016
    Support for labeled-response in LIST (I really wanted this) Bram Matthys 2019-10-05 18:15:48 +02:00
  • f992a0c1c0
    Finish up labeled-response implementation. Load by default to get the thing tested. Will do at least 1 other commit soon related to this. Bram Matthys 2019-10-05 17:33:22 +02:00
  • b3947c7a14
    Use proper HOOK_* return types in HOOKTYPE_PRE_LOCAL_CONNECT, fixes crashes. Bram Matthys 2019-10-05 15:19:40 +02:00
  • 9a8fd43873
    ISON response was incorrect Bram Matthys 2019-10-05 15:04:54 +02:00
  • b2705089ce
    Clean up floodprot_*nickchange now that the prototypes are the same for local and remote. Suggested by westor. Bram Matthys 2019-10-05 12:58:41 +02:00
  • 2eecf4f2da
    Use generic numeric 531 (ERR_CANTSENDTOUSER) for all such cases and use hook CAN_SEND_TO_USER rather than HOOKTYPE_PRE_USERMSG (which is now removed). Bram Matthys 2019-10-05 12:27:49 +02:00
  • 4a59e66af2
    Fix for previous Bram Matthys 2019-10-05 09:55:28 +02:00
  • df71812707
    HOOKTYPE_CAN_SEND and HOOKTYPE_PRE_USERMSG changes: 1) HOOKTYPE_CAN_SEND is now called HOOKTYPE_CAN_SEND_TO_CHANNEL The arguments and return values are unchanged 2) similarly can_send() is now called can_send_to_channel() 3) If you want to block or alter a message you must now use HOOKTYPE_CAN_SEND_TO_CHANNEL and return HOOK_DENY from there with an appropriate *errmsg filled (see nocolor and many other modules for an example) 4) You CANNOT use HOOKTYPE_PRE_USERMSG anymore to block a message. I actually wanted to rip this hooktype out entirely, but delayjoin needs it. HOOKTYPE_PRE_USERMSG is only useful for notification that a message is going to be sent BEFORE it is actually sent (which is exactly what delayjoin needs, so it can send a JOIN if the user is currently invisible). 5) This is all to make things more clean: * HOOKTYPE_PRE_USERMSG is only for delayjoin * HOOKTYPE_CAN_SEND_TO_CHANNEL is used for exactly what the name implies. You can also change the message text there, such as for +G, +S, etc. Bram Matthys 2019-10-05 09:48:33 +02:00
  • 798f502875
    Mass change (at least this one could be fully automated): 'chptr' -> 'channel' to be consistent with the 'sptr' -> 'client' rename earlier. Bram Matthys 2019-10-05 08:49:10 +02:00
  • c2d7da6e35
    Rename channel list to 'channels', for next commit. Bram Matthys 2019-10-05 08:47:24 +02:00
  • 858debdd01
    Protect against duplicate PROTOCTL EAUTH (possible memleak) Bram Matthys 2019-10-05 07:49:54 +02:00
  • 3a64077f51
    Use 'client' everywhere (if there is no confusion) instead of 'sptr' or 'cptr'. This so I - and others - don't constantly have to wonder whether the client is called sptr, cptr or acptr in a simple routine. Insane --> 212 files changed, 6814 insertions(+), 6945 deletions(-) Couldn't just mass-replace of course since there are places where there are multiple clients involved. So had to check each function. Also renamed some 'acptr' to 'target' and such. Bram Matthys 2019-10-04 15:25:35 +02:00
  • 40cd6aa639
    Get rid of reference counting in User, which was unused. Bram Matthys 2019-10-04 13:25:56 +02:00
  • 9d98e6b411
    do_join: int -> void Bram Matthys 2019-10-04 13:22:53 +02:00
  • e8c17e3aed
    Get rid of pseudo ID's. This also means that SASL with anope won't work anymore if you run latest anope 2.0.6. You need the fix from Feb 9, 2019: da6e2730c2 (.. which also fixes SASL problems with anope + UnrealIRCd 4 by the way) or just run anope latest git (2.0 branch). Bram Matthys 2019-10-04 13:06:30 +02:00
  • 999fde8fee
    Update release notes (the module coders section) on the recent changes. Bram Matthys 2019-10-04 12:38:01 +02:00
  • 3d5e49e701
    Get rid of FLUSH_BUFFER, since we no longer signal things that way. Merge check_init and AllowClient into one single AllowClient() and make it use the more logic 1 and 0 return values for allow / deny. Similarly, use logic 1 / 0 return values for verify_link. Bram Matthys 2019-10-04 12:30:51 +02:00
  • 3f18cf5ea1
    find_shun() return value change, simply 1 / 0 now. Bram Matthys 2019-10-04 11:41:12 +02:00
  • 9e4dbf8c89
    dead_link() -> dead_socket() since that is more descriptive Bram Matthys 2019-10-04 11:36:34 +02:00
  • cbe20e1d5a
    check_unknowns -> handshake_timeout, check_tkls -> match_tkls and inversion of the return value. Bram Matthys 2019-10-04 11:35:51 +02:00
  • 92df36a87f
    Return values of various functions changed, in particular the ones that deal with finding TKL's or spamfilters etc. More will likely follow, to make things more logical. Also, run_spamfilter -> match_spamfilter place_host_ban, can_privmsg, check_dcc, find_tkline_match all impacted. Bram Matthys 2019-10-04 11:30:27 +02:00
  • 3126a3fae4
    BIG changes internally that will break all modules and required many code changes in UnrealIRCd itself: 1) Clients are no longer freed directly by exit_client. Most fields are freed, but 'sptr' itself is not, so you can use IsDead() on it. 2) exit_client now returns void rather than int 3) ALL command functions return void rather than int. Of course this also affects do_cmd, command overrides, etc. Bram Matthys 2019-10-04 10:28:41 +02:00
  • ea6651fb26
    More Windows fixes [skip ci] Bram Matthys 2019-10-02 15:00:35 +02:00
  • 0092263fee
    Possibly fix Windows build Bram Matthys 2019-10-02 14:55:15 +02:00
  • ab3feff7c2
    exit_client() now takes 3 parameters rather than 5: ** Exit this IRC client, and all the dependents (users, servers) if this is a server. * @param sptr The client to exit. * @param recv_mtags Message tags to use as a base (if any). * @param comment The (s)quit message * @returns FLUSH_BUFFER is returned if a local client disconnects, * otherwise 0 is returned. This so it can be used from * command functions like: return exit_client(sptr, ....); Bram Matthys 2019-10-02 14:54:09 +02:00
  • 1c746afdf1
    Fix broken build by last minute change Bram Matthys 2019-10-02 14:45:25 +02:00
  • 4ac8015f84
    Remove 'cptr' from all commands, hooks, etc. It only confuses people and 'sptr' is sufficient and in most cases the only one you should care about. Should you need it, you can access sptr->direction in cases where you need the old information (usually only for some sendto_* functions and some protoctl checks), so 'cptr' was redundant too. Bram Matthys 2019-10-02 14:25:40 +02:00
  • 396ae3f218
    Module coders: rename M_* to CMD_*, eg M_SERVER -> CMD_SERVER. Also add more doxygen documentation. Bram Matthys 2019-09-30 10:25:26 +02:00
  • 9d7cf312cf
    Cleanup main line parsing code, move do_numeric() to parse.c. Add complete doxygen documentation for parse.c. Bram Matthys 2019-09-30 08:56:21 +02:00
  • d7ef752888
    Detect combination of non-UTF8 nickchars in use and websocket type text. In such a case we refuse to run since the consequences are too big. (Actually I may change the non-UTF8 channel warning to an error as well, right now it isn't.. simply because I cannot read a certain setting) Bram Matthys 2019-09-23 10:13:56 +02:00
  • 9669e32447
    test set { } settings before all the rest Bram Matthys 2019-09-23 09:33:57 +02:00
  • 0b5a4bf51d
    Compile fix for Windows Bram Matthys 2019-09-23 08:29:46 +02:00
  • 3f5ea851cb
    Do a better job at detecting ASan Bram Matthys 2019-09-23 08:14:41 +02:00
  • 4ae374477f
    Add websocket support for 'text' instead of current 'binary'. And change how you use websockets in the configuration file: In addition to loading the websocket module you now ALSO have to mark specific listen blocks with listen::options::websocket, and you have to specify a type as well. Example: listen { ip *; port 1234; options { websocket { type binary; } } } The type 'text' is compatible with kiwi although this is currently completely untested. Also I should add something to the release notes about this change. Tomorrow... Bram Matthys 2019-09-22 20:49:37 +02:00
  • d9e8206b80
    Fix memory leak in modules.c Bram Matthys 2019-09-22 20:19:46 +02:00
  • 5a57eec4c7
    Channel names must now be valid UTF8 by default. We actually have 3 possible settings of set::allowed-channelchars: utf8: Channel must be valid UTF8, this is the new default ascii: A very strict setting, for example in use at freenode, the channel name may not contain high ascii or UTF8 any: A very loose setting, which allows almost all characters in the channel name. This was the OLD default, up to and including UnrealIRCd 4. It is no longer recommended. For most networks this new default setting of utf8 will be fine, since by far most IRC clients use UTF8 for many years already. If you have a network that has a significant portion of chatters that are on old non-UTF8 clients that use a specific character set then you may want to use set { allowed-nickchars any; } Some Russian and Ukrainian networks are known to need this. Bram Matthys 2019-09-22 18:40:29 +02:00
  • cd713369b1
    Update Windows makefile, was missing ident_lookup. [skip ci] Bram Matthys 2019-09-22 15:25:56 +02:00
  • 6687591bb0
    Fix for build without DEBUGMODE. Bram Matthys 2019-09-22 15:06:47 +02:00
  • 5b8f393a8f
    * EventAdd() changed the order of parameters and expects every_msec now which specifies the time in milliseconds rather than seconds. This allows for additional precision, or at least multiple calls per second. The minimum allowed every_msec value is 100 at this time. The prototype is now: EventAdd(Module *module, char *name, vFP event, void *data, long every_msec, int count); Bram Matthys 2019-09-22 15:05:00 +02:00
  • 4d277ccef8
    Clean up and comment SocketLoop. Also preparations for later. Bram Matthys 2019-09-22 14:18:46 +02:00
  • b17deb7517
    Fix for previous commit. See also the notes there :D Bram Matthys 2019-09-22 13:35:17 +02:00
  • 117a87dd8e
    I/O engine performance improvements (and fixes) This is work in progress. The work was already done but the patch was postponed until after alpha3 since it's not sufficiently stable yet. Bram Matthys 2019-09-22 08:42:24 +02:00
  • 784ba625ec
    Fix crash shortly after THROTTLE RESET. Bug was introduced yesterday with commit b4636f183c Bram Matthys 2019-09-22 08:24:05 +02:00
  • 97cf32c941
    Compile fix for Windows Bram Matthys 2019-09-21 18:31:49 +02:00
  • e846596b37
    UnrealIRCd 5.0.0-alpha3 Bram Matthys 2019-09-21 18:19:33 +02:00
  • c3f250750b
    Add support for storing ELINEs in tkl.db. Reported by westor in https://bugs.unrealircd.org/view.php?id=5418 Bram Matthys 2019-09-21 18:12:20 +02:00
  • 953cb774ad
    ASan: log to tmp/unrealircd_asan.<pid> and attach this if the IRCd crashes (has a core file) to the crash bug report. Also, disable leak detection since this is too noisy and would cause a core dump each time + bothering the user to submit a crash report + send this crashreport etc. We still enable this in our own tests though, but not for end-users. Bram Matthys 2019-09-21 18:01:57 +02:00
  • 4ecd7cca4c
    Fix memory leak when unloading an ISupport module. Bram Matthys 2019-09-21 16:52:27 +02:00
  • b4636f183c
    connthrottle: use SavePersistentPointer/LoadPersistentPointer rather than temporary file to dump and read current settings (the old method). Bram Matthys 2019-09-21 16:41:23 +02:00
  • 330cf9ed24
    Remove confusing information regarding /TSCTL. Bram Matthys 2019-09-21 16:22:49 +02:00
  • 83492a613d
    Fix memory leak in modules codes. Bram Matthys 2019-09-21 16:07:44 +02:00
  • dd536b4a92
    Fix memory leak with conditional config. And remove the comment which predicted this memory leak (:D) Bram Matthys 2019-09-21 16:04:33 +02:00
  • f88f30c815
    Mark delayjoin module as perm, as we don't support dynamic unloading this, which would be too much coding effort for such an unusual event. (Reloading is fine though, for eg upgrading-on-the-fly) Bram Matthys 2019-09-21 15:30:59 +02:00
  • 4426cdacc9
    Disable the warning from 95f9c56a16 that was not supposed to be committed :D It would also warn about if'd out blocks, which is confusing, so best to disable the warning altogether for now. Bram Matthys 2019-09-18 20:09:10 +02:00
  • b24fe0f336
    Just in case someone uses a set::anti-flood::connection-flood of X:1... Bram Matthys 2019-09-18 19:35:56 +02:00
  • 95f9c56a16
    Add warning if an unknown $VAR is encountered (without @define). Also, you can escape a $VAR to $$VAR if you really just mean $VAR literally. Such usage would be very rare though. Note that the parser is smart enough to know that $var is never a global variable, it only warns for valid variable names like $VAR and even then only if it's at the end or has whitespace/dot/comma/etc. So... false positives should be extremely low... Bram Matthys 2019-09-18 09:43:45 +02:00
  • 2c9be4eb97
    Conditional conf: syntax is now always @define $VAR "xyz". Also restrict the variable names to UPPERCASE, digits and underscores (A-Z0-9_). This makes them easily distinguishable from other items in the conf, so they don't clash with for example $ip in blacklist::reason. Bram Matthys 2019-09-18 08:42:28 +02:00
  • 41f2b5f884
    Fix some more numerics with incorrect arguments in U5: WATCH and failed to JOIN reasons, such as when banned. Bram Matthys 2019-09-17 18:53:07 +02:00
  • 66345246ef
    Fix incorrect /ADMIN output, reported by westor. Bram Matthys 2019-09-17 18:29:09 +02:00
  • b2cfc6de69
    Fix double free in AWAY due to changes of past week. Bram Matthys 2019-09-16 07:41:33 +02:00
  • 70a8985d43
    Compile with -fno-common Bram Matthys 2019-09-15 16:53:58 +02:00
  • 54cb647925
    Fix odd looking remote /REHASH message to globops. Bram Matthys 2019-09-15 15:47:56 +02:00
  • f3ec97ee23
    floodprot (+f): fix issue where 't' was kicking innocent users due to flooding. The 't' action was activated in if no 'r' type was present because the counter was not reset. https://bugs.unrealircd.org/view.php?id=5401 Bram Matthys 2019-09-15 15:33:30 +02:00
  • c7c3fbdfa8
    struct stats *ircstp; -> IRCStatistics ircstats; (for statistics, /STATS) Bram Matthys 2019-09-15 14:48:45 +02:00
  • bea2564e5d
    IRCStatistics ircstats; -> IRCCounts irccounts; (this is used for LUSERS) Bram Matthys 2019-09-15 14:39:51 +02:00
  • 677afe9ca4
    Don't use memory pools when using ASan, since it would miss things. -> See my comment in src/mempool.c Bram Matthys 2019-09-15 14:37:25 +02:00
  • f81f221b13
    Use memory pool for Client and LocalClient. Also reorder struct a bit. Bram Matthys 2019-09-15 11:55:45 +02:00
  • 1a24a634e5
    Make Link functions (make_link, free_link) use memory pool code. Also clean up a bit. Bram Matthys 2019-09-15 11:25:47 +02:00
  • edb199841a
    Move all the (remaining) LIST stuff to modules/list and use ModData. Bram Matthys 2019-09-15 11:07:15 +02:00