Commit 7c887af1 authored by Max Kellermann's avatar Max Kellermann

output/httpd: add assertions

parent b7f435b5
...@@ -143,6 +143,8 @@ httpd_client_unref_page(gpointer data, G_GNUC_UNUSED gpointer user_data) ...@@ -143,6 +143,8 @@ httpd_client_unref_page(gpointer data, G_GNUC_UNUSED gpointer user_data)
void void
httpd_client_free(struct httpd_client *client) httpd_client_free(struct httpd_client *client)
{ {
assert(client != NULL);
if (client->state == RESPONSE) { if (client->state == RESPONSE) {
if (client->write_source_id != 0) if (client->write_source_id != 0)
g_source_remove(client->write_source_id); g_source_remove(client->write_source_id);
...@@ -169,6 +171,8 @@ httpd_client_free(struct httpd_client *client) ...@@ -169,6 +171,8 @@ httpd_client_free(struct httpd_client *client)
static void static void
httpd_client_close(struct httpd_client *client) httpd_client_close(struct httpd_client *client)
{ {
assert(client != NULL);
httpd_output_remove_client(client->httpd, client); httpd_output_remove_client(client->httpd, client);
httpd_client_free(client); httpd_client_free(client);
} }
...@@ -179,6 +183,9 @@ httpd_client_close(struct httpd_client *client) ...@@ -179,6 +183,9 @@ httpd_client_close(struct httpd_client *client)
static void static void
httpd_client_begin_response(struct httpd_client *client) httpd_client_begin_response(struct httpd_client *client)
{ {
assert(client != NULL);
assert(client->state != RESPONSE);
client->state = RESPONSE; client->state = RESPONSE;
client->write_source_id = 0; client->write_source_id = 0;
client->pages = g_queue_new(); client->pages = g_queue_new();
...@@ -239,6 +246,9 @@ httpd_client_handle_line(struct httpd_client *client, const char *line) ...@@ -239,6 +246,9 @@ httpd_client_handle_line(struct httpd_client *client, const char *line)
static char * static char *
httpd_client_read_line(struct httpd_client *client) httpd_client_read_line(struct httpd_client *client)
{ {
assert(client != NULL);
assert(client->state != RESPONSE);
const char *p, *newline; const char *p, *newline;
size_t length; size_t length;
char *line; char *line;
...@@ -271,6 +281,7 @@ httpd_client_send_response(struct httpd_client *client) ...@@ -271,6 +281,7 @@ httpd_client_send_response(struct httpd_client *client)
GIOStatus status; GIOStatus status;
gsize bytes_written; gsize bytes_written;
assert(client != NULL);
assert(client->state == RESPONSE); assert(client->state == RESPONSE);
if (!client->metadata_requested) { if (!client->metadata_requested) {
...@@ -334,14 +345,19 @@ httpd_client_send_response(struct httpd_client *client) ...@@ -334,14 +345,19 @@ httpd_client_send_response(struct httpd_client *client)
static bool static bool
httpd_client_received(struct httpd_client *client) httpd_client_received(struct httpd_client *client)
{ {
assert(client != NULL);
assert(client->state != RESPONSE);
char *line; char *line;
bool success; bool success;
while ((line = httpd_client_read_line(client)) != NULL) { while ((line = httpd_client_read_line(client)) != NULL) {
success = httpd_client_handle_line(client, line); success = httpd_client_handle_line(client, line);
g_free(line); g_free(line);
if (!success) if (!success) {
assert(client->state != RESPONSE);
return false; return false;
}
if (client->state == RESPONSE) { if (client->state == RESPONSE) {
if (!fifo_buffer_is_empty(client->input)) { if (!fifo_buffer_is_empty(client->input)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment