*
* srvx is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
#define Block 4096
#define MAXLOGSEARCHLENGTH 10000
-struct userNode *chanserv;
+extern struct userNode *chanserv;
struct logDestination;
{ "MSG_INVALID_FACILITY", "$b%s$b is an invalid log facility." },
{ "MSG_INVALID_SEVERITY", "$b%s$b is an invalid severity level." },
- { "LAST_RESULTS", "$b%s$b] %s %s $b%s$b %s" },
+ { "LAST_RESULTS", "$b%s]$b %s %s $b%s$b %s" },
{ "LAST_ERROR", "%s:%s" },
{ "LAST_COMMAND_LOG", "Channel Events for %s" },
{ "LAST_LINE", "----------------------------------------" },
}
static void
-cleanup_logs(void)
+cleanup_logs(UNUSED_ARG(void *extra))
{
close_logs();
unsigned int matched = 0;
if (discrim->type) {
- static volatile struct logEntry *last;
struct logEntry *entry;
- for (entry = discrim->type->log_oldest, last = NULL;
+ for (entry = discrim->type->log_oldest;
entry;
- last = entry, entry = entry->next) {
+ entry = entry->next) {
verify(entry);
if (entry_match(discrim, entry)) {
esf(entry, data);
struct logDest_irc *dest = (struct logDest_irc*)dest_;
if (entry->channel_name) {
- send_target_message(4, dest->target, entry->bot, "(%s", strchr(strchr(entry->default_desc, ' '), ':')+1);
+ send_target_message(5, dest->target, entry->bot, "(%s", strchr(strchr(entry->default_desc, ' '), ':')+1);
} else {
- send_target_message(4, dest->target, entry->bot, "%s", strchr(entry->default_desc, ')')+2);
+ send_target_message(5, dest->target, entry->bot, "%s", strchr(entry->default_desc, ')')+2);
}
}
struct logDest_irc *dest = (struct logDest_irc*)dest_;
extern struct userNode *opserv;
- send_target_message(4, dest->target, opserv, "%s %s: %s\n", type->name, log_severity_names[sev], message);
+ send_target_message(5, dest->target, opserv, "%s %s: %s\n", type->name, log_severity_names[sev], message);
}
static struct logDest_vtable ldIrc_vtbl = {
dict_insert(log_dest_types, ldIrc_vtbl.type_name, &ldIrc_vtbl);
conf_register_reload(log_conf_read);
log_default = log_register_type("*", NULL);
- reg_exit_func(cleanup_logs);
+ reg_exit_func(cleanup_logs, NULL);
message_register_table(msgtab);
log_inited = 1;
}
char serv[NICKLEN+1];
char buf[MAXLEN];
char myservc[MAXLEN];
+ char mynuhbuf[MAXLEN];
char* mychan;
char* mynuh;
+ char* mynick;
+ char* myacc;
char* mycommand;
char* myrest;
char* datestr;
datestr = (char *) mysep(&LogLine, "]");
mywho = (char *) mysep(&LogLine, " ");
- mynuh = (char *) mysep(&LogLine, " ");
+ if (user->handle_info && ((user->handle_info->opserv_level > 0) || IsOper(user)))
+ mynuh = (char *) mysep(&LogLine, " ");
+ else {
+ mynick = (char *) mysep(&LogLine, "!");
+ mysep(&LogLine, "@");
+ mysep(&LogLine, ":");
+ myacc = (char *) mysep(&LogLine, " ");
+ sprintf(mynuhbuf, "%s:%s", mynick, myacc);
+ mynuh = mynuhbuf;
+ }
mycommand = (char *) mysep(&LogLine, " ");
myrest = (char *) mysep(&LogLine, "\0");
myserva = (char *) mysep(&mywho, ":");