diff options
Diffstat (limited to 'app-admin/gkrellm/files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch')
-rw-r--r-- | app-admin/gkrellm/files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/app-admin/gkrellm/files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch b/app-admin/gkrellm/files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch deleted file mode 100644 index b6843b64e923..000000000000 --- a/app-admin/gkrellm/files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 285adc8acd22892f86435edd84bf9b22c915b349 Mon Sep 17 00:00:00 2001 -From: Bill Wilson -Date: Wed, 5 Nov 2014 17:46:37 -0600 -Subject: Avoid possible busy loop in read_server_setup() - -A patch from Joe Garcia. A ssh tunnel can be up but possibly not -connected to anything in which case gkrellm_getline() can return 0. -This patch prevents a busy loop by limiting the 0 return retries. - -diff --git a/src/client.c b/src/client.c -index e7c5116..0eb2924 100644 ---- a/src/client.c -+++ b/src/client.c -@@ -1712,8 +1712,10 @@ process_server_line(KeyTable *table, gint table_size, gchar *line) - static gboolean - read_server_setup(gint fd) - { -- gchar buf[4097]; /* TODO: Use dynamic receive buffer */ -- gint table_size; -+ gchar buf[4097]; /* TODO: Use dynamic receive buffer */ -+ gint table_size; -+ gint rs; -+ gint retries = 10; - - gkrellm_debug(DEBUG_CLIENT, "read_server_setup()\n"); - -@@ -1726,13 +1728,18 @@ read_server_setup(gint fd) - - gkrellm_free_glist_and_data(&client_plugin_setup_line_list); - -- gint rs; -- - while (1) - { - rs = gkrellm_getline(fd, buf, sizeof(buf)); -- if (rs < 0) -- return FALSE; -+ if (rs < 0) -+ return FALSE; -+ if (rs == 0) -+ { -+ if (--retries) -+ usleep(10000); -+ else -+ return FALSE; -+ } - if (!strcmp(buf, "</gkrellmd_setup>")) - break; - process_server_line(&setup_table[0], table_size, buf); -@@ -1751,6 +1758,12 @@ read_server_setup(gint fd) - rs = gkrellm_getline(fd, buf, sizeof(buf)); - if (rs < 0) - return FALSE; -+ if (rs==0){ -+ if(--retries) -+ usleep(10000); -+ else -+ return FALSE; -+ } - if (!strcmp(buf, "</initial_update>")) - break; - process_server_line(&update_table[0], table_size, buf); --- -cgit v0.10.2-6-g49f6 - |