aboutsummaryrefslogtreecommitdiff
path: root/pseudoclients.c
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-09-05 03:48:11 -0400
committerTest_User <hax@andrewyu.org>2024-09-05 03:48:11 -0400
commitc83e033d4c1981c1f929ed656d757b40a5a96885 (patch)
tree9d6bdb4d5c7a0cf947701f4ef9df78aa8e0eb54e /pseudoclients.c
parentdd52e3a0dd88a42f900ae7e81eccbf6fd1fe48c1 (diff)
downloadhaxircd-c83e033d4c1981c1f929ed656d757b40a5a96885.tar.gz
haxircd-c83e033d4c1981c1f929ed656d757b40a5a96885.zip
Convert to non-UB haxtable stuff
Diffstat (limited to 'pseudoclients.c')
-rw-r--r--pseudoclients.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/pseudoclients.c b/pseudoclients.c
index 3ace6db..206aae2 100644
--- a/pseudoclients.c
+++ b/pseudoclients.c
@@ -76,20 +76,21 @@ int init_pseudoclients(void) {
}
void pseudoclients_handle_privmsg(struct string from, struct string sender, struct string target, struct string msg) {
- struct user_info *user = get_table_index(user_list, target);
+ char exists;
+ struct user_info *user = get_table_index(user_list, target, &exists).data;
- if (user) {
+ if (exists) {
if (user->is_pseudoclient) {
pseudoclients[user->pseudoclient].handle_privmsg(from, sender, target, msg);
} else {
return;
}
- } else if (!user && !has_table_index(server_list, target)) {
- struct channel_info *channel = get_table_index(channel_list, target);
- if (channel) {
+ } else if (!exists && !has_table_index(server_list, target)) {
+ struct channel_info *channel = get_table_index(channel_list, target, &exists).data;
+ if (exists) {
char send_to[NUM_PSEUDOCLIENTS] = {0};
for (size_t i = 0; i < channel->user_list.len; i++) {
- struct user_info *user = channel->user_list.array[i].ptr;
+ struct user_info *user = channel->user_list.array[i].ptr.data;
if (user->is_pseudoclient && !STRING_EQ(user->uid, sender))
send_to[user->pseudoclient] = 1;
}