diff options
author | June McEnroe <june@causal.agency> | 2020-11-14 11:24:55 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-11-14 11:24:55 -0500 |
commit | 7229eee4b507ab14f7553a14cba4f009a716bcde (patch) | |
tree | 8e0aaf0833a58e0e50e19e8260d08cb4676b7a15 | |
parent | Wait for POLLIN to do client tls_handshake (diff) | |
download | pounce-7229eee4b507ab14f7553a14cba4f009a716bcde.tar.gz pounce-7229eee4b507ab14f7553a14cba4f009a716bcde.zip |
Make struct Client public
-rw-r--r-- | bounce.c | 2 | ||||
-rw-r--r-- | bounce.h | 18 | ||||
-rw-r--r-- | client.c | 23 |
3 files changed, 18 insertions, 25 deletions
diff --git a/bounce.c b/bounce.c index 5b5e524..0354bf5 100644 --- a/bounce.c +++ b/bounce.c @@ -493,7 +493,7 @@ int main(int argc, char *argv[]) { struct Client *client = event.clients[i]; if (revents & POLLOUT) clientConsume(client); if (revents & POLLIN) clientRecv(client); - if (clientError(client) || revents & (POLLHUP | POLLERR)) { + if (client->error || revents & (POLLHUP | POLLERR)) { clientFree(client); eventRemove(i); } 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, ...) diff --git a/client.c b/client.c index 6f36539..4327a89 100644 --- a/client.c +++ b/client.c @@ -47,25 +47,6 @@ char *clientAway; static size_t active; -enum Need { - BIT(NeedHandshake), - BIT(NeedNick), - BIT(NeedUser), - BIT(NeedPass), - BIT(NeedCapEnd), -}; - -struct Client { - struct tls *tls; - enum Need need; - size_t consumer; - size_t setPos; - enum Cap caps; - char buf[MessageCap]; - size_t len; - bool error; -}; - struct Client *clientAlloc(struct tls *tls) { struct Client *client = calloc(1, sizeof(*client)); if (!client) err(EX_OSERR, "calloc"); @@ -100,10 +81,6 @@ void clientFree(struct Client *client) { free(client); } -bool clientError(const struct Client *client) { - return client->error; -} - void clientSend(struct Client *client, const char *ptr, size_t len) { if (verbose) fprintf(stderr, "\x1B[34m%.*s\x1B[m", (int)len, ptr); while (len) { |