improving logging of the bot
This commit is contained in:
parent
5ec7b93a7a
commit
015c20e061
@ -7,6 +7,8 @@
|
|||||||
#ifndef IRC_H
|
#ifndef IRC_H
|
||||||
#define IRC_H
|
#define IRC_H
|
||||||
|
|
||||||
|
#define VERSION "0.1.0"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
@ -25,7 +25,7 @@ int lua_add_handler(lua_State *L)
|
|||||||
|
|
||||||
if (lua_gettop(L) < 2)
|
if (lua_gettop(L) < 2)
|
||||||
{
|
{
|
||||||
printf("Error: add_handler requires 2 arguments\n");
|
xlog("[lua] Error: add_handler requires 2 arguments\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,12 +36,12 @@ int lua_add_handler(lua_State *L)
|
|||||||
if (lreg == -1)
|
if (lreg == -1)
|
||||||
{
|
{
|
||||||
const char *err = lua_tostring(L, -1);
|
const char *err = lua_tostring(L, -1);
|
||||||
printf("Error: %s\n", err);
|
xlog("[lua/events/lua_add_handler] Error: %s\n", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
event = (char *)lua_tostring(L, 1);
|
event = (char *)lua_tostring(L, 1);
|
||||||
|
|
||||||
printf("Installing handler for event: %s : %d\n", event, lreg);
|
xlog("[lua] Installing handler for event: %s : %d\n", event, lreg);
|
||||||
|
|
||||||
strlcpy(lua.events[lua.event_count].event, event, 25);
|
strlcpy(lua.events[lua.event_count].event, event, 25);
|
||||||
lua.events[lua.event_count].lreg = lreg;
|
lua.events[lua.event_count].lreg = lreg;
|
||||||
@ -61,7 +61,7 @@ void lua_del_handler(lua_State *L)
|
|||||||
|
|
||||||
if (lua_gettop(L) < 2)
|
if (lua_gettop(L) < 2)
|
||||||
{
|
{
|
||||||
printf("Error: del_handler requires 2 arguments\n");
|
xlog("[lua] Error: del_handler requires 2 arguments\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ void lua_del_handler(lua_State *L)
|
|||||||
{
|
{
|
||||||
if (lua.events[i].lreg == lreg)
|
if (lua.events[i].lreg == lreg)
|
||||||
{
|
{
|
||||||
printf("Removing handler for event: %s : %d\n", event, lreg);
|
xlog("[lua] Removing handler for event: %s : %d\n", event, lreg);
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, lua.events[i].lreg);
|
luaL_unref(L, LUA_REGISTRYINDEX, lua.events[i].lreg);
|
||||||
|
|
||||||
while (i < lua.event_count)
|
while (i < lua.event_count)
|
||||||
@ -111,7 +111,7 @@ void lua_callfunc(int lreg, int argc, ...)
|
|||||||
if (lua_pcall(lua.L, argc, 0, 0) != LUA_OK)
|
if (lua_pcall(lua.L, argc, 0, 0) != LUA_OK)
|
||||||
{
|
{
|
||||||
const char *err = lua_tostring(L, -1);
|
const char *err = lua_tostring(L, -1);
|
||||||
printf("Error: %s\n", err);
|
xlog("[lua/events/lua_callfunc] Error: %s\n", err);
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,8 +126,6 @@ void lua_fire_handlers(char *event, ...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
char *user, *host, *chan, *text;
|
char *user, *host, *chan, *text;
|
||||||
|
|
||||||
printf("lua_fire_handlers: %s\n", event);
|
|
||||||
|
|
||||||
for (i = 0; i < lua.event_count; i++)
|
for (i = 0; i < lua.event_count; i++)
|
||||||
{
|
{
|
||||||
if (!lua.events[i].lreg)
|
if (!lua.events[i].lreg)
|
||||||
@ -144,9 +142,6 @@ void lua_fire_handlers(char *event, ...)
|
|||||||
chan = va_arg(args, char *);
|
chan = va_arg(args, char *);
|
||||||
text = va_arg(args, char *);
|
text = va_arg(args, char *);
|
||||||
|
|
||||||
printf("dbug: %s %s %s %s\n", user, host, chan, text);
|
|
||||||
printf("dbug: %s %d %d\n", lua.events[i].event, lua.events[i].lreg, lua.event_count);
|
|
||||||
|
|
||||||
lua_callfunc(lua.events[i].lreg, 4, user, host, chan, text);
|
lua_callfunc(lua.events[i].lreg, 4, user, host, chan, text);
|
||||||
}
|
}
|
||||||
else if (!strcmp(event, PRIVMSG_SELF))
|
else if (!strcmp(event, PRIVMSG_SELF))
|
||||||
|
@ -34,5 +34,5 @@ function del_handler(type, func)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
print("Handler not found")
|
xlog("[lua/init.lua] del_handler: Handler not found")
|
||||||
end
|
end
|
||||||
|
@ -125,12 +125,9 @@ void lua_eval(struct irc_conn *bot, char *user, char *host, char *chan, const ch
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
block = 1;
|
block = 1;
|
||||||
printf("lua eval called with %s\n", text);
|
|
||||||
if (strstr(text, "!lua") != NULL)
|
if (strstr(text, "!lua") != NULL)
|
||||||
{
|
{
|
||||||
text = skip(text, ' ');
|
text = skip(text, ' ');
|
||||||
printf("lua: %s\n", text);
|
|
||||||
|
|
||||||
res = luaL_loadstring(lua.L, text);
|
res = luaL_loadstring(lua.L, text);
|
||||||
|
|
||||||
if (res == LUA_OK)
|
if (res == LUA_OK)
|
||||||
@ -174,11 +171,12 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
{
|
{
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("Error loading lua script: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error loading lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Error loading lua script: %s", lua_tostring(lua.L, -1));
|
irc_privmsg(bot, chan, "[lua] Error loading lua script: %s", lua_tostring(lua.L, -1));
|
||||||
|
xlog("[lua] Error loading lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -193,11 +191,12 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
{
|
{
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("Error executing lua script: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error executing lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Error executing lua script: %s", lua_tostring(lua.L, -1));
|
irc_privmsg(bot, chan, "Error executing lua script: %s", lua_tostring(lua.L, -1));
|
||||||
|
xlog("[lua] Error executing lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -209,7 +208,6 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
if (lua_isfunction(lua.L, -1))
|
if (lua_isfunction(lua.L, -1))
|
||||||
{
|
{
|
||||||
lua.scripts[lua.script_count].unload = luaL_ref(lua.L, LUA_REGISTRYINDEX);
|
lua.scripts[lua.script_count].unload = luaL_ref(lua.L, LUA_REGISTRYINDEX);
|
||||||
printf("dbg: unload ref: %d\n", lua.scripts[lua.script_count].unload);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -217,11 +215,12 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
|
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("No unload() function in %s\n", name);
|
xlog("[lua] No unload() function in %s\n", name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "No unload() function in %s", name);
|
irc_privmsg(bot, chan, "No unload() function in %s", name);
|
||||||
|
xlog("[lua] No unload() function in %s [issued by %s!%s@%s]\n", name, user, host, chan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,11 +233,12 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
{
|
{
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("Error calling load() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
xlog("[lua] Error calling load() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Error calling load() in %s: %s", buf, lua_tostring(lua.L, -1));
|
irc_privmsg(bot, chan, "Error calling load() in %s: %s", buf, lua_tostring(lua.L, -1));
|
||||||
|
xlog("[lua] Error calling load() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -248,22 +248,24 @@ void lua_load_script(struct irc_conn *bot, char *user, char *host, char *chan, c
|
|||||||
|
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("Loaded %s\n", name);
|
xlog("[lua] Loaded %s\n", name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Loaded %s", name);
|
irc_privmsg(bot, chan, "Loaded %s", name);
|
||||||
|
xlog("[lua] Loaded %s [issued by %s!%s@%s]\n", name, user, host, chan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!strcmp(chan, "-stdio-"))
|
if (!strcmp(chan, "-stdio-"))
|
||||||
{
|
{
|
||||||
printf("Error: No load() function in %s\n", buf);
|
xlog("[lua] Error: No load() function in %s\n", buf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Error: No load() function in %s", buf);
|
irc_privmsg(bot, chan, "Error: No load() function in %s", buf);
|
||||||
|
xlog("[lua] Error: No load() function in %s [issued by %s!%s@%s]\n", buf, user, host, chan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -299,6 +301,9 @@ void lua_unload_script(struct irc_conn *bot, char *user, char *host, char *chan,
|
|||||||
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
||||||
{
|
{
|
||||||
irc_privmsg(bot, chan, "Error calling unload() in %s: %s", buf, lua_tostring(lua.L, -1));
|
irc_privmsg(bot, chan, "Error calling unload() in %s: %s", buf, lua_tostring(lua.L, -1));
|
||||||
|
xlog("[lua] Error calling unload() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
||||||
|
|
||||||
|
free(buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,8 +312,8 @@ void lua_unload_script(struct irc_conn *bot, char *user, char *host, char *chan,
|
|||||||
|
|
||||||
remove_script(text);
|
remove_script(text);
|
||||||
|
|
||||||
sprintf(buf, "Unloaded %s", text);
|
irc_privmsg(bot, chan, "Unloaded %s", text);
|
||||||
irc_privmsg(bot, chan, buf);
|
xlog("[lua] Unloaded %s [issued by %s!%s@%s]\n", text, user, host, chan);
|
||||||
|
|
||||||
while (i < lua.script_count)
|
while (i < lua.script_count)
|
||||||
{
|
{
|
||||||
@ -324,6 +329,7 @@ void lua_unload_script(struct irc_conn *bot, char *user, char *host, char *chan,
|
|||||||
}
|
}
|
||||||
|
|
||||||
irc_privmsg(bot, chan, "Error: %s not loaded", text);
|
irc_privmsg(bot, chan, "Error: %s not loaded", text);
|
||||||
|
xlog("[lua] Error: %s not loaded [issued by %s!%s@%s]\n", text, user, host, chan);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -362,33 +368,37 @@ void mod_init()
|
|||||||
// load init.lua
|
// load init.lua
|
||||||
if (luaL_loadfile(lua.L, "./mods/lua/init.lua") != LUA_OK)
|
if (luaL_loadfile(lua.L, "./mods/lua/init.lua") != LUA_OK)
|
||||||
{
|
{
|
||||||
printf("Error loading init.lua: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error loading init.lua: %s\n", lua_tostring(lua.L, -1));
|
||||||
|
|
||||||
|
free(buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
||||||
{
|
{
|
||||||
printf("Error executing init.lua: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error executing init.lua: %s\n", lua_tostring(lua.L, -1));
|
||||||
|
|
||||||
|
free(buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < list.count; i++)
|
for (i = 0; i < list.count; i++)
|
||||||
{
|
{
|
||||||
printf("Loading %s\n", list.scripts[i]);
|
xlog("[lua] Loading %s\n", list.scripts[i]);
|
||||||
|
|
||||||
sprintf(buf, "./scripts/%s", list.scripts[i]);
|
sprintf(buf, "./scripts/%s", list.scripts[i]);
|
||||||
strlcpy(lua.scripts[lua.script_count].fname, buf, 150);
|
strlcpy(lua.scripts[lua.script_count].fname, buf, 150);
|
||||||
|
|
||||||
if (luaL_loadfile(lua.L, buf) != LUA_OK)
|
if (luaL_loadfile(lua.L, buf) != LUA_OK)
|
||||||
{
|
{
|
||||||
printf("Error loading lua script: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error loading lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// execute the script
|
// execute the script
|
||||||
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
||||||
{
|
{
|
||||||
printf("Error executing lua script: %s\n", lua_tostring(lua.L, -1));
|
xlog("[lua] Error executing lua script: %s\n", lua_tostring(lua.L, -1));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,12 +408,11 @@ void mod_init()
|
|||||||
if (lua_isfunction(lua.L, -1))
|
if (lua_isfunction(lua.L, -1))
|
||||||
{
|
{
|
||||||
lua.scripts[lua.script_count].unload = luaL_ref(lua.L, LUA_REGISTRYINDEX);
|
lua.scripts[lua.script_count].unload = luaL_ref(lua.L, LUA_REGISTRYINDEX);
|
||||||
printf("dbg: unload ref: %d\n", lua.scripts[lua.script_count].unload);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lua.scripts[lua.script_count].unload = -1;
|
lua.scripts[lua.script_count].unload = -1;
|
||||||
printf("No unload() function in %s\n", list.scripts[i]);
|
xlog("[lua] No unload() function in %s\n", list.scripts[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// call the load function if it exists
|
// call the load function if it exists
|
||||||
@ -413,20 +422,19 @@ void mod_init()
|
|||||||
{
|
{
|
||||||
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
if (lua_pcall(lua.L, 0, 0, 0) != LUA_OK)
|
||||||
{
|
{
|
||||||
printf("Error calling load() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
xlog("[lua] Error calling load() in %s: %s\n", buf, lua_tostring(lua.L, -1));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
lua.script_count++;
|
lua.script_count++;
|
||||||
printf("Loaded %s\n", list.scripts[i]);
|
xlog("[lua] Loaded %s\n", list.scripts[i]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Error: No load() function in %s\n", buf);
|
xlog("[lua] Error: No load() function in %s\n", buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Lua module loaded\n");
|
|
||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -439,5 +447,4 @@ void mod_unload()
|
|||||||
|
|
||||||
unregister_module("lua");
|
unregister_module("lua");
|
||||||
del_handler(PRIVMSG_CHAN, lua_eval);
|
del_handler(PRIVMSG_CHAN, lua_eval);
|
||||||
printf("Lua module unloaded\n");
|
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ void lua_fire_handlers(char *event, ...);
|
|||||||
|
|
||||||
// wrappers.c
|
// wrappers.c
|
||||||
void lua_init_wrappers();
|
void lua_init_wrappers();
|
||||||
|
void xlog_wrapper(lua_State *L);
|
||||||
void raw_wrapper(lua_State *L);
|
void raw_wrapper(lua_State *L);
|
||||||
void privmsg_wrapper(lua_State *L);
|
void privmsg_wrapper(lua_State *L);
|
||||||
void notice_wrapper(lua_State *L);
|
void notice_wrapper(lua_State *L);
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
test.lua
|
|
||||||
hello.lua
|
|
@ -11,6 +11,14 @@ void lua_init_wrappers()
|
|||||||
lua_register(lua.L, "kick", kick_wrapper);
|
lua_register(lua.L, "kick", kick_wrapper);
|
||||||
lua_register(lua.L, "mode", mode_wrapper);
|
lua_register(lua.L, "mode", mode_wrapper);
|
||||||
lua_register(lua.L, "ctcp", ctcp_wrapper);
|
lua_register(lua.L, "ctcp", ctcp_wrapper);
|
||||||
|
lua_register(lua.L, "xlog", xlog_wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xlog_wrapper(lua_State *L)
|
||||||
|
{
|
||||||
|
char *msg = (char *)lua_tostring(L, 1);
|
||||||
|
|
||||||
|
xlog("%s", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void raw_wrapper(lua_State *L)
|
void raw_wrapper(lua_State *L)
|
||||||
|
@ -16,7 +16,7 @@ void add_channel(char *name)
|
|||||||
if (channel_exists(name) == 1)
|
if (channel_exists(name) == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
xlog("Adding channel %s\n", name);
|
xlog("[channel] Adding channel %s\n", name);
|
||||||
channels[chan_count] = calloc(1, sizeof(struct channel));
|
channels[chan_count] = calloc(1, sizeof(struct channel));
|
||||||
|
|
||||||
strlcpy(channels[chan_count]->name, name, 32);
|
strlcpy(channels[chan_count]->name, name, 32);
|
||||||
@ -35,7 +35,7 @@ void remove_channel(char *name)
|
|||||||
{
|
{
|
||||||
if (!strcmp(channels[i]->name, name))
|
if (!strcmp(channels[i]->name, name))
|
||||||
{
|
{
|
||||||
xlog("Removing channel %s\n", name);
|
xlog("[channel] Removing channel %s\n", name);
|
||||||
free(channels[i]->users);
|
free(channels[i]->users);
|
||||||
free(channels[i]);
|
free(channels[i]);
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ void add_user_to_channel(char *user, char *host, char *chan)
|
|||||||
if (user_exists(chan, user) == 1)
|
if (user_exists(chan, user) == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
xlog("Adding user %s!%s to channel %s\n", user, host, chan);
|
xlog("[channel] Adding user %s!%s to channel %s\n", user, host, chan);
|
||||||
|
|
||||||
for (i = 0; i < chan_count; i++)
|
for (i = 0; i < chan_count; i++)
|
||||||
{
|
{
|
||||||
@ -181,7 +181,7 @@ void remove_user_from_channel(char *user, char *chan)
|
|||||||
{
|
{
|
||||||
if (!strcmp(channels[i]->users[j].nick, user))
|
if (!strcmp(channels[i]->users[j].nick, user))
|
||||||
{
|
{
|
||||||
xlog("Removing user %s from channel %s\n", user, chan);
|
xlog("[channel] Removing user %s from channel %s\n", user, chan);
|
||||||
|
|
||||||
for (j = j; j < channels[i]->user_count; j++)
|
for (j = j; j < channels[i]->user_count; j++)
|
||||||
{
|
{
|
||||||
@ -286,7 +286,7 @@ void user_quit(char *nick)
|
|||||||
{
|
{
|
||||||
if (!strcmp(channels[i]->users[j].nick, nick))
|
if (!strcmp(channels[i]->users[j].nick, nick))
|
||||||
{
|
{
|
||||||
xlog("Removing user %s from channel %s\n", nick, channels[i]->name);
|
xlog("[channel] Removing user %s from channel %s\n", nick, channels[i]->name);
|
||||||
|
|
||||||
for (j = j; j < channels[i]->user_count; j++)
|
for (j = j; j < channels[i]->user_count; j++)
|
||||||
{
|
{
|
||||||
|
@ -43,11 +43,10 @@ void init_events()
|
|||||||
MY_API int add_handler(char *type, void *handler)
|
MY_API int add_handler(char *type, void *handler)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
xlog("Installing handler @ %p [type: %s]\n", handler, type);
|
xlog("[events] Installing handler @ %p [type: %s]\n", handler, type);
|
||||||
|
|
||||||
for (i = 0; i < handlers_count; i++)
|
for (i = 0; i < handlers_count; i++)
|
||||||
{
|
{
|
||||||
printf("comparing %s to %s\n", handlers[i]->type, type);
|
|
||||||
if (!strcmp(handlers[i]->type, type))
|
if (!strcmp(handlers[i]->type, type))
|
||||||
{
|
{
|
||||||
if (handlers[i]->count < 128)
|
if (handlers[i]->count < 128)
|
||||||
@ -57,12 +56,11 @@ MY_API int add_handler(char *type, void *handler)
|
|||||||
|
|
||||||
handlers[i]->count++;
|
handlers[i]->count++;
|
||||||
|
|
||||||
printf("type %s count: %d\n", type, handlers[i]->count);
|
|
||||||
return handlers[i]->count - 1;
|
return handlers[i]->count - 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xlog("Handler array is full, cannot add more handlers.\n");
|
xlog("[events] Handler array is full, cannot add more handlers.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
src/irc.c
10
src/irc.c
@ -123,10 +123,10 @@ void irc_connect(struct irc_conn *bot)
|
|||||||
freeaddrinfo(res);
|
freeaddrinfo(res);
|
||||||
if (!r)
|
if (!r)
|
||||||
{
|
{
|
||||||
eprint("Error: Cannot connect to host '%s'\n", bot->host);
|
eprint("[IRC] Error: Cannot connect to host '%s'\n", bot->host);
|
||||||
}
|
}
|
||||||
|
|
||||||
xlog("Connected!\n");
|
xlog("[IRC] Connected!\n");
|
||||||
bot->srv_fd = FDOPEN(srv_fd, "r+");
|
bot->srv_fd = FDOPEN(srv_fd, "r+");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -134,7 +134,7 @@ void irc_connect(struct irc_conn *bot)
|
|||||||
void irc_auth(struct irc_conn *bot)
|
void irc_auth(struct irc_conn *bot)
|
||||||
{
|
{
|
||||||
irc_raw(bot, "NICK %s", bot->nick);
|
irc_raw(bot, "NICK %s", bot->nick);
|
||||||
irc_raw(bot, "USER %s \" %s :xbot (v0.5) - developed by ab3800", bot->nick, bot->host);
|
irc_raw(bot, "USER %s \" %s :xbot v%s (https://github.com/ablakely/xbot)", bot->nick, bot->host, VERSION);
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
fflush(bot->srv_fd);
|
fflush(bot->srv_fd);
|
||||||
@ -291,9 +291,9 @@ void irc_parse_raw(struct irc_conn *bot, char *raw)
|
|||||||
if (!strcmp("VERSION", ctcp))
|
if (!strcmp("VERSION", ctcp))
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
irc_notice(bot, user, "VERSION xbot: v0.5 (Windows) - Developed by ab3800");
|
irc_notice(bot, user, "VERSION xbot: v%s (Windows)", VERSION);
|
||||||
#else
|
#else
|
||||||
irc_notice(bot, user, "VERSION xbot: v0.5 (Linux) - Developed by ab3800");
|
irc_notice(bot, user, "VERSION xbot: v%s (Linux)", VERSION);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -25,12 +25,12 @@ void xlog(char *fmt, ...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
time_t tv;
|
time_t tv;
|
||||||
|
|
||||||
char *buf = calloc(8128, sizeof(char));
|
char *buf = calloc(4165, sizeof(char));
|
||||||
char *msg = calloc(4096, sizeof(char));
|
char *msg = calloc(4096, sizeof(char));
|
||||||
char *tbuf = calloc(64, sizeof(char));
|
char *tbuf = calloc(64, sizeof(char));
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(msg, 4096, fmt, args);
|
vsnprintf(msg, 4095, fmt, args);
|
||||||
|
|
||||||
time(&tv);
|
time(&tv);
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
* Written by Aaron Blakely <aaron@ephasic.org>
|
* Written by Aaron Blakely <aaron@ephasic.org>
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#define VERSION "0.1.0"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -109,7 +108,7 @@ int main(int argc, char **argv)
|
|||||||
if (access(bot.db_file, F_OK) == -1)
|
if (access(bot.db_file, F_OK) == -1)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
xlog("Creating database file: %s\n", bot.db_file);
|
xlog("[DB] Creating database file: %s\n", bot.db_file);
|
||||||
bot.db = (struct db_table *)malloc(sizeof(struct db_table));
|
bot.db = (struct db_table *)malloc(sizeof(struct db_table));
|
||||||
memset(bot.db, 0, sizeof(struct db_table));
|
memset(bot.db, 0, sizeof(struct db_table));
|
||||||
set_bot_db(bot.db);
|
set_bot_db(bot.db);
|
||||||
@ -121,7 +120,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xlog("Reading database file: %s\n", bot.db_file);
|
xlog("[DB] Reading database file: %s\n", bot.db_file);
|
||||||
bot.db = db_read(bot.db_file);
|
bot.db = db_read(bot.db_file);
|
||||||
set_bot_db(bot.db);
|
set_bot_db(bot.db);
|
||||||
}
|
}
|
||||||
@ -130,7 +129,7 @@ int main(int argc, char **argv)
|
|||||||
run_autoload(&bot);
|
run_autoload(&bot);
|
||||||
|
|
||||||
// Connect to the server
|
// Connect to the server
|
||||||
xlog("Connecting to %s...\n", bot.host);
|
xlog("[IRC] Connecting to %s...\n", bot.host);
|
||||||
|
|
||||||
irc_connect(&bot);
|
irc_connect(&bot);
|
||||||
trespond = time(NULL);
|
trespond = time(NULL);
|
||||||
|
19
src/module.c
19
src/module.c
@ -108,10 +108,8 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
{
|
{
|
||||||
irc_notice(bot, where, "Module '%s' loaded.", file);
|
irc_notice(bot, where, "Module '%s' loaded.", file);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
xlog("[module] Module '%s' loaded.\n", file);
|
||||||
xlog("Module '%s' loaded.\n", file);
|
|
||||||
}
|
|
||||||
free(error);
|
free(error);
|
||||||
#else
|
#else
|
||||||
void (*mod_init)();
|
void (*mod_init)();
|
||||||
@ -120,7 +118,7 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
mods->modules[mods->count].handle = dlopen(file, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
|
mods->modules[mods->count].handle = dlopen(file, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE);
|
||||||
if (!mods->modules[mods->count].handle)
|
if (!mods->modules[mods->count].handle)
|
||||||
{
|
{
|
||||||
sprintf(error, "Error: %s", dlerror());
|
sprintf(error, "[module] Error loading %s: %s", file, dlerror());
|
||||||
|
|
||||||
if (strcmp("runtime", stype))
|
if (strcmp("runtime", stype))
|
||||||
{
|
{
|
||||||
@ -136,6 +134,7 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
irc_notice(bot, where, error);
|
irc_notice(bot, where, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xlog("[module] %s", error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,11 +144,9 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
|
|
||||||
if ((error = dlerror()) != NULL)
|
if ((error = dlerror()) != NULL)
|
||||||
{
|
{
|
||||||
//sprintf(error, "Error: %s", error);
|
|
||||||
eprint("Error: %s\n", error);
|
|
||||||
|
|
||||||
if (strcmp("runtime", stype))
|
if (strcmp("runtime", stype))
|
||||||
{
|
{
|
||||||
|
eprint("Error: %s\n", error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (strcmp(PRIVMSG_CHAN, stype))
|
else if (strcmp(PRIVMSG_CHAN, stype))
|
||||||
@ -160,6 +157,8 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
{
|
{
|
||||||
irc_notice(bot, where, error);
|
irc_notice(bot, where, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xlog("[module] Error: %s", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
(*mods->modules[mods->count].init)();
|
(*mods->modules[mods->count].init)();
|
||||||
@ -210,7 +209,7 @@ void load_module(struct irc_conn *bot, char *where, char *stype, char *file)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xlog("Module '%s' loaded.\n", file);
|
xlog("[module] Module '%s' loaded.\n", file);
|
||||||
}
|
}
|
||||||
free(error);
|
free(error);
|
||||||
#endif
|
#endif
|
||||||
@ -239,7 +238,7 @@ void unload_module(struct irc_conn *bot, char *where, char *file)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xlog("Module '%s' unloaded.\n", file);
|
xlog("[module] Module '%s' unloaded.\n", file);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (i < mods->count)
|
while (i < mods->count)
|
||||||
|
10
src/util.c
10
src/util.c
@ -15,18 +15,22 @@
|
|||||||
|
|
||||||
void eprint(char *fmt, ...)
|
void eprint(char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
char msg[4096];
|
||||||
char bufout[4096];
|
char bufout[4096];
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
vsnprintf(bufout, sizeof bufout, fmt, ap);
|
vsnprintf(msg, sizeof msg, fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
fprintf(stderr, "%s", bufout);
|
sprintf(bufout, "%s", msg);
|
||||||
if (fmt[0] && fmt[strlen(fmt) - 1] == ':')
|
if (fmt[0] && fmt[strlen(fmt) - 1] == ':')
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s\n", strerror(errno));
|
sprintf(bufout, "%s\n", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "%s", bufout);
|
||||||
|
xlog("%s", bufout);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 38)) || defined(_WIN32)
|
#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 38)) || defined(_WIN32)
|
||||||
|
Loading…
Reference in New Issue
Block a user