changeset 1200:efbe36bf020b

lib: make sure nobody use conn.h
author David Demelier <markand@malikania.fr>
date Sat, 05 Aug 2023 22:31:53 +0200
parents c6b5bf592252
children 67fa43998a91
files CMakeLists.txt lib/CMakeLists.txt lib/irccd/conn.c lib/irccd/conn.h lib/irccd/server.c lib/irccd/server.h tests/test-dl-plugin.c tests/test-event.c
diffstat 8 files changed, 126 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Thu Aug 03 21:36:43 2023 +0200
+++ b/CMakeLists.txt	Sat Aug 05 22:31:53 2023 +0200
@@ -32,7 +32,7 @@
 # - irccdctl (irccdctl, executable): contain irccdctl(1) utility.
 #
 
-cmake_minimum_required(VERSION 2.20)
+cmake_minimum_required(VERSION 3.20)
 cmake_policy(SET CMP0048 NEW)
 project(irccd
 	LANGUAGES C
--- a/lib/CMakeLists.txt	Thu Aug 03 21:36:43 2023 +0200
+++ b/lib/CMakeLists.txt	Sat Aug 05 22:31:53 2023 +0200
@@ -105,4 +105,4 @@
 )
 
 source_group(extern/libbsd FILES ${LIBBSD_SOURCES})
