From 9061967c31507bc1197485a0ed1708445761adea Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 1 Jan 2015 14:10:59 +0200 Subject: [PATCH] Added simple query success detection to tee filter. tee.c: If one query fails and the other succeeds the successful one is returned to the client. --- server/modules/filter/tee.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/server/modules/filter/tee.c b/server/modules/filter/tee.c index 6de9b3e44..ac2592491 100644 --- a/server/modules/filter/tee.c +++ b/server/modules/filter/tee.c @@ -831,12 +831,21 @@ clientReply (FILTER* instance, void *session, GWBUF *reply) } else { - gwbuf_free(reply); + if(*(unsigned char*)(reply->start + 4) != 0xff + && *(unsigned char*)(my_session->tee_replybuf->start + 4) == 0xff) + { + gwbuf_free(my_session->tee_replybuf); + my_session->tee_replybuf = reply; + } + else + { + gwbuf_free(reply); + } } if (my_session->branch_session == NULL || my_session->replies >= my_session->min_replies) - { + { rc = my_session->up.clientReply ( my_session->up.instance, my_session->up.session,