Commit Graph

  • ebcfe6a6bc
    Add sendtaggednumeric/sendtaggednumericfmt (#250) Val Lorentz 2023-04-15 16:34:38 +0200
  • 50e5cb7cbe
    Bleh, fix a warning... Bram Matthys 2023-04-15 14:52:06 +0200
  • 2b1fad89be
    ** UnrealIRCd 6.1.0-rc2 ** Bram Matthys 2023-04-15 14:07:06 +0200
  • 4b448f2aaa
    New option listen::spoof-ip, only valid when using UNIX domain sockets (so listen::file). This way you can override the IP address that users come online with when they use the socket (default was and still is `127.0.0.1`). Bram Matthys 2023-04-15 10:36:03 +0200
  • eca416fdc6
    Update release notes a bit [skip ci] Bram Matthys 2023-04-15 10:13:12 +0200
  • f1e70fa06c
    whowasdb: work around -Waddress warning for W_SAFE_PROPERTY() [skip ci] Bram Matthys 2023-04-15 09:44:14 +0200
  • 88e028246e
    JSON-RPC and JSON Logging: expose client.creation_time for remote clients too if the information is available (is communicated since UnrealIRCd 6.0.4 in server to server traffic). [skip ci] Bram Matthys 2023-04-15 09:30:10 +0200
  • 0d2ca78ed8
    JSON-RPC: whowas.get: name -> nick rename [skip ci] Bram Matthys 2023-04-15 09:27:50 +0200
  • 7ad160f57a
    JSON-RPC: WHOWAS fetching is now whowas.get, also expose not only logon_time/logoff_time but also connected_since. Bram Matthys 2023-04-15 09:22:44 +0200
  • 2184f38e7e
    Expose more WHOWAS fields in JSON-RPC and change add_history() to take a reason for the add, like: nick-change, quit, server terminating. Add logon time. Bram Matthys 2023-04-15 08:57:15 +0200
  • e2320cb506
    Update release notes a bit [skip ci] Bram Matthys 2023-04-15 08:31:06 +0200
  • e7e2a5a275
    whowasdb: write currently online users as well, as if they already left. This so, if we die, there is still a history of them. Bram Matthys 2023-04-15 08:17:54 +0200
  • f0cd1c59c5
    JSON-RPC: initial work on user.get_whowas (work in progress) Bram Matthys 2023-04-15 07:59:13 +0200
  • 45201fffe7
    New module 'whowasdb': persistent WHOWAS history (preserved between reboots) Bram Matthys 2023-04-14 19:27:43 +0200
  • 2fd7c9cfc4
    Set loop.terminating for RESTART also (so channeldb etc write the db) Bram Matthys 2023-04-14 19:22:22 +0200
  • 8aa004271f
    Ban exempt 127.0.0.1 instead of whole 127.* Bram Matthys 2023-04-14 07:31:22 +0200
  • 66b8259234
    JSON-RPC: don't do filtering on low ASCII like we do for JSON logging. This way things like the TOPIC will keep their color codes if they have it. Bram Matthys 2023-04-13 18:51:06 +0200
  • dec834c193
    Fix for previous fix (unmasked packets) Bram Matthys 2023-04-12 13:17:13 +0200
  • 68171b5582
    Websocket: apparently PONG frames are sometimes unmasked, even though RFC6455 clearly says: Defines whether the "Payload data" is masked. If set to 1, a masking key is present in masking-key, and this is used to unmask the "Payload data" as per Section 5.3. All frames sent from client to server have this bit set to 1. Bram Matthys 2023-04-12 12:27:20 +0200
  • 57c90496e8
    JSON-RPC: add rpc.add_timer and rpc.del_timer so you can run a command every <xyz> msec (minimum: 250). Can be useful to schedule an rpc.stats call every 1000msec for instance. Of course timers are destroyed if the client exits. Bram Matthys 2023-04-12 10:08:26 +0200
  • 9f569078ed
    Fix bug where a REHASH would cause us to loose track of remote RPC's (RRPC). Like REHASHing while a module.list is in progress. Bram Matthys 2023-04-12 09:06:48 +0200
  • cd3b3ec15d
    JSON-RPC: Change to previous, don't name it "top_countries" but "countries" and sort descending so the country with the most users comes first. (Using silly negative priority tricks, but you won't see that :D) Bram Matthys 2023-04-12 08:25:32 +0200
  • 431d2b54c4
    JSON-RPC: stats.get now returns "top_countries" (top geo country codes). It also has an object_detail_level like some other calls. The "top_countries" are included from object_detail_level 1 and above. The default object_detail_level is actually 1, so it is included by default. You can use object_detail_level if you don't want it. Bram Matthys 2023-04-12 08:04:20 +0200
  • bea1bb6b94
    Add some more warnings/explanations if specifying a custom SSLDIR. Reported and suggested by Le_Coyote in https://bugs.unrealircd.org/view.php?id=5980 Bram Matthys 2023-04-10 19:12:48 +0200
  • 3538b944de
    Fix missing client info from TLS handshake flood log message. Reported by musk in https://bugs.unrealircd.org/view.php?id=6251 Bram Matthys 2023-04-10 18:51:19 +0200
  • 197fd0ca51
    Update help.conf on +F and integrate +f/+F CHMODEF helpop docu. Bram Matthys 2023-04-09 16:08:10 +0200
  • 78e10e0128
    /helpop chmodes: Show channelmode +d (#249) Valerie Pond 2023-04-09 14:53:53 +0100
  • 7c22f37a9f
    JSON-RPC: add log.subscribe and log.unsubscribe https://www.unrealircd.org/docs/JSON-RPC:Log Bram Matthys 2023-04-08 17:20:50 +0200
  • 4945ac9f7e
    Minor update of release notes [skip ci] Bram Matthys 2023-04-07 16:12:24 +0200
  • 447ce57009
    +F: fixes for if you change the default-profile or unset it, so these changes are set for all channels without +F. Bram Matthys 2023-04-07 15:20:05 +0200
  • 93d825abe5
    +F: set default profile if asked to do so via REHASH [skip ci] Bram Matthys 2023-04-07 15:00:24 +0200
  • ec7077f4a1
    ** UnrealIRCd 6.1.0-rc1 ** Bram Matthys 2023-04-07 14:54:43 +0200
  • f9b986f3c7
    Windows build: now that they are compiled, actually install the RPC modules too.. [skip ci] Bram Matthys 2023-04-07 14:48:59 +0200
  • a3efb70d31
    Fixes for Windows build: add extbans/flood and all the RPC modules. [skip ci] Bram Matthys 2023-04-07 14:37:00 +0200
  • 290c5d4b72
    Fix Windows makefile. [skip ci] Bram Matthys 2023-04-07 14:27:14 +0200
  • 854c5976d1
    Chanmode +F: re-apply profiles on REHASH (in case anything changed) TODO: ideally we would only do this if there was a change at all, but ah well. Bram Matthys 2023-04-07 14:07:25 +0200
  • 3538ca9547
    Fix bug in unrl_utf8_make_valid() where on invalid UTF8 it would use the replacement character (good) but then stop processing the rest of the string (bad). This only happened if called with strict=0, which only happens in the JSON and logging routines. So not in user-exposed stuff like the websocket code. Bram Matthys 2023-04-05 09:40:10 +0200
  • 4de91d49df
    Forgot 'git add' Bram Matthys 2023-04-05 08:07:18 +0200
  • 254afbb9c6
    Make set::hide-ban-reason not affect opers (eg. show full gline reason). Suggested by Chris_dc in https://bugs.unrealircd.org/view.php?id=6252 Bram Matthys 2023-04-05 07:24:31 +0200
  • e8aef70f03
    Fix crash on +f modes merging (SJOIN) due to the 6.1.0 +f/+F changes. Reported by Valware. Bram Matthys 2023-04-05 07:21:52 +0200
  • c5a763de06
    mask vs match in webirc Bram Matthys 2023-04-04 19:37:07 +0200
  • b07c739fa7
    Add new +e ~flood:<floodtype(s)>:<mask> to exempt from +f/+F checks. For example: +e ~flood:*:~account:TrustedBot Bram Matthys 2023-04-02 19:19:15 +0200
  • a19b2aebf6
    New `cmode.flood_type_action` which can be used to indicate a channel mode can be used from +f/+F as an action. You need to specify for which flood type your mode is, eg `cmode.flood_type_action = 'j';` for joinflood. Bram Matthys 2023-04-02 18:14:45 +0200
  • a9b71b58cb
    Add RPC 'issuer' logging in CHGIDENT, CHGHOST, CHGNAME, SVSMODE for user.set_username, user.set_vhost, user.set_realname, user.set_mode. And some early work for other stuff that doesn't work yet. Bram Matthys 2023-04-02 16:18:34 +0200
  • 1e315bb953
    Add and use command_issued_by_rpc() helper function for internal logging of commands issued by JSON-RPC. Bram Matthys 2023-04-02 16:03:50 +0200
  • e67f5b6c39
    Prepare all user.* with mtag_add_issued_by() for unrealircd.org/issued-by. The code further up still needs to be changed, though. Bram Matthys 2023-04-02 15:56:48 +0200
  • d25d2a23be
    Minor cleanup: use kick_user() from channel.kick call instead of emulating an IRC command through do_cmd(). Function was added earlier in a8534a6063 Bram Matthys 2023-04-02 12:14:52 +0200
  • 9eac6797c6
    Add unrealircd.org/issued-by for KICK from JSON-RPC Bram Matthys 2023-04-02 12:12:16 +0200
  • 50c3ed2c24
    Add unrealircd.org/issued-by if using RPC call channel.set_mode This also changes the set_channel_mode() function to have an extra arguments MessageTag *mtags (2nd parameter). Bram Matthys 2023-04-02 12:06:52 +0200
  • 0b8f0deb05
    SAPART: add unrealircd.org/issued-by, and add RPC-specific logging Bram Matthys 2023-04-02 12:01:29 +0200
  • 6ee941fa4c
    SAJOIN: add unrealircd.org/issued-by, and add RPC-specific logging (some code will probably be moved to a helper function later) Bram Matthys 2023-04-02 11:52:24 +0200
  • f007933348
    Document mtag_add_issued_by() and allow for some future case we don't use yet. [skip ci] Bram Matthys 2023-04-02 11:51:09 +0200
  • 4a5b8b3639
    +F: the no-flood-limit profile is called "off" now (was: "none") Bram Matthys 2023-04-02 11:02:59 +0200
  • cd3cf7e97c
    Chanmode +F: Lower nick change limit in profiles, now that only real nick changes are counted and not forced ones like SVSNICK. Bram Matthys 2023-04-02 10:59:52 +0200
  • fa4d86009c
    Move set::modef-boot-delay to set::anti-flood::channel::boot-delay and the new set::modef-split-delay to set::anti-flood::channel::split-delay. See https://www.unrealircd.org/docs/Channel_anti-flood_settings#config Bram Matthys 2023-04-02 10:25:25 +0200
  • 22a632fb88
    Fix memory leak in RPC module on server disconnect. The "rrpc" moddata was not freed, which contained the list of RPC modules on a remote server. Bram Matthys 2023-04-02 08:32:51 +0200
  • b914997a1c
    Update cmode.free_param definition to fix memleak due to yesterdays commit. And update release notes technical note so it actually refers to the correct channel mode function :D Bram Matthys 2023-04-02 08:24:00 +0200
  • 8ea50d38a3
    Change a character and force rebuild Bram Matthys 2023-04-01 18:55:08 +0200
  • 8776557b3d
    JSON-RPC: make server.list use a default max detailed level, the same one as server.get. This list is likely to be small, anyway. This is how it was with <6.0.8. Reported by Lord255. Bram Matthys 2023-04-01 18:16:10 +0200
  • cab472e480
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-04-01 17:54:48 +0200
  • b093ba5375
    Set version to 6.1.0-git. Bram Matthys 2023-04-01 17:29:48 +0200
  • ce75ddd167
    Bump UNREAL_VERSION_TIME (been a while) [skip ci] Bram Matthys 2023-04-01 17:05:33 +0200
  • 8f1dc52c20
    Mention that cmode.put_param has an API change [skip ci] Bram Matthys 2023-04-01 17:04:43 +0200
  • 7b7d436bba
    Add support for set::anti-flood::channel::default-profile https://www.unrealircd.org/docs/Channel_anti-flood_settings#Default_profile Bram Matthys 2023-04-01 16:56:37 +0200
  • 2f7bb2e72d
    Some reformatting of release notes [skip ci] Bram Matthys 2023-04-01 13:37:50 +0200
  • 22691a458b
    Don't count forced nick changes in floodtype 'n' in chanmode +f/+F. These were already not counted for set::anti-flood::xx::nick-flood and it makes sense. Benefit of this is that limits for floodtype 'n' can be set tighter, as now it is really only about manual (voluntarily) nick changes. Bram Matthys 2023-04-01 13:25:12 +0200
  • e4cdc4c0dd
    Update release notes a bit on JSON request logging and unrealircd.org/issued-by [skip ci] Bram Matthys 2023-04-01 13:20:11 +0200
  • a83cd474af
    Change RPC logging format for rpc.RPC_CALL: From: [rpc] Client RPC:adminpanel (Syzop): RPC call channel.set_mode: channel='#test', modes='+b', parameters='some!silly@ban' To: [rpc] RPC call channel.set_mode by RPC:adminpanel (Syzop): channel='#test', modes='+b', parameters='some!silly@ban' Bram Matthys 2023-04-01 13:01:35 +0200
  • 1bf34ae01b
    Log parameters in rpc.RPC_CALL: [rpc] Client RPC:adminpanel (Syzop): RPC call channel.set_mode: channel='#test', modes='+b', parameters='some!silly@ban' Bram Matthys 2023-04-01 12:59:20 +0200
  • 2b39777815
    Logging: Log the issuer in rpc.RPC_CALL, when it is available. [rpc] Client RPC:adminpanel (Syzop): RPC call channel.set_mode Bram Matthys 2023-04-01 12:39:16 +0200
  • 7d7974f800
    Get rid of unneeded buffer copying, if Jansson library >= v2.1 Bram Matthys 2023-04-01 12:29:59 +0200
  • 275cb97cfc
    For JSON-RPC with UNIX Domain sockets, split on \n (newline). This so multiple parallel requests can be handled properly. Bram Matthys 2023-04-01 12:24:47 +0200
  • 89f75bd6e7
    Fix some warnings: change an int to time_t and vice-versa Bram Matthys 2023-04-01 09:51:53 +0200
  • a6820b4a8d
    Fix weird +F values when two channels merge. This was a forgotten TODO item for cmodef_dup_struct(), more netsync tests are still to follow. Bug reported by Lord255. Bram Matthys 2023-04-01 09:06:37 +0200
  • 4e49323e88
    Fix crash on rpc-user { } block without a name. Bram Matthys 2023-04-01 08:58:17 +0200
  • 7a50f963f8
    Make channel.set_topic use the issuer internally. No logging or other changes yet, just unrealircd.org/issued-by testing. Bram Matthys 2023-03-31 14:27:56 +0200
  • a3c151a16a
    RPC: add rpc.set_issuer, eg set to logged in user on the admin panel. This so UnrealIRCd knows who is issuing the commands. This information is then passed on to unrealircd.org/issued-by and is planned to be used by the logging system too. Bram Matthys 2023-03-31 12:49:25 +0200
  • 5871bd9463
    Initial work on unrealircd.org/issued-by message tag. This will communicate the original issuer of a command. For example an "SAMODE #test +s" results in a SAMODE coming from :maintest.test.net MODE ....etc.... And with this feature, we will communicate the IRCOp who did it: @unrealircd.org/issued-by=OPER:Syzop..etc.... This tag is only sent to servers and to IRCOps, not to ordinary users. Bram Matthys 2023-03-31 12:07:43 +0200
  • 1ca0b76bb5
    Validate value of rpc-user THISNAME { } Bram Matthys 2023-03-31 11:54:12 +0200
  • c9f697e3ca
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-31 11:25:31 +0200
  • 8c6c9b6206
    Fix SAMODE showing tags for the person who executed the SAMODE instead of the server executing the MODE. Eg unrealircd.org/userhost was set. This occured because the client = &me; was done after the message tag preparation, now moved up so it's done before. Bram Matthys 2023-03-31 11:20:09 +0200
  • eeaa4b53b8
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-30 21:47:08 +0200
  • 9ab876133d
    Add wildcard support to blacklist-module. This also removes the following warning as a side-effect: "blacklist-module for '%s' but module does not exist anyway". Bram Matthys 2023-03-30 17:41:02 +0200
  • b099033c1b
    Load RPC modules by default but don't enable webserver or RPC sockets. See release notes: +* The RPC modules are enabled by default now. This so remote RPC works + from other IRC servers for calls like `modules.list`. The default + configuration does not enable the webserver nor does it cause + listening on any socket for RPC, for that you need to follow the + [JSON-RPC](https://www.unrealircd.org/docs/JSON-RPC) instructions. Bram Matthys 2023-03-30 17:34:39 +0200
  • 553d826ab3
    Update release notes [skip ci] Bram Matthys 2023-03-30 17:23:55 +0200
  • bfee61d52d
    Fix dereferencing the wrong variable in a config_error() Bram Matthys 2023-03-30 16:58:44 +0200
  • b51c8315fd
    Add and use set::modef-split-delay which makes +f ignore join-flood for this amount of seconds (default: 75) when a server splits. This helps in case a server dies and the clients reconnect to the other servers, causing a join-flood to be triggered needlessly. Of course, OTOH disabling a flood protection temporarily is not ideal, but after seeing it being triggered too often and requiring manual intervention in many +f/+F channels, this is the best option I think, if we want +f/+F to work as painless as possible. Bram Matthys 2023-03-30 16:51:39 +0200
  • aae8306ef6
    Do some sanity checking on extban names: max 32 characters and a-z, 0-9, _, - Bram Matthys 2023-03-29 16:39:16 +0200
  • f4755fe587
    Do some sanity checks on flood profile names max length 24, and every character is a-z, 0-9, -, _ Bram Matthys 2023-03-29 16:34:36 +0200
  • a5b6365ef0
    Assume +f profile "normal" always exists, since that is the case. Also fix some "NULL check but dereferenced before" warnings. Bram Matthys 2023-03-29 16:24:57 +0200
  • 8ff5fb62fb
    Get rid of some shadow (bug in +f config profile handling) Bram Matthys 2023-03-29 16:23:34 +0200
  • 55350fe3a3
    Fix due to recent +f rewrite: add check for [ at start, fixes OOB read. Bram Matthys 2023-03-29 09:50:10 +0200
  • 36ac2301c3
    Merge branch 'unrealircd:unreal60_dev' into piss60 angryce 2023-03-28 14:36:44 +0200
  • 53aedf2b3f
    Update release notes [skip ci] Bram Matthys 2023-03-27 13:23:23 +0200
  • abb6fcfcb5
    RPC: user.list and user.get now have optional object_detail_level. This is an integer which decides the amount of details in the response object. Bram Matthys 2023-03-27 13:08:16 +0200
  • f9af852c43
    Again a fix for JSON logging, so object_detail_level has same result as 6.0.6. Bram Matthys 2023-03-27 12:24:12 +0200
  • 783bdfb741
    Fix JSON logging using the correct object_detail_level (same result as 6.0.6) Bram Matthys 2023-03-27 10:13:43 +0200
  • a18bb04f45
    Bump rpc/channel module version to 1.0.5 [skip ci] Bram Matthys 2023-03-27 09:57:07 +0200
  • 957af0909b
    RPC: channel.get and channel.list now have optional object_detail_level. This is an integer which decides the amount of details in the response object. Bram Matthys 2023-03-27 09:21:29 +0200
  • 98868dbbe9
    Some leftover changes for release notes [skip ci] Bram Matthys 2023-03-27 09:15:00 +0200