summaryrefslogtreecommitdiff
path: root/server_network.c
diff options
context:
space:
mode:
Diffstat (limited to 'server_network.c')
-rw-r--r--server_network.c29
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 {