summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2020-09-26 15:53:37 -0400
committerDrew DeVault <sir@cmpwn.com>2020-09-26 15:53:37 -0400
commite9641dbf1ec871d8ab367b4f4655278caeecf621 (patch)
tree4a232e7ae052887246f7790644e0fb30e69ec471 /src
parent6bc9c4deb90e8daa228d792b23a3e61b7bebdb78 (diff)
downloadgmnisrv-e9641dbf1ec871d8ab367b4f4655278caeecf621.tar.gz
gmnisrv-e9641dbf1ec871d8ab367b4f4655278caeecf621.tar.xz
gmnisrv-e9641dbf1ec871d8ab367b4f4655278caeecf621.zip
disconnect_client: free more client resources
Diffstat (limited to 'src')
-rw-r--r--src/server.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server.c b/src/server.c
index c818fbd..eb5f9f7 100644
--- a/src/server.c
+++ b/src/server.c
@@ -188,8 +188,15 @@ disconnect_client(struct gmnisrv_server *server, struct gmnisrv_client *client)
if (client->bio) {
BIO_free_all(client->bio);
}
+ if (client->ssl) {
+ SSL_free(client->ssl);
+ }
+ if (client->body) {
+ fclose(client->body);
+ }
close(client->sockfd);
free(client->meta);
+ free(client->path);
size_t index = (client - server->clients) / sizeof(struct gmnisrv_client);
memmove(client, &client[1], &server->clients[server->clientsz] - client);