-source_group(irccd FILES ${SOURCES} ${HEADERS})
+source_group(irccd FILES ${SOURCES} ${HEADERS} ${PRIVHEADERS})
--- a/lib/irccd/conn.c	Thu Aug 03 21:36:43 2023 +0200
+++ b/lib/irccd/conn.c	Sat Aug 05 22:31:53 2023 +0200
@@ -1,5 +1,5 @@
 /*
- * conn.c -- an IRC server channel
+ * conn.c -- abstract IRC server connection
  *
  * Copyright (c) 2013-2023 David Demelier <markand@malikania.fr>
  *
@@ -33,7 +33,7 @@
 #include "util.h"
 
 static void
-cleanup(struct irc_conn *conn)
+cleanup(struct irc__conn *conn)
 {
 	if (conn->fd != 0)
 		close(conn->fd);
@@ -44,13 +44,13 @@
 	if (conn->ctx)
 		SSL_CTX_free(conn->ctx);
 
-	conn->ssl_cond = IRC_CONN_SSL_ACT_NONE;
-	conn->ssl_step = IRC_CONN_SSL_ACT_NONE;
+	conn->ssl_cond = IRC__CONN_SSL_ACT_NONE;
+	conn->ssl_step = IRC__CONN_SSL_ACT_NONE;
 	conn->ssl = NULL;
 	conn->ctx = NULL;
 #endif
 
-	conn->state = IRC_CONN_STATE_NONE;
+	conn->state = IRC__CONN_STATE_NONE;
 	conn->fd = -1;
 }
 
@@ -67,7 +67,7 @@
 }
 
 static int
-parse(struct irc_conn_msg *msg, const char *line)
+parse(struct irc__conn_msg *msg, const char *line)
 {
 	char *ptr = msg->buf;
 	size_t a;
@@ -103,7 +103,7 @@
 }
 
 static int
-create(struct irc_conn *conn)
+create(struct irc__conn *conn)
 {
 	struct addrinfo *ai = conn->aip;
 	int cflags = 0;
@@ -123,7 +123,7 @@
 #if defined(IRCCD_WITH_SSL)
 
 static inline int
-update_ssl_state(struct irc_conn *conn, int ret)
+update_ssl_state(struct irc__conn *conn, int ret)
 {
 	char error[1024];
 	int num;
@@ -132,17 +132,17 @@
 	case SSL_ERROR_WANT_READ:
 		irc_log_debug("server %s: step %d now needs read condition",
 		    conn->sv->name, conn->ssl_step);
-		conn->ssl_cond = IRC_CONN_SSL_ACT_READ;
+		conn->ssl_cond = IRC__CONN_SSL_ACT_READ;
 		break;
 	case SSL_ERROR_WANT_WRITE:
 		irc_log_debug("server %s: step %d now needs write condition",
 		    conn->sv->name, conn->ssl_step);
-		conn->ssl_cond = IRC_CONN_SSL_ACT_WRITE;
+		conn->ssl_cond = IRC__CONN_SSL_ACT_WRITE;
 		break;
 	case SSL_ERROR_SSL:
 		irc_log_warn("server %s: SSL error: %s", conn->sv->name,
 		    ERR_error_string(num, error));
-		return irc_conn_disconnect(conn), -1;
+		return irc__conn_disconnect(conn), -1;
 	default:
 		break;
 	}
@@ -151,21 +151,21 @@
 }
 
 static inline ssize_t
-input_ssl(struct irc_conn *conn, char *dst, size_t dstsz)
+input_ssl(struct irc__conn *conn, char *dst, size_t dstsz)
 {
 	int nr;
 
 	if ((nr = SSL_read(conn->ssl, dst, dstsz)) <= 0) {
 		irc_log_debug("server %s: SSL read incomplete", conn->sv->name);
-		conn->ssl_step = IRC_CONN_SSL_ACT_READ;
+		conn->ssl_step = IRC__CONN_SSL_ACT_READ;
 		return update_ssl_state(conn, nr);
 	}
 
 	if (conn->ssl_cond)
 		irc_log_debug("server %s: condition back to normal", conn->sv->name);
 
-	conn->ssl_cond = IRC_CONN_SSL_ACT_NONE;
-	conn->ssl_step = IRC_CONN_SSL_ACT_NONE;
+	conn->ssl_cond = IRC__CONN_SSL_ACT_NONE;
+	conn->ssl_step = IRC__CONN_SSL_ACT_NONE;
 
 	return nr;
 }
@@ -173,27 +173,27 @@
 #endif
 
 static inline ssize_t
-input_clear(struct irc_conn *conn, char *buf, size_t bufsz)
+input_clear(struct irc__conn *conn, char *buf, size_t bufsz)
 {
 	ssize_t nr;
 
 	if ((nr = recv(conn->fd, buf, bufsz, 0)) <= 0) {
 		errno = ECONNRESET;
-		return irc_conn_disconnect(conn), -1;
+		return irc__conn_disconnect(conn), -1;
 	}
 
 	return nr;
 }
 
 static int
-input(struct irc_conn *conn)
+input(struct irc__conn *conn)
 {
 	size_t len = strlen(conn->in);
 	size_t cap = sizeof (conn->in) - len - 1;
 	ssize_t nr = 0;
 
 #if defined(IRCCD_WITH_SSL)
-	if (conn->flags & IRC_CONN_SSL)
+	if (conn->flags & IRC__CONN_SSL)
 		nr = input_ssl(conn, conn->in + len, cap);
 	else
 #endif
@@ -208,21 +208,21 @@
 #if defined(IRCCD_WITH_SSL)
 
 static inline ssize_t
-output_ssl(struct irc_conn *conn)
+output_ssl(struct irc__conn *conn)
 {
 	int ns;
 
 	if ((ns = SSL_write(conn->ssl, conn->out, strlen(conn->out))) <= 0) {
 		irc_log_debug("server %s: SSL write incomplete", conn->sv->name);
-		conn->ssl_step = IRC_CONN_SSL_ACT_WRITE;
+		conn->ssl_step = IRC__CONN_SSL_ACT_WRITE;
 		return update_ssl_state(conn, ns);
 	}
 
 	if (conn->ssl_cond)
 		irc_log_debug("server %s: condition back to normal", conn->sv->name);
 
-	conn->ssl_cond = IRC_CONN_SSL_ACT_NONE;
-	conn->ssl_step = IRC_CONN_SSL_ACT_NONE;
+	conn->ssl_cond = IRC__CONN_SSL_ACT_NONE;
+	conn->ssl_step = IRC__CONN_SSL_ACT_NONE;
 
 	return ns;
 }
@@ -230,23 +230,23 @@
 #endif
 
 static inline ssize_t
-output_clear(struct irc_conn *conn)
+output_clear(struct irc__conn *conn)
 {
 	ssize_t ns;
 
 	if ((ns = send(conn->fd, conn->out, strlen(conn->out), 0)) < 0)
-		return irc_conn_disconnect(conn), -1;
+		return irc__conn_disconnect(conn), -1;
 
 	return ns;
 }
 
 static int
-output(struct irc_conn *conn)
+output(struct irc__conn *conn)
 {
 	ssize_t ns = 0;
 
 #if defined(IRCCD_WITH_SSL)
-	if (conn->flags & IRC_CONN_SSL)
+	if (conn->flags & IRC__CONN_SSL)
 		ns = output_ssl(conn);
 	else
 #endif
@@ -264,13 +264,13 @@
 }
 
 static int
-handshake(struct irc_conn *conn)
+handshake(struct irc__conn *conn)
 {
 #if defined(IRCCD_WITH_SSL)
-	if (conn->flags & IRC_CONN_SSL) {
+	if (conn->flags & IRC__CONN_SSL) {
 		int r;
 
-		conn->state = IRC_CONN_STATE_HANDSHAKING;
+		conn->state = IRC__CONN_STATE_HANDSHAKING;
 
 		/*
 		 * This function is called several time until it completes so we
@@ -304,23 +304,23 @@
 		}
 
 		conn->statetime = time(NULL);
-		conn->state = IRC_CONN_STATE_READY;
-		conn->ssl_cond = IRC_CONN_SSL_ACT_NONE;
-		conn->ssl_step = IRC_CONN_SSL_ACT_NONE;
+		conn->state = IRC__CONN_STATE_READY;
+		conn->ssl_cond = IRC__CONN_SSL_ACT_NONE;
+		conn->ssl_step = IRC__CONN_SSL_ACT_NONE;
 	} else
 #endif
-		conn->state = IRC_CONN_STATE_READY;
+		conn->state = IRC__CONN_STATE_READY;
 
 	return 0;
 }
 
 static int
-dial(struct irc_conn *conn)
+dial(struct irc__conn *conn)
 {
 	/* No more address available. */
 	if (conn->aip == NULL) {
 		irc_log_warn("server %s: could not connect", conn->sv->name);
-		return irc_conn_disconnect(conn), -1;
+		return irc__conn_disconnect(conn), -1;
 	}
 
 	for (; conn->aip; conn->aip = conn->aip->ai_next) {
@@ -336,7 +336,7 @@
 
 		/* Connect "succeeds" but isn't complete yet. */
 		if (errno == EINPROGRESS || errno == EAGAIN) {
-			conn->state = IRC_CONN_STATE_CONNECTING;
+			conn->state = IRC__CONN_STATE_CONNECTING;
 			return 0;
 		}
 	}
