bbcombotest patch

Cade Robinson cade.robinson at gmail.com
Tue Mar 2 21:56:00 CET 2010


bbcombotest in 4.4.0 (probably 4.3.0 too) was failing for me with the
error:
Could not access hobbitd board, error 0

I found that line:
if ((hobbitdresult != BB_OK) || (board == NULL)) {
always evaled true due to board being set to NULL  at the start of the
function and then never being set again.

Also I didn't like that a yellow status didn't trip the combo test
color, so that is the last part.

So here is a patch:

Index: bbcombotest.c
===================================================================
--- bbcombotest.c       (revision 6223)
+++ bbcombotest.c       (working copy)
@@ -209,20 +209,16 @@
        int result = COL_CLEAR;
        char *pattern, *found, *colstr;

-       if (board == NULL) {
                sendreturn_t *sres = newsendreturnbuf(1, NULL);

                hobbitdresult = sendmessage("hobbitdboard
fields=hostname,testname,color", NULL, BBTALK_TIMEOUT, sres);
+    board = getsendreturnstr(sres, 1);
                if ((hobbitdresult != BB_OK) || (board == NULL)) {
                        board = "";
                        *errptr += sprintf(*errptr, "Could not access
hobbitd board, error %d\n", hobbitdresult);
                        return COL_CLEAR;
                }
-               else {
-                       board = getsendreturnstr(sres, 1);
-               }
                freesendreturnbuf(sres);
-       }

        pattern = (char *)malloc(1 + strlen(hostname) + 1 +
strlen(testname) + 1 + 1);
        sprintf(pattern, "\n%s|%s|", hostname, testname);
@@ -275,7 +271,7 @@
        }

        if (*color == -1) return -1;
-       else return ( (*color == COL_GREEN) || (*color == COL_YELLOW) ||
(*color == COL_CLEAR) );
+       else return ( (*color == COL_GREEN) || (*color == COL_CLEAR) );
 }







More information about the Xymon mailing list