From 597c1051c36a51bc730c9684a1a7a6d9535001cb Mon Sep 17 00:00:00 2001 From: keis Date: Wed, 5 Jan 2011 00:18:58 +0100 Subject: clear GError before reusing --- src/uzbl-core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 592a8dd..c5e9832 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -1771,13 +1771,16 @@ control_client_socket(GIOChannel *clientchan) { ret = g_io_channel_read_line(clientchan, &ctl_line, &len, NULL, &error); if (ret == G_IO_STATUS_ERROR) { g_warning ("Error reading: %s\n", error->message); + g_clear_error (&error); remove_socket_from_array(clientchan); g_io_channel_shutdown(clientchan, TRUE, &error); + g_clear_error (&error); return FALSE; } else if (ret == G_IO_STATUS_EOF) { remove_socket_from_array(clientchan); /* shutdown and remove channel watch from main loop */ g_io_channel_shutdown(clientchan, TRUE, &error); + g_clear_error (&error); return FALSE; } @@ -1788,11 +1791,12 @@ control_client_socket(GIOChannel *clientchan) { &len, &error); if (ret == G_IO_STATUS_ERROR) { g_warning ("Error writing: %s", error->message); + g_clear_error (&error); } g_io_channel_flush(clientchan, &error); + g_clear_error (&error); } - if (error) g_error_free (error); g_string_free(result, TRUE); g_free(ctl_line); return TRUE; -- cgit v1.2.3 From 55ce375945db478c563ed3e04dd2db86049ed20e Mon Sep 17 00:00:00 2001 From: keis Date: Wed, 5 Jan 2011 00:41:46 +0100 Subject: print the error message received --- src/uzbl-core.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/uzbl-core.c b/src/uzbl-core.c index c5e9832..c6813ea 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -1770,17 +1770,23 @@ control_client_socket(GIOChannel *clientchan) { ret = g_io_channel_read_line(clientchan, &ctl_line, &len, NULL, &error); if (ret == G_IO_STATUS_ERROR) { - g_warning ("Error reading: %s\n", error->message); - g_clear_error (&error); - remove_socket_from_array(clientchan); - g_io_channel_shutdown(clientchan, TRUE, &error); + g_warning ("Error reading: %s", error->message); g_clear_error (&error); + remove_socket_from_array (clientchan); + ret = g_io_channel_shutdown (clientchan, TRUE, &error); + if (ret == G_IO_STATUS_ERROR) { + g_warning ("Error closing: %s", error->message); + g_clear_error (&error); + } return FALSE; } else if (ret == G_IO_STATUS_EOF) { - remove_socket_from_array(clientchan); + remove_socket_from_array (clientchan); /* shutdown and remove channel watch from main loop */ - g_io_channel_shutdown(clientchan, TRUE, &error); - g_clear_error (&error); + ret = g_io_channel_shutdown (clientchan, TRUE, &error); + if (ret == G_IO_STATUS_ERROR) { + g_warning ("Error closing: %s", error->message); + g_clear_error (&error); + } return FALSE; } @@ -1793,8 +1799,10 @@ control_client_socket(GIOChannel *clientchan) { g_warning ("Error writing: %s", error->message); g_clear_error (&error); } - g_io_channel_flush(clientchan, &error); - g_clear_error (&error); + if (g_io_channel_flush(clientchan, &error) == G_IO_STATUS_ERROR) { + g_warning ("Error flushing: %s", error->message); + g_clear_error (&error); + } } g_string_free(result, TRUE); -- cgit v1.2.3 From f2f0b1b3cf6b9b6f0ac51d6a20a9b739b2d4c006 Mon Sep 17 00:00:00 2001 From: keis Date: Wed, 5 Jan 2011 02:19:40 +0100 Subject: unref IOChannel after shutdown --- src/uzbl-core.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/uzbl-core.c b/src/uzbl-core.c index c6813ea..c451f86 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -1692,13 +1692,12 @@ gboolean remove_socket_from_array(GIOChannel *chan) { gboolean ret = 0; - /* TODO: Do wee need to manually free the IO channel or is this - * happening implicitly on unref? - */ ret = g_ptr_array_remove_fast(uzbl.comm.connect_chan, chan); if(!ret) ret = g_ptr_array_remove_fast(uzbl.comm.client_chan, chan); + if(ret) + g_io_channel_unref (chan); return ret; } @@ -1772,17 +1771,17 @@ control_client_socket(GIOChannel *clientchan) { if (ret == G_IO_STATUS_ERROR) { g_warning ("Error reading: %s", error->message); g_clear_error (&error); - remove_socket_from_array (clientchan); ret = g_io_channel_shutdown (clientchan, TRUE, &error); + remove_socket_from_array (clientchan); if (ret == G_IO_STATUS_ERROR) { g_warning ("Error closing: %s", error->message); g_clear_error (&error); } return FALSE; } else if (ret == G_IO_STATUS_EOF) { - remove_socket_from_array (clientchan); /* shutdown and remove channel watch from main loop */ ret = g_io_channel_shutdown (clientchan, TRUE, &error); + remove_socket_from_array (clientchan); if (ret == G_IO_STATUS_ERROR) { g_warning ("Error closing: %s", error->message); g_clear_error (&error); -- cgit v1.2.3 From 2a53b3b14765af687312ebf36d19171189359b22 Mon Sep 17 00:00:00 2001 From: keis Date: Wed, 5 Jan 2011 02:27:35 +0100 Subject: gerror fix in send_event_sockets --- src/events.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/events.c b/src/events.c index baaf8f3..31a95d5 100644 --- a/src/events.c +++ b/src/events.c @@ -78,10 +78,15 @@ send_event_sockets(GPtrArray *sockets, GString *msg) { msg->str, msg->len, &len, &error); - if (ret == G_IO_STATUS_ERROR) + if (ret == G_IO_STATUS_ERROR) { g_warning ("Error sending event to socket: %s", error->message); - else - g_io_channel_flush(gio, &error); + g_clear_error (&error); + } else { + if (g_io_channel_flush(gio, &error) == G_IO_STATUS_ERROR) { + g_warning ("Error flushing: %s", error->message); + g_clear_error (&error); + } + } } } } -- cgit v1.2.3