diff options
Diffstat (limited to '')
-rw-r--r-- | server_network.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/server_network.c b/server_network.c index 3d69341..342b254 100644 --- a/server_network.c +++ b/server_network.c @@ -620,7 +620,9 @@ int privmsg_handler(struct string sender, uint64_t argc, struct string *argv) { } struct user_info *user = get_table_index(user_list, sender); + struct server_info *server; if (user) { + server = 0; if (argv[0].data[0] == '#') { struct channel_info *channel = get_table_index(channel_list, argv[0]); if (channel && has_table_index(channel->user_list, STRING("1HC000001"))) { @@ -650,7 +652,7 @@ int privmsg_handler(struct string sender, uint64_t argc, struct string *argv) { SENDCLIENT(STRING("\r\n")); } } else { - struct server_info *server = get_table_index(server_list, sender); + server = get_table_index(server_list, sender); if (server) { if (argv[0].data[0] == '#') { struct channel_info *channel = get_table_index(channel_list, argv[0]); @@ -752,24 +754,15 @@ int privmsg_handler(struct string sender, uint64_t argc, struct string *argv) { } } - SEND(STRING(":1HC000000 PRIVMSG ")); - SEND(log_channel); - if (sender.len == 3) { - SEND(STRING(" :Server ")); - SEND(sender); - } else { - struct user_info *user = get_table_index(user_list, sender); - if (user) { - SEND(STRING(" :User ")); - SEND(user->nick); - } else { - SEND(STRING(" :An unknown user (something desycned... this shouldn't happen)")); - } - } + struct string message[] = { + user ? STRING("User ") : (server ? STRING("Server ") : STRING("An unknown user (something desycned... this shouldn't happen)")), + user ? user->nick : (server ? server->address : STRING("")), + STRING(" executes `"), + argv[1], + STRING("'\n"), + }; - SEND(STRING(" executes `")); - SEND(argv[1]); - SEND(STRING("'\n")); + privmsg(STRING("1HC000000"), log_channel, sizeof(message)/sizeof(*message), message); return cmd->func(sender, argv[1], argv[0], command_argc, command_argv); } else { |