about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-08-08 20:44:22 -0400
committerJune McEnroe <programble@gmail.com>2017-08-08 20:44:22 -0400
commit1f410444568f733e8044b6f60a53c704cfbc0c6f (patch)
tree2b8cfaf555629125c474963aa5d7ed3d25bd5544
parentReverse order of main loop (diff)
downloadtorus-1f410444568f733e8044b6f60a53c704cfbc0c6f.tar.gz
torus-1f410444568f733e8044b6f60a53c704cfbc0c6f.zip
Completely retry if a send fails during a broadcast
This fixes a bug where the saved next client to iterate through would
also get removed.

This can result in messages being sent multiple times to a client, but
that will have no negative effect.
-rwxr-xr-xserver.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/server.c b/server.c
index 64e4e18..2fcdff7 100755
--- a/server.c
+++ b/server.c
@@ -123,16 +123,15 @@ static bool clientSend(const struct Client *client, const struct ServerMessage *
 }
 
 static void clientCast(const struct Client *origin, const struct ServerMessage *msg) {
+retry:
     for (struct Client *client = clientHead; client; client = client->next) {
         if (client == origin) continue;
         if (client->tileX != origin->tileX) continue;
         if (client->tileY != origin->tileY) continue;
 
         if (!clientSend(client, msg)) {
-            struct Client *dead = client;
-            client = client->next;
-            clientRemove(dead);
-            if (!client) break;
+            clientRemove(client);
+            goto retry;
         }
     }
 }
3' class='logmsg'> And increase XTerm internalBorder. 2021-02-07Set urgency on bell in xtermJune McEnroe 2021-02-07Add bindings for brightness controlJune McEnroe Weirdly the Fn key doesn't change how the F row registers... I wonder if I can do something about that. 2021-02-07Set X key repeat rateJune McEnroe 2021-02-07Bump font size to 12June McEnroe 11 is what I use on macOS, but I feel like my eyes are working harder here. 2021-02-07Fully configure and rebind cwmJune McEnroe This is sort of a mix of trying to emulate macOS somewhat for my muscle memory and just rebinding some of the cwm defaults to use 4- rather than M-. 2021-02-07Add BintiJune McEnroe 2021-02-07Finish configuring xtermJune McEnroe 2021-02-06Enable tapping, reverse scroll, set scaling in wsconsctlJune McEnroe 2021-02-06Set root window to black on purple snowJune McEnroe 2021-02-06Add xmodmap configurationJune McEnroe 2021-02-06Add initial OpenBSD X configurationJune McEnroe cwm still needs a lot more rebinding, and I need to actually look at its other options. xterm definitely still needs some configuration, but I at least managed to get it to use a decent looking font. Very happy that OpenBSD includes Luxi Mono, which is what my usual font, Go Mono, is based on anyway. Still missing is xmodmap and such. 2021-02-06Add xterm output to schemeJune McEnroe