-/* EventLogger.c - NeonServ v5.2
- * Copyright (C) 2011 Philipp Kreil (pk910)
+/* EventLogger.c - NeonServ v5.4
+ * Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
static struct Event *first_event = NULL, *last_event = NULL;
-struct Event *createEvent(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *command, char **args, int argc, int flags) {
+struct Event *createEvent(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct cmd_binding *command, char **args, int argc, int flags) {
struct Event *event = malloc(sizeof(*event));
if (!event)
{
event->user = user;
event->chan = chan;
event->event_time = time(0);
- event->command = strdup(command);
+ event->command = command;
char arguments[MAXLEN];
int argpos = 0;
int i;
void logEvent(struct Event *event) {
char fullcmd[MAXLEN];
- sprintf(fullcmd, "%s %s", event->command, event->arguments);
+ sprintf(fullcmd, "%s %s", event->command->func->name, event->arguments);
if((event->flags & CMDFLAG_LOG) && event->chan) {
char *auth = ((event->user->flags & USERFLAG_ISAUTHED) ? event->user->auth : "*");
loadChannelSettings(event->chan);
if(last->next == NULL) break;
last_event = last;
}
- free(event->command);
free(event->arguments);
free(event);
}