From d42ef8ed13dc4d354afd7cc0ee8f7f2a93b0b334 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Wed, 7 Dec 2016 13:03:54 +0200 Subject: [PATCH] Combine and rename session statement functions There was no real need to have two separate functions for getting the stored buffer and the target server. Combining them into one allows it to be handled in a nicer way. --- include/maxscale/session.h | 15 ++++----------- server/core/session.c | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/include/maxscale/session.h b/include/maxscale/session.h index 77ab61b89..b2acc5797 100644 --- a/include/maxscale/session.h +++ b/include/maxscale/session.h @@ -395,18 +395,11 @@ bool session_store_stmt(SESSION *session, GWBUF *buf, const struct server *serve * The value returned by this call must be freed by the caller with gwbuf_free(). * * @param session Session with a stored statement - * @return Stored statement or NULL if no statement was stored + * @param buffer Pointer where the buffer is stored + * @param target Pointer where target server is stored + * @return True if a statement was stored */ -GWBUF* session_fetch_stmt(SESSION *session); - -/** - * Fetch the stored target - * - * @param session Session whose target is fetched - * @return The server where the statement is executed or NULL if no statement is - * stored - */ -const struct server* session_fetch_stmt_target(const SESSION *session); +bool session_take_stmt(SESSION *session, GWBUF **buffer, const struct server **target); /** * Clear the stored statement diff --git a/server/core/session.c b/server/core/session.c index 15810733b..5d47889fd 100644 --- a/server/core/session.c +++ b/server/core/session.c @@ -964,16 +964,20 @@ bool session_store_stmt(SESSION *session, GWBUF *buf, const SERVER *server) return rval; } -GWBUF *session_fetch_stmt(SESSION *session) +bool session_take_stmt(SESSION *session, GWBUF **buffer, const SERVER **target) { - GWBUF *rval = session->stmt.buffer; - session->stmt.buffer = NULL; - return rval; -} + bool rval = false; -const SERVER* session_fetch_stmt_target(const SESSION *session) -{ - return session->stmt.target; + if (session->stmt.buffer && session->stmt.target) + { + *buffer = session->stmt.buffer; + *target = session->stmt.target; + session->stmt.buffer = NULL; + session->stmt.target = NULL; + rval = true; + } + + return rval; } void session_clear_stmt(SESSION *session)