@@ -345,7 +345,7 @@
 }
 
 static int
-lookup(struct irc_conn *conn)
+lookup(struct irc__conn *conn)
 {
 	struct addrinfo hints = {
 		.ai_socktype = SOCK_STREAM,
@@ -367,7 +367,7 @@
 }
 
 static int
-check_connect(struct irc_conn *conn)
+check_connect(struct irc__conn *conn)
 {
 	int res, err = -1;
 	socklen_t len = sizeof (int);
@@ -382,14 +382,14 @@
 #if defined(IRCCD_WITH_SSL)
 
 static inline void
-prepare_ssl(const struct irc_conn *conn, struct pollfd *pfd)
+prepare_ssl(const struct irc__conn *conn, struct pollfd *pfd)
 {
 	switch (conn->ssl_cond) {
-	case IRC_CONN_SSL_ACT_READ:
+	case IRC__CONN_SSL_ACT_READ:
 		irc_log_debug("server %s: need read condition", conn->sv->name);
 		pfd->events |= POLLIN;
 		break;
-	case IRC_CONN_SSL_ACT_WRITE:
+	case IRC__CONN_SSL_ACT_WRITE:
 		irc_log_debug("server %s: need write condition", conn->sv->name);
 		pfd->events |= POLLOUT;
 		break;
@@ -399,11 +399,11 @@
 }
 
 static inline int
-renegotiate(struct irc_conn *conn)
+renegotiate(struct irc__conn *conn)
 {
 	irc_log_debug("server %s: renegociate step=%d", conn->sv->name, conn->ssl_step);
 
-	return conn->ssl_step == IRC_CONN_SSL_ACT_READ
+	return conn->ssl_step == IRC__CONN_SSL_ACT_READ
 		? input(conn)
 		: output(conn);
 }
@@ -411,7 +411,7 @@
 #endif
 
 int
-irc_conn_connect(struct irc_conn *conn)
+irc__conn_connect(struct irc__conn *conn)
 {
 	assert(conn);
 
@@ -427,13 +427,13 @@
 #endif
 
 	if (lookup(conn) < 0)
-		return irc_conn_disconnect(conn), -1;
+		return irc__conn_disconnect(conn), -1;
 
 	return dial(conn);
 }
 
 void
-irc_conn_disconnect(struct irc_conn *conn)
+irc__conn_disconnect(struct irc__conn *conn)
 {
 	assert(conn);
 
@@ -441,7 +441,7 @@
 }
 
 void
-irc_conn_prepare(const struct irc_conn *conn, struct pollfd *pfd)
+irc__conn_prepare(const struct irc__conn *conn, struct pollfd *pfd)
 {
 	assert(conn);
 	assert(pfd);
@@ -454,10 +454,10 @@
 	else {
 #endif
 		switch (conn->state) {
-		case IRC_CONN_STATE_CONNECTING:
+		case IRC__CONN_STATE_CONNECTING:
 			pfd->events = POLLOUT;
 			break;
-		case IRC_CONN_STATE_READY:
+		case IRC__CONN_STATE_READY:
 			pfd->events = POLLIN;
 
 			if (conn->out[0])
@@ -472,30 +472,30 @@
 }
 
 int
-irc_conn_flush(struct irc_conn *conn, const struct pollfd *pfd)
+irc__conn_flush(struct irc__conn *conn, const struct pollfd *pfd)
 {
 	assert(conn);
 	assert(pfd);
 
 	switch (conn->state) {
-	case IRC_CONN_STATE_CONNECTING:
+	case IRC__CONN_STATE_CONNECTING:
 		return check_connect(conn);
-	case IRC_CONN_STATE_HANDSHAKING:
+	case IRC__CONN_STATE_HANDSHAKING:
 		return handshake(conn);
-	case IRC_CONN_STATE_READY:
+	case IRC__CONN_STATE_READY:
 		if (pfd->revents & (POLLERR | POLLHUP))
-			return irc_conn_disconnect(conn), -1;
+			return irc__conn_disconnect(conn), -1;
 
 #if defined(IRCCD_WITH_SSL)
 		if (conn->ssl_cond) {
 			if (renegotiate(conn) < 0)
-				return irc_conn_disconnect(conn), -1;
+				return irc__conn_disconnect(conn), -1;
 		} else {
 #endif
 			if (pfd->revents & POLLIN && input(conn) < 0)
-				return irc_conn_disconnect(conn), -1;
+				return irc__conn_disconnect(conn), -1;
 			if (pfd->revents & POLLOUT && output(conn) < 0)
-				return irc_conn_disconnect(conn), -1;
+				return irc__conn_disconnect(conn), -1;
 #if defined(IRCCD_WITH_SSL)
 		}
 #endif
@@ -508,7 +508,7 @@
 }
 
 int
-irc_conn_poll(struct irc_conn *conn, struct irc_conn_msg *msg)
+irc__conn_poll(struct irc__conn *conn, struct irc__conn_msg *msg)
 {
 	assert(conn);
 	assert(msg);
@@ -533,7 +533,7 @@
 }
 
 int
-irc_conn_send(struct irc_conn *conn, const char *data)
+irc__conn_send(struct irc__conn *conn, const char *data)
 {
 	assert(conn);
 	assert(data);
@@ -547,7 +547,7 @@
 }
 
 void
-irc_conn_finish(struct irc_conn *conn)
+irc__conn_finish(struct irc__conn *conn)
 {
 	assert(conn);
 
--- a/lib/irccd/conn.h	Thu Aug 03 21:36:43 2023 +0200
+++ b/lib/irccd/conn.h	Sat Aug 05 22:31:53 2023 +0200
@@ -1,5 +1,5 @@
 /*
- * conn.h -- an IRC server channel
+ * conn.h -- abstract IRC server connection
  *
  * Copyright (c) 2013-2023 David Demelier <markand@malikania.fr>
  *
@@ -38,28 +38,28 @@
 
 struct irc_server;
 
-enum irc_conn_state {
-	IRC_CONN_STATE_NONE,            /* Nothing, default. */
-	IRC_CONN_STATE_CONNECTING,      /* Pending connect(2) call. */
-	IRC_CONN_STATE_HANDSHAKING,     /* SSL connect+handshake. */
-	IRC_CONN_STATE_READY            /* Ready for I/O. */
+enum irc__conn_state {
+	IRC__CONN_STATE_NONE,           /* Nothing, default. */
+	IRC__CONN_STATE_CONNECTING,     /* Pending connect(2) call. */
+	IRC__CONN_STATE_HANDSHAKING,    /* SSL connect+handshake. */
+	IRC__CONN_STATE_READY           /* Ready for I/O. */
 };
 
-enum irc_conn_flags {
-	IRC_CONN_SSL = (1 << 0)
+enum irc__conn_flags {
+	IRC__CONN_SSL = (1 << 0)
 };
 
 #if defined(IRCCD_WITH_SSL)
 
-enum irc_conn_ssl_act {
-	IRC_CONN_SSL_ACT_NONE,
-	IRC_CONN_SSL_ACT_READ,
-	IRC_CONN_SSL_ACT_WRITE,
+enum irc__conn_ssl_act {
+	IRC__CONN_SSL_ACT_NONE,
+	IRC__CONN_SSL_ACT_READ,
+	IRC__CONN_SSL_ACT_WRITE,
 };
 
 #endif
 
-struct irc_conn {
+struct irc__conn {
 	char hostname[IRC_HOST_LEN];
 	unsigned short port;
 	int fd;
@@ -67,20 +67,20 @@
 	struct addrinfo *aip;
 	char in[IRC_BUF_LEN];
 	char out[IRC_BUF_LEN];
-	enum irc_conn_state state;
-	enum irc_conn_flags flags;
+	enum irc__conn_state state;
+	enum irc__conn_flags flags;
 	struct irc_server *sv;
 	time_t statetime;
 
 #if defined(IRCCD_WITH_SSL)
 	SSL_CTX *ctx;
 	SSL *ssl;
-	enum irc_conn_ssl_act ssl_cond;
-	enum irc_conn_ssl_act ssl_step;
+	enum irc__conn_ssl_act ssl_cond;
+	enum irc__conn_ssl_act ssl_step;
 #endif
 };
 
-struct irc_conn_msg {
+struct irc__conn_msg {
 	char *prefix;
 	char *cmd;
 	char *args[IRC_ARGS_MAX];
@@ -88,25 +88,25 @@
 };
 
 int
-irc_conn_connect(struct irc_conn *);
+irc__conn_connect(struct irc__conn *);
 
 void
-irc_conn_disconnect(struct irc_conn *);
+irc__conn_disconnect(struct irc__conn *);
 
 void
-irc_conn_prepare(const struct irc_conn *, struct pollfd *);
+irc__conn_prepare(const struct irc__conn *, struct pollfd *);
 
 int
-irc_conn_flush(struct irc_conn *, const struct pollfd *);
+irc__conn_flush(struct irc__conn *, const struct pollfd *);
 
 int
-irc_conn_poll(struct irc_conn *, struct irc_conn_msg *);
+irc__conn_poll(struct irc__conn *, struct irc__conn_msg *);
 
 int
-irc_conn_send(struct irc_conn *, const char *);
+irc__conn_send(struct irc__conn *, const char *);
 
 void
-irc_conn_finish(struct irc_conn *);
+irc__conn_finish(struct irc__conn *);
 
 #if defined(__cplusplus)
 }
--- a/lib/irccd/server.c	Thu Aug 03 21:36:43 2023 +0200
+++ b/lib/irccd/server.c	Sat Aug 05 22:31:53 2023 +0200
@@ -63,7 +63,7 @@
 static inline void
 clear_server(struct irc_server *s)
 {
-	irc_conn_finish(s->conn);
+	irc__conn_finish(s->conn);
 
 	free(s->bufwhois.nickname);
 	free(s->bufwhois.username);
@@ -197,7 +197,7 @@
 }
 
 static void
-handle_connect(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_connect(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)msg;
 
@@ -224,7 +224,7 @@
 }
 
 static void
-handle_support(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_support(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)ev;
 
@@ -277,7 +277,7 @@
 }
 
 static void
-handle_invite(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_invite(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	ev->type = IRC_EVENT_INVITE;
 	ev->invite.origin = irc_util_strdup(msg->prefix);
@@ -290,7 +290,7 @@
 }
 
 static void
-handle_join(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_join(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	ev->type = IRC_EVENT_JOIN;
 	ev->join.origin = irc_util_strdup(msg->prefix);
@@ -303,7 +303,7 @@
 }
 
 static void
-handle_kick(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_kick(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	ev->type = IRC_EVENT_KICK;
 	ev->kick.origin = irc_util_strdup(msg->prefix);
@@ -330,7 +330,7 @@
 }
 
 static void
-handle_mode(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_mode(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)s;
 	(void)ev;
@@ -397,7 +397,7 @@
 }
 
 static void
-handle_part(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_part(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	struct irc_channel *ch;
 
@@ -416,7 +416,7 @@
 }
 
 static void
-handle_msg(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_msg(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)s;
 
@@ -464,7 +464,7 @@
 }
 
 static void
-handle_nick(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_nick(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	ev->type = IRC_EVENT_NICK;
 	ev->nick.origin = irc_util_strdup(msg->prefix);
@@ -479,7 +479,7 @@
 }
 
 static void
-handle_notice(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_notice(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)s;
 
@@ -490,7 +490,7 @@
 }
 
 static void
-handle_topic(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_topic(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)s;
 
@@ -501,7 +501,7 @@
 }
 
 static void
-handle_ping(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_ping(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)ev;
 	(void)msg;
@@ -511,7 +511,7 @@
 }
 
 static void
-handle_names(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_names(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)ev;
 
@@ -532,7 +532,7 @@
 }
 
 static void
-handle_endofnames(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_endofnames(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	FILE *fp;
 	size_t length;
@@ -563,7 +563,7 @@
 }
 
 static void
-handle_nicknameinuse(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_nicknameinuse(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)msg;
 	(void)ev;
@@ -573,7 +573,7 @@
 }
 
 static void
-handle_error(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_error(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	ev->type = IRC_EVENT_DISCONNECT;
 
@@ -584,7 +584,7 @@
 }
 
 static void
-handle_whoisuser(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_whoisuser(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)s;
 	(void)ev;
@@ -597,7 +597,7 @@
 }
 
 static void
-handle_whoischannels(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_whoischannels(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)ev;
 
@@ -621,7 +621,7 @@
 }
 
 static void
-handle_endofwhois(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle_endofwhois(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	(void)msg;
 
@@ -633,7 +633,7 @@
 
 static const struct handler {
 	const char *command;
-	void (*handle)(struct irc_server *, struct irc_event *, struct irc_conn_msg *);
+	void (*handle)(struct irc_server *, struct irc_event *, struct irc__conn_msg *);
 } handlers[] = {
 	/* Must be kept ordered. */
 	{ "001",        handle_connect          },
@@ -671,7 +671,7 @@
 }
 
 static void
-handle(struct irc_server *s, struct irc_event *ev, struct irc_conn_msg *msg)
+handle(struct irc_server *s, struct irc_event *ev, struct irc__conn_msg *msg)
 {
 	const struct handler *h;
 
@@ -754,11 +754,11 @@
 	assert(s);
 
 	if (s->flags & IRC_SERVER_FLAGS_SSL)
-		s->conn->flags |= IRC_CONN_SSL;
+		s->conn->flags |= IRC__CONN_SSL;
 
 	s->conn->sv = s;
 
-	if (irc_conn_connect(s->conn) < 0)
+	if (irc__conn_connect(s->conn) < 0)
 		fail(s);
 	else
 		s->state = IRC_SERVER_STATE_CONNECTING;
@@ -797,7 +797,7 @@
 	assert(s);
 	assert(pfd);
 
-	irc_conn_prepare(s->conn, pfd);
+	irc__conn_prepare(s->conn, pfd);
 }
 
 void
@@ -817,7 +817,7 @@
 		if (difftime(time(NULL), s->last_tp) >= TIMEOUT) {
 			irc_log_warn("server %s: no message in more than %u seconds", s->name, TIMEOUT);
 			fail(s);
-		} else if (irc_conn_flush(s->conn, pfd) < 0) {
+		} else if (irc__conn_flush(s->conn, pfd) < 0) {
 			irc_log_warn("server %s: %s", s->name, strerror(errno));
 			fail(s);
 		}
@@ -842,7 +842,7 @@
 	assert(s);
 	assert(ev);
 
-	struct irc_conn_msg msg = {0};
+	struct irc__conn_msg msg = {0};
 
 	/*
 	 * When the server gets disconnected, the state changes to
@@ -857,7 +857,7 @@
 		return 1;
 	}
 
-	if (irc_conn_poll(s->conn, &msg))
+	if (irc__conn_poll(s->conn, &msg))
 		return handle(s, ev, &msg), 1;
 
 	return 0;
@@ -896,7 +896,7 @@
 	vsnprintf(buf, sizeof (buf), fmt, ap);
 	va_end(ap);
 
-	return irc_conn_send(s->conn, buf);
+	return irc__conn_send(s->conn, buf);
 }
 
 int
--- a/lib/irccd/server.h	Thu Aug 03 21:36:43 2023 +0200
+++ b/lib/irccd/server.h	Sat Aug 05 22:31:53 2023 +0200
@@ -32,7 +32,7 @@
 
 struct pollfd;
 
-struct irc_conn;
+struct irc__conn;
 struct irc_channel;
 
 enum irc_server_state {
@@ -92,7 +92,7 @@
 	enum irc_server_flags flags;
 	struct irc_channel *channels;
 	struct irc_event_whois bufwhois;
-	struct irc_conn *conn;
+	struct irc__conn *conn;
 	size_t refc;
 	time_t lost_tp, last_tp;
 	struct irc_server *next;
--- a/tests/test-dl-plugin.c	Thu Aug 03 21:36:43 2023 +0200
+++ b/tests/test-dl-plugin.c	Sat Aug 05 22:31:53 2023 +0200
@@ -133,7 +133,7 @@
 GREATEST_TEST
 calls_simple(void)
 {
-	struct irc_conn conn = {0};
+	struct irc__conn conn = {0};
 	struct irc_server server = {
 		.state = IRC_SERVER_STATE_CONNECTED,
 		.conn = &conn
--- a/tests/test-event.c	Thu Aug 03 21:36:43 2023 +0200
+++ b/tests/test-event.c	Sat Aug 05 22:31:53 2023 +0200
@@ -26,12 +26,12 @@
 basics_parse_simple(void)
 {
 	/* This is a TOPIC message. */
-	struct irc_conn conn = {
+	struct irc__conn conn = {
 		.in = ":malikania.fr 332 boris #test :Welcome to #test :: a testing channel\r\n"
 	};
-	struct irc_conn_msg msg = {0};
+	struct irc__conn_msg msg = {0};
 
-	irc_conn_poll(&conn, &msg);
+	irc__conn_poll(&conn, &msg);
 
 	GREATEST_ASSERT_STR_EQ("malikania.fr", msg.prefix);
 	GREATEST_ASSERT_STR_EQ("332", msg.cmd);
@@ -46,12 +46,12 @@
 basics_parse_noprefix(void)
 {
 	/* Ping messages usually don't have a prefix. */
-	struct irc_conn conn = {
+	struct irc__conn conn = {
 		.in = "PING :malikania.fr\r\n"
 	};
-	struct irc_conn_msg msg = {0};
+	struct irc__conn_msg msg = {0};
 
-	irc_conn_poll(&conn, &msg);
+	irc__conn_poll(&conn, &msg);
 
 	GREATEST_ASSERT(!msg.prefix);
 	GREATEST_ASSERT_STR_EQ("PING", msg.cmd);