diff options
author | sandmann <sandmann> | 2007-01-15 04:39:55 +0000 |
---|---|---|
committer | sandmann <sandmann> | 2007-01-15 04:39:55 +0000 |
commit | 9bd1d808e6677a0a4781a3b59816955fa1eedaa4 (patch) | |
tree | 3e56577fd3fcde74a78b434632fa3c82e9b12265 /src | |
parent | e880f18e36583e1ed3a67880666626c074bbeef8 (diff) |
some cleanup
Diffstat (limited to 'src')
-rw-r--r-- | src/lacconnection.c | 2 | ||||
-rw-r--r-- | src/lacdns-messages.c | 2 | ||||
-rw-r--r-- | src/lachttp.c | 64 |
3 files changed, 24 insertions, 44 deletions
diff --git a/src/lacconnection.c b/src/lacconnection.c index bc56e7b..370c9eb 100644 --- a/src/lacconnection.c +++ b/src/lacconnection.c @@ -95,7 +95,7 @@ static void event_free (LacConnectionEvent *event) { if (event->type == LAC_CONNECTION_EVENT_READ) - g_free ((gchar *)event->read.data); + lac_byte_queue_free (event->read.byte_queue, TRUE); else if (event->type == LAC_CONNECTION_EVENT_ERROR) g_error_free ((GError *)event->error.err); diff --git a/src/lacdns-messages.c b/src/lacdns-messages.c index 4baa2d1..88ddcb7 100644 --- a/src/lacdns-messages.c +++ b/src/lacdns-messages.c @@ -176,7 +176,7 @@ set_bit_range (gchar c, int i; guchar mask = 1; - + for (i = 0; i < (from_bit - to_bit + 1); ++i) { mask <<= 1; diff --git a/src/lachttp.c b/src/lachttp.c index c4cf316..4175bba 100644 --- a/src/lachttp.c +++ b/src/lachttp.c @@ -154,9 +154,8 @@ static LacHttpRequest *request_alloc (const LacUri *ur static void request_destroy (LacHttpRequest *request); static gchar * request_serialize (LacHttpRequest *request, const gchar *connection); -static gssize request_parse_response (LacHttpRequest *request, - guint len, - const gchar *data); +static gboolean request_parse_response (LacHttpRequest *request, + LacByteQueue *bytes); static void request_parse_end_of_file (LacHttpRequest *request); static gboolean request_done_parsing (LacHttpRequest *request); static gboolean request_done_parsing_headers (LacHttpRequest *request); @@ -1031,12 +1030,11 @@ request_parse_close_delimited_body (LacHttpRequest *request) return NEED_MORE_DATA; } -/* return number of bytes used, or -1 on error +/* Return FALSE on parse error */ -static gssize +static gboolean request_parse_response (LacHttpRequest *request, - gsize len, - const gchar *data) + LacByteQueue *bytes) { ParseResult result; @@ -1046,30 +1044,13 @@ request_parse_response (LacHttpRequest *request, printf ("%c", data[i]); g_print ("received: %d\n", len); #endif -#if 0 - g_print ("before: (%d bytes) %s\n", lac_byte_queue_get_length (request->unparsed), g_strndup (lac_byte_queue_peek_data (request->unparsed, NULL), 128)); - - g_print ("appending %d bytes %s\n", len, g_strndup (data, 128)); -#endif - lac_byte_queue_append (request->unparsed, data, len); - -#if 0 - g_print ("after: (%d bytes) %s\n", lac_byte_queue_get_length (request->unparsed), g_strndup (lac_byte_queue_peek_data (request->unparsed, NULL), 128)); -#endif + lac_byte_queue_transfer_data (request->unparsed, bytes); while (lac_byte_queue_get_length (request->unparsed) > 0) { -#if 0 - g_print ("unparsed: %d\n", lac_byte_queue_get_length (request->unparsed)); -#endif - result = ERROR; -#if 0 - g_print ("new state: %d\n", request->parser_state); -#endif - switch (request->parser_state) { case INITIAL: @@ -1083,10 +1064,6 @@ request_parse_response (LacHttpRequest *request, case EXPECT_HEADER: result = request_parse_header (request); -#if 0 - if (result == ERROR) - g_print ("could not get header\n"); -#endif break; case EXPECT_CHUNK_DATA: @@ -1121,19 +1098,22 @@ request_parse_response (LacHttpRequest *request, * request_parse_response() causes parsing to finish, * then this will be detected by the same invocation. */ +#if 0 g_assert (lac_byte_queue_get_length (request->unparsed) < len); - - return len - lac_byte_queue_get_length (request->unparsed); +#endif + lac_byte_queue_transfer_data (bytes, request->unparsed); + + return TRUE; break; } if (result == NEED_MORE_DATA) - return len; + return TRUE; else if (result == ERROR) - return -1; + return FALSE; } - return len; + return TRUE; } static void @@ -1932,7 +1912,7 @@ http_host_cancel_request (HttpHost *host, LacHttpRequest *request) else { /* request should be in the unsent queue */ - lac_g_queue_remove (host->unsent, request); + g_queue_remove (host->unsent, request); lac_http_request_unref (request); } } @@ -2203,6 +2183,7 @@ http_transport_all_requests_failed (HttpTransport *transport, const GError *err) } } +#if 0 static void write_log_file (HttpTransport * transport, guint len, @@ -2237,6 +2218,7 @@ write_log_file (HttpTransport * transport, fprintf (f, "used: %d\n", used); fprintf (f, "length: %d\n", len); } +#endif static void http_transport_handle_read (HttpTransport *transport, @@ -2261,10 +2243,6 @@ http_transport_handle_read (HttpTransport *transport, while (lac_byte_queue_get_length (read_event->byte_queue) > 0) { - gssize used; - gsize len; - const gchar *data = lac_byte_queue_peek (read_event->byte_queue, &len); - if (!transport->current) { if (g_queue_is_empty (transport->in_progress)) @@ -2282,11 +2260,15 @@ http_transport_handle_read (HttpTransport *transport, g_assert (transport->current); - used = request_parse_response (transport->current, len, data); + if (!request_parse_response (transport->current, read_event->byte_queue)) + +#if 0 + lac_byte_queue_delete_head (read_event->byte_queue, used); write_log_file (transport, len, used, read_event); if (used < 0) +#endif { GError *err = g_error_new (LAC_HTTP_ERROR, LAC_HTTP_ERROR_MALFORMED_RESPONSE, @@ -2403,8 +2385,6 @@ http_transport_handle_read (HttpTransport *transport, lac_connection_close (transport->connection); } } - - lac_byte_queue_delete_head (read_event->byte_queue, used); } } |