diff options
author | Test_User <hax@andrewyu.org> | 2024-08-31 09:27:37 -0400 |
---|---|---|
committer | Test_User <hax@andrewyu.org> | 2024-08-31 09:27:37 -0400 |
commit | 253c1726681d6bf82b05b49d6e06b56b2574bb6d (patch) | |
tree | 564cfb78d9b1d50a061436a81f8a53826c6f1c15 /protocols/inspircd4.c | |
parent | 37db49c845f3714cdd9e44996116dddd1381874a (diff) | |
download | haxircd-253c1726681d6bf82b05b49d6e06b56b2574bb6d.tar.gz haxircd-253c1726681d6bf82b05b49d6e06b56b2574bb6d.zip |
Fix RSQUIT behavior
Diffstat (limited to 'protocols/inspircd4.c')
-rw-r--r-- | protocols/inspircd4.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/protocols/inspircd4.c b/protocols/inspircd4.c index 9e47d0e..57e7245 100644 --- a/protocols/inspircd4.c +++ b/protocols/inspircd4.c @@ -1429,12 +1429,14 @@ int inspircd4_protocol_handle_rsquit(struct string source, size_t argc, struct s for (size_t i = 0; i < server_list.len; i++) { struct server_info *target = server_list.array[i].ptr; - if (target->protocol != INSPIRCD4_PROTOCOL) + if (target != self && target->protocol != INSPIRCD4_PROTOCOL) continue; // TODO: Maybe actually unlink this somehow if (!STRING_EQ(target->name, argv[0])) continue; - if (has_table_index(target->connected_to, SID)) { + if (target == self) { + networks[net].shutdown(handle); + } else if (has_table_index(target->connected_to, SID)) { networks[target->net].shutdown(target->handle); } else { struct server_info *next = get_table_index(server_list, target->next); |