about summary refs log tree commit diff
path: root/state.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2023-07-16 21:23:33 -0400
committerJune McEnroe <june@causal.agency>2023-07-16 21:23:33 -0400
commita6c37817668f5b0e1d2cce3ee949470a0a440bfe (patch)
treef25fc1c5f8d98b3447f01faed185848c78f21d7a /state.c
parentFactor out caps pounce doesn't request from the server (diff)
downloadpounce-a6c37817668f5b0e1d2cce3ee949470a0a440bfe.tar.gz
pounce-a6c37817668f5b0e1d2cce3ee949470a0a440bfe.zip
Implement draft/read-marker
Diffstat (limited to '')
-rw-r--r--state.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/state.c b/state.c
index 924bb8f..a28b3ba 100644
--- a/state.c
+++ b/state.c
@@ -53,12 +53,6 @@ static void require(const struct Message *msg, bool origin, size_t len) {
 	}
 }
 
-static void set(char **field, const char *value) {
-	if (*field) free(*field);
-	*field = strdup(value);
-	if (!*field) err(EX_OSERR, "strdup");
-}
-
 // Maximum size of one AUTHENTICATE message.
 enum { AuthLen = 299 };
 static char plainBase64[BASE64_SIZE(AuthLen)];
@@ -90,6 +84,7 @@ static const enum Cap DontReq = 0
 	| CapConsumer
 	| CapPalaverApp
 	| CapPassive
+	| CapReadMarker
 	| CapSASL
 	| CapSTS
 	| CapUnsupported;
@@ -475,6 +470,9 @@ void stateSync(struct Client *client) {
 				clientOrigin, self.nick, chan->name, chan->topic
 			);
 		}
+		if (client->caps & CapReadMarker) {
+			clientGetMarker(client, chan->name);
+		}
 		if (stateNoNames) continue;
 		serverEnqueue("NAMES %s\r\n", chan->name);
 	}