--- a/Makefile Sun Feb 22 07:08:57 2009 +0200
+++ b/Makefile Sun Feb 22 07:21:28 2009 +0200
@@ -30,6 +30,7 @@
# modules
module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c))
+CORE_OBJS = obj/error.o
SOCK_OBJS = obj/sock.o obj/sock_tcp.o
SOCK_GNUTLS_OBJS = obj/sock_gnutls.o
@@ -40,7 +41,7 @@
all: ${BIN_PATHS}
# binaries
-bin/nexus: ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS}
+bin/nexus: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS}
# computed
CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} ${LIBEVENT_CFLAGS} ${GNUTLS_CFLAGS}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/error.c Sun Feb 22 07:21:28 2009 +0200
@@ -0,0 +1,28 @@
+
+#include "error.h"
+
+/*
+ * Helper macros
+ */
+#define ERROR_NAME(code, name) case code: return name
+
+const char *error_name (err_t code)
+{
+ switch (code) {
+ ERROR_NAME( ERR_CALLOC, "calloc" );
+ ERROR_NAME( ERR_GETADDRINFO, "getaddrinfo" );
+ ERROR_NAME( ERR_GETADDRINFO_EMPTY, "getaddrinfo" );
+ ERROR_NAME( ERR_SOCKET, "socket" );
+ ERROR_NAME( ERR_CONNECT, "connect" );
+ ERROR_NAME( ERR_READ, "read" );
+ ERROR_NAME( ERR_WRITE, "write" );
+ ERROR_NAME( ERR_GNUTLS_CERT_ALLOC_CRED, "gnutls_certificate_allocate_credentials" );
+ ERROR_NAME( ERR_GNUTLS_GLOBAL_INIT, "gnutls_global_init" );
+ ERROR_NAME( ERR_GNUTLS_INIT, "gnutls_init" );
+ ERROR_NAME( ERR_GNUTLS_SET_DEFAULT_PRIORITY, "gnutls_set_default_priority" );
+ ERROR_NAME( ERR_GNUTLS_CRED_SET, "gnutls_credentials_set" );
+ ERROR_NAME( ERR_GNUTLS_HANDSHAKE, "gnutls_handshake" );
+ default: return "[unknown]";
+ }
+}
+
--- a/src/error.h Sun Feb 22 07:08:57 2009 +0200
+++ b/src/error.h Sun Feb 22 07:21:28 2009 +0200
@@ -51,6 +51,11 @@
unsigned int extra;
};
+/*
+ * Translate an err_t into a string.
+ */
+const char *error_name (err_t code);
+
/** No error, evaulates as logical false */
#define SUCCESS (0)
--- a/src/nexus.c Sun Feb 22 07:08:57 2009 +0200
+++ b/src/nexus.c Sun Feb 22 07:21:28 2009 +0200
@@ -11,7 +11,7 @@
#include "sock.h"
#define CONNECT_HOST "irc.fixme.fi"
-#define CONNECT_SERV "6667"
+#define CONNECT_SERV "6697"
#define LINE_LENGTH 512
struct recvline_state {
@@ -112,15 +112,13 @@
// initialize
if (sock_init(&err))
- // XXX: ...
- errx(1, "sock_init");
+ errx(1, "sock_init: %s", error_name(ERROR_CODE(&err)));
memset(&recvline_ctx, 0, sizeof(recvline_ctx));
// over-simplified connect
if (sock_gnutls_connect(&sock, CONNECT_HOST, CONNECT_SERV, &err))
- // XXX:
- errx(1, "sock_gnutls_connect");
+ errx(1, "sock_gnutls_connect: %s", error_name(ERROR_CODE(&err)));
// read lines and dump them out
do {