--- a/src/nexus.c Sun Mar 01 02:02:48 2009 +0200
+++ b/src/nexus.c Sun Mar 08 17:17:37 2009 +0200
@@ -2,6 +2,7 @@
#include "log.h"
#include "sock.h"
#include "irc_conn.h"
+#include "irc_log.h"
#include <stdlib.h>
#include <stdbool.h>
@@ -15,12 +16,21 @@
#define DEFAULT_PORT "6667"
#define DEFAULT_PORT_SSL "6697"
+enum option_code {
+ _OPT_LOG_BEGIN = 0x00ff,
+
+ OPT_LOG_DATABASE,
+ OPT_LOG_CHANNEL,
+};
+
static struct option options[] = {
- {"help", 0, NULL, 'h' },
- {"hostname", 1, NULL, 'H' },
- {"port", 1, NULL, 'P' },
- {"ssl", 0, NULL, 'S' },
- {0, 0, 0, 0 },
+ {"help", 0, NULL, 'h' },
+ {"hostname", 1, NULL, 'H' },
+ {"port", 1, NULL, 'P' },
+ {"ssl", 0, NULL, 'S' },
+ {"log-database", 1, NULL, OPT_LOG_DATABASE },
+ {"log-channel", 1, NULL, OPT_LOG_CHANNEL },
+ {0, 0, 0, 0 },
};
void usage (const char *exe)
@@ -31,6 +41,8 @@
printf(" --hostname / -H HOST set hostname to connect to\n");
printf(" --port / -P PORT set service port to connect to\n");
printf(" --ssl / -S use SSL\n");
+ printf(" --log-database database connection string for logging\n");
+ printf(" --log-channel channel to log\n");
}
int main (int argc, char **argv)
@@ -48,6 +60,7 @@
.username = "spbot-dev",
.realname = "SpBot (development version)",
};
+ const char *log_database = NULL, *log_channel = NULL;
bool port_default = true;
@@ -74,6 +87,14 @@
portname = DEFAULT_PORT_SSL;
break;
+
+ case OPT_LOG_DATABASE:
+ log_database = optarg;
+ break;
+
+ case OPT_LOG_CHANNEL:
+ log_channel = optarg;
+ break;
case '?':
usage(argv[0]);
@@ -109,6 +130,12 @@
// create the irc connection state
if (irc_conn_create(&conn, sock, &conn_config, &err))
FATAL_ERROR(&err, "irc_conn_create");
+
+ // logging?
+ if (log_database || log_channel) {
+ if ((ERROR_CODE(&err) = irc_log_init(ev_base, log_database, conn, log_channel)))
+ FATAL_ERROR(&err, "irc_log_init");
+ }
// run event loop
if (event_base_dispatch(ev_base))