MXS-1725 Use session_set_response() in Cache
- session_set_response() made const correct - set_response() function added to mxs::FilterSession; calls session_set_response(). - Cache uses set_response() for delivering the cache result to the client.
This commit is contained in:
parent
9fd64cf7ba
commit
c08fe079bf
@ -157,6 +157,18 @@ public:
|
||||
protected:
|
||||
FilterSession(MXS_SESSION* pSession);
|
||||
|
||||
/**
|
||||
* To be called by a filter that short-circuits the request processing.
|
||||
* If this function is called (in routeQuery), the filter must return
|
||||
* without passing the request further.
|
||||
*
|
||||
* @param pResponse The response to be sent to the client.
|
||||
*/
|
||||
void set_response(GWBUF* pResponse) const
|
||||
{
|
||||
session_set_response(m_pSession, &m_up.m_data, pResponse);
|
||||
}
|
||||
|
||||
protected:
|
||||
MXS_SESSION* m_pSession; /*< The MXS_SESSION this filter session is associated with. */
|
||||
Downstream m_down; /*< The downstream component. */
|
||||
@ -362,5 +374,4 @@ MXS_FILTER_OBJECT Filter<FilterType, FilterSessionType>::s_object =
|
||||
&Filter<FilterType, FilterSessionType>::destroyInstance,
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ typedef struct session
|
||||
* @param up The filter that should receive the response.
|
||||
* @param buffer The response.
|
||||
*/
|
||||
void session_set_response(MXS_SESSION *session, MXS_UPSTREAM *up, GWBUF *buffer);
|
||||
void session_set_response(MXS_SESSION *session, const MXS_UPSTREAM *up, GWBUF *buffer);
|
||||
|
||||
/**
|
||||
* Function to be used by protocol module for routing incoming data
|
||||
|
@ -1229,7 +1229,7 @@ bool session_remove_variable(MXS_SESSION* session,
|
||||
return removed;
|
||||
}
|
||||
|
||||
void session_set_response(MXS_SESSION *session, MXS_UPSTREAM *up, GWBUF *buffer)
|
||||
void session_set_response(MXS_SESSION *session, const MXS_UPSTREAM *up, GWBUF *buffer)
|
||||
{
|
||||
// Valid arguments.
|
||||
ss_dassert(session && up && buffer);
|
||||
|
@ -1128,13 +1128,11 @@ CacheFilterSession::routing_action_t CacheFilterSession::route_SELECT(cache_acti
|
||||
{
|
||||
MXS_NOTICE("Found in cache.");
|
||||
}
|
||||
|
||||
m_state = CACHE_EXPECTING_NOTHING;
|
||||
gwbuf_free(pPacket);
|
||||
DCB *dcb = m_pSession->client_dcb;
|
||||
|
||||
// TODO: This is not ok. Any filters before this filter, will not
|
||||
// TODO: see this data.
|
||||
dcb->func.write(dcb, pResponse);
|
||||
set_response(pResponse);
|
||||
}
|
||||
}
|
||||
else if (should_populate(cache_action))
|
||||
|
Loading…
x
Reference in New Issue
Block a user