Mercurial > irccd
changeset 1070:beb61243cf6d
misc: remove usage of BSD sys/queue.h (channel)
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 12 Jul 2021 21:20:31 +0200 |
parents | 827431b41132 |
children | e9b35306f376 |
files | irccd/jsapi-server.c irccd/peer.c lib/irccd/channel.c lib/irccd/channel.h lib/irccd/server.c lib/irccd/server.h tests/test-channel.c tests/test-plugin-tictactoe.c |
diffstat | 8 files changed, 43 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/irccd/jsapi-server.c Mon Jul 12 21:11:53 2021 +0200 +++ b/irccd/jsapi-server.c Mon Jul 12 21:20:31 2021 +0200 @@ -20,6 +20,8 @@ #include <duktape.h> +#include <utlist.h> + #include <irccd/channel.h> #include <irccd/conn.h> #include <irccd/irccd.h> @@ -188,7 +190,7 @@ /* Channels. */ duk_push_array(ctx); - LIST_FOREACH(c, &s->channels, link) { + LL_FOREACH(s->channels, c) { duk_push_object(ctx); duk_push_string(ctx, c->name); duk_put_prop_string(ctx, -2, "name"); @@ -196,7 +198,7 @@ duk_put_prop_string(ctx, -2, "joined"); duk_push_array(ctx); - LIST_FOREACH(u, &c->users, link) { + LL_FOREACH(c->users, u) { duk_push_object(ctx); duk_push_string(ctx, u->nickname); duk_put_prop_string(ctx, -2, "nickname");
--- a/irccd/peer.c Mon Jul 12 21:11:53 2021 +0200 +++ b/irccd/peer.c Mon Jul 12 21:20:31 2021 +0200 @@ -774,7 +774,7 @@ s->flags & IRC_SERVER_FLAGS_SSL ? " ssl" : ""); fprintf(fp, "%s %s %s\n", s->ident.nickname, s->ident.username, s->ident.realname); - LIST_FOREACH(c, &s->channels, link) { + LL_FOREACH(s->channels, c) { const struct irc_channel_user *user = irc_channel_get(c, s->ident.nickname); /* Prefix all our own modes on this channel. */ @@ -784,7 +784,7 @@ fprintf(fp, "%s", c->name); - if (LIST_NEXT(c, link)) + if (c->next) fputc(' ', fp); }
--- a/lib/irccd/channel.c Mon Jul 12 21:11:53 2021 +0200 +++ b/lib/irccd/channel.c Mon Jul 12 21:20:31 2021 +0200 @@ -20,6 +20,8 @@ #include <stdlib.h> #include <string.h> +#include <utlist.h> + #include "channel.h" #include "util.h" @@ -36,8 +38,6 @@ strlcpy(ch->name, name, sizeof (ch->name)); strlcpy(ch->password, password ? password : "", sizeof (ch->password)); - LIST_INIT(&ch->users); - return ch; } @@ -56,7 +56,7 @@ user->modes = modes; strlcpy(user->nickname, nickname, sizeof (user->nickname)); - LIST_INSERT_HEAD(&ch->users, user, link); + LL_PREPEND(ch->users, user); } struct irc_channel_user * @@ -64,7 +64,7 @@ { struct irc_channel_user *u; - LIST_FOREACH(u, &ch->users, link) + LL_FOREACH(ch->users, u) if (strcmp(u->nickname, nickname) == 0) return u; @@ -78,9 +78,10 @@ struct irc_channel_user *user, *tmp; - LIST_FOREACH_SAFE(user, &ch->users, link, tmp) + LL_FOREACH_SAFE(ch->users, user, tmp) free(user); - LIST_INIT(&ch->users); + + ch->users = NULL; } void @@ -92,7 +93,7 @@ struct irc_channel_user *user; if ((user = irc_channel_get(ch, nick))) { - LIST_REMOVE(user, link); + LL_DELETE(ch->users, user); free(user); } }
--- a/lib/irccd/channel.h Mon Jul 12 21:11:53 2021 +0200 +++ b/lib/irccd/channel.h Mon Jul 12 21:20:31 2021 +0200 @@ -19,7 +19,6 @@ #ifndef IRCCD_CHANNEL_H #define IRCCD_CHANNEL_H -#include <sys/queue.h> #include <stddef.h> #include "limits.h" @@ -31,19 +30,17 @@ struct irc_channel_user { char nickname[IRC_NICKNAME_LEN]; int modes; - LIST_ENTRY(irc_channel_user) link; + struct irc_channel_user *next; }; struct irc_channel { char name[IRC_CHANNEL_LEN]; char password[IRC_PASSWORD_LEN]; int joined; - LIST_HEAD(, irc_channel_user) users; - LIST_ENTRY(irc_channel) link; + struct irc_channel_user *users; + struct irc_channel *next; }; -LIST_HEAD(irc_channel_list, irc_channel); - struct irc_channel * irc_channel_new(const char *, const char *, int);
--- a/lib/irccd/server.c Mon Jul 12 21:11:53 2021 +0200 +++ b/lib/irccd/server.c Mon Jul 12 21:20:31 2021 +0200 @@ -24,6 +24,8 @@ #include <stdlib.h> #include <string.h> +#include <utlist.h> + #include "config.h" #if defined(IRCCD_WITH_SSL) @@ -45,7 +47,7 @@ { struct irc_channel *c, *tmp; - LIST_FOREACH_SAFE(c, &s->channels, link, tmp) { + LL_FOREACH_SAFE(s->channels, c, tmp) { if (free) irc_channel_finish(c); else @@ -53,7 +55,7 @@ } if (free) - LIST_INIT(&s->channels); + s->channels = NULL; } static inline void @@ -94,16 +96,15 @@ if (password) strlcpy(ch->password, password, sizeof (ch->password)); - LIST_INIT(&ch->users); - LIST_INSERT_HEAD(&s->channels, ch, link); + LL_PREPEND(s->channels, ch); return ch; } static void -remove_channel(struct irc_channel *ch) +remove_channel(struct irc_server *s, struct irc_channel *ch) { - LIST_REMOVE(ch, link); + LL_DELETE(s->channels, ch); irc_channel_finish(ch); } @@ -198,7 +199,7 @@ struct irc_channel *ch; /* Now join all channels that were requested. */ - LIST_FOREACH(ch, &s->channels, link) + LL_FOREACH(s->channels, ch) irc_server_join(s, ch->name, ch->password); s->state = IRC_SERVER_STATE_CONNECTED; @@ -403,7 +404,7 @@ ch = add_channel(s, ev->part.channel, NULL, 1); if (is_self(s, ev->part.origin)) { - remove_channel(ch); + remove_channel(s, ch); irc_log_info("server %s: leaving channel %s", s->name, ev->part.channel); } else irc_channel_remove(ch, ev->part.origin); @@ -534,14 +535,14 @@ if (!(fp = open_memstream(&ev->names.names, &length))) return; - LIST_FOREACH(u, &ch->users, link) { + LL_FOREACH(ch->users, u) { for (size_t i = 0; i < IRC_UTIL_SIZE(s->params.prefixes); ++i) if (u->modes & (1 << i)) fprintf(fp, "%c", s->params.prefixes[i].symbol); fprintf(fp, "%s", u->nickname); - if (LIST_NEXT(u, link)) + if (u->next) fputc(' ', fp); } @@ -727,7 +728,6 @@ /* Server itself. */ strlcpy(s->name, name, sizeof (s->name)); - LIST_INIT(&s->channels); /* Default options. */ strlcpy(s->prefix, "!", sizeof (s->prefix)); @@ -854,7 +854,7 @@ struct irc_channel *ch; - LIST_FOREACH(ch, &s->channels, link) + LL_FOREACH(s->channels, ch) if (strcmp(ch->name, name) == 0) return ch;
--- a/lib/irccd/server.h Mon Jul 12 21:11:53 2021 +0200 +++ b/lib/irccd/server.h Mon Jul 12 21:20:31 2021 +0200 @@ -90,7 +90,7 @@ struct irc_server_params params; enum irc_server_state state; enum irc_server_flags flags; - struct irc_channel_list channels; + struct irc_channel *channels; struct irc_event_whois bufwhois; struct irc_conn *conn; size_t refc;
--- a/tests/test-channel.c Mon Jul 12 21:11:53 2021 +0200 +++ b/tests/test-channel.c Mon Jul 12 21:20:31 2021 +0200 @@ -33,31 +33,31 @@ GREATEST_ASSERT(ch->joined); irc_channel_add(ch, "markand", 1); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); irc_channel_add(ch, "markand", 2); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); irc_channel_add(ch, "jean", 4); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(4, user->modes); GREATEST_ASSERT_STR_EQ("jean", user->nickname); - user = LIST_NEXT(user, link); + user = user->next; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); irc_channel_add(ch, "zoe", 0); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(0, user->modes); GREATEST_ASSERT_STR_EQ("zoe", user->nickname); - user = LIST_NEXT(user, link); + user = user->next; GREATEST_ASSERT_EQ(4, user->modes); GREATEST_ASSERT_STR_EQ("jean", user->nickname); - user = LIST_NEXT(user, link); + user = user->next; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); @@ -79,20 +79,20 @@ irc_channel_add(ch, "zoe", 0); irc_channel_remove(ch, "jean"); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(0, user->modes); GREATEST_ASSERT_STR_EQ("zoe", user->nickname); - user = LIST_NEXT(user, link); + user = user->next; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); irc_channel_remove(ch, "zoe"); - user = LIST_FIRST(&ch->users); + user = ch->users; GREATEST_ASSERT_EQ(1, user->modes); GREATEST_ASSERT_STR_EQ("markand", user->nickname); irc_channel_remove(ch, "markand"); - GREATEST_ASSERT(!LIST_FIRST(&ch->users)); + GREATEST_ASSERT(!ch->users); irc_channel_finish(ch);
--- a/tests/test-plugin-tictactoe.c Mon Jul 12 21:11:53 2021 +0200 +++ b/tests/test-plugin-tictactoe.c Mon Jul 12 21:20:31 2021 +0200 @@ -79,8 +79,8 @@ /* We need tw players on a channel to play the game. */ irc_server_join(server, "#tictactoe", NULL); - irc_channel_add(LIST_FIRST(&server->channels), "a", 0); - irc_channel_add(LIST_FIRST(&server->channels), "b", 0); + irc_channel_add(server->channels, "a", 0); + irc_channel_add(server->channels, "b", 0); /* Fake server connected to send data. */ server->state = IRC_SERVER_STATE_CONNECTED;