about summary refs log tree commit diff
path: root/bounce.h
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-11-14 11:24:55 -0500
committerJune McEnroe <june@causal.agency>2020-11-14 11:24:55 -0500
commit7229eee4b507ab14f7553a14cba4f009a716bcde (patch)
tree8e0aaf0833a58e0e50e19e8260d08cb4676b7a15 /bounce.h
parentWait for POLLIN to do client tls_handshake (diff)
downloadpounce-7229eee4b507ab14f7553a14cba4f009a716bcde.tar.gz
pounce-7229eee4b507ab14f7553a14cba4f009a716bcde.zip
Make struct Client public
Diffstat (limited to 'bounce.h')
-rw-r--r--bounce.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/bounce.h b/bounce.h
index 6b376ae..a6ad31f 100644
--- a/bounce.h
+++ b/bounce.h
@@ -184,12 +184,28 @@ void serverEnqueue(const char *format, ...)
 	__attribute__((format(printf, 1, 2)));
 void serverDequeue(void);
 
+enum Need {
+	BIT(NeedHandshake),
+	BIT(NeedNick),
+	BIT(NeedUser),
+	BIT(NeedPass),
+	BIT(NeedCapEnd),
+};
+struct Client {
+	bool error;
+	struct tls *tls;
+	enum Need need;
+	enum Cap caps;
+	size_t consumer;
+	size_t setPos;
+	char buf[MessageCap];
+	size_t len;
+};
 extern enum Cap clientCaps;
 extern char *clientPass;
 extern char *clientAway;
 struct Client *clientAlloc(struct tls *tls);
 void clientFree(struct Client *client);
-bool clientError(const struct Client *client);
 void clientRecv(struct Client *client);
 void clientSend(struct Client *client, const char *ptr, size_t len);
 void clientFormat(struct Client *client, const char *format, ...)