diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-14 00:10:59 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2014-07-14 00:14:37 +0200 |
commit | d40d34b4caea7510eda9a0edebde3458de4bda5b (patch) | |
tree | 87d9b51cf1ff408eb586589282117e0bf29d3618 /src | |
parent | 586ccd4e874496014d82012f478c516cc002b8ae (diff) | |
download | xK-d40d34b4caea7510eda9a0edebde3458de4bda5b.tar.gz xK-d40d34b4caea7510eda9a0edebde3458de4bda5b.tar.xz xK-d40d34b4caea7510eda9a0edebde3458de4bda5b.zip |
Miscellaneous little things
Diffstat (limited to 'src')
-rw-r--r-- | src/kike.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -95,6 +95,8 @@ setup_signal_handlers (void) // --- IRC token validation ---------------------------------------------------- +// Use the enum only if applicable and a simple boolean isn't sufficient. + enum validation_result { VALIDATION_OK, @@ -473,10 +475,10 @@ error_ssl_1: static void connection_kill (struct connection *conn, const char *reason) { - // TODO: send a QUIT message with `reason' || "Client exited" + // TODO: multicast a QUIT message with `reason' || "Client exited" (void) reason; - // TODO: do further cleanup if the client has successfully registered + // TODO: do further cleanup if the client has successfully registered etc. struct server_context *ctx = conn->ctx; ssize_t i = poller_find_by_fd (&ctx->poller, conn->socket_fd); @@ -740,6 +742,7 @@ on_irc_connection_available (const struct pollfd *pfd, void *user_data) static bool irc_initialize_ssl (struct server_context *ctx) { + // TODO: this could definitely return an error object const char *ssl_cert = str_map_find (&ctx->config, "ssl_cert"); const char *ssl_key = str_map_find (&ctx->config, "ssl_key"); @@ -890,11 +893,6 @@ irc_listen (struct server_context *ctx, struct error **e) const char *bind_port = str_map_find (&ctx->config, "bind_port"); hard_assert (bind_port != NULL); // We have a default value for this - if (!irc_initialize_server_name (ctx, e)) - return false; - if (!irc_initialize_motd (ctx, e)) - return false; - struct addrinfo gai_hints, *gai_result, *gai_iter; memset (&gai_hints, 0, sizeof gai_hints); @@ -934,10 +932,10 @@ irc_listen (struct server_context *ctx, struct error **e) print_debug ("%s: %s", "getnameinfo", gai_strerror (err)); if (bind (sockfd, gai_iter->ai_addr, gai_iter->ai_addrlen)) - print_error ("bind() to %s:%s failed: %s", + print_error ("bind to %s:%s failed: %s", real_host, real_port, strerror (errno)); else if (listen (sockfd, 16 /* arbitrary number */)) - print_error ("listen() at %s:%s failed: %s", + print_error ("listen at %s:%s failed: %s", real_host, real_port, strerror (errno)); else break; @@ -1079,7 +1077,9 @@ main (int argc, char *argv[]) if (!irc_initialize_ssl (&ctx)) exit (EXIT_FAILURE); - if (!irc_initialize_catalog (&ctx, &e) + if (!irc_initialize_server_name (&ctx, &e) + || !irc_initialize_motd (&ctx, &e) + || !irc_initialize_catalog (&ctx, &e) || !irc_listen (&ctx, &e)) { print_error ("%s", e->message); @@ -1088,6 +1088,7 @@ main (int argc, char *argv[]) } // TODO: daemonize + // TODO: syslog (if not running in debug mode) ctx.polling = true; while (ctx.polling) |