MINOR: conn_stream: test the various ops functions before calling them
We currently call all ->shutr, ->chk_snd etc from ->ops unconditionally,
while the ->wake() call from data_cb is checked. Better check ops as
well for consistency, this will help get them merged.
diff --git a/include/haproxy/cs_utils.h b/include/haproxy/cs_utils.h
index ad8dba7..8534f10 100644
--- a/include/haproxy/cs_utils.h
+++ b/include/haproxy/cs_utils.h
@@ -275,13 +275,15 @@
/* Sends a shutr to the endpoint using the data layer */
static inline void cs_shutr(struct stconn *cs)
{
- cs->ops->shutr(cs);
+ if (likely(cs->ops->shutr))
+ cs->ops->shutr(cs);
}
/* Sends a shutw to the endpoint using the data layer */
static inline void cs_shutw(struct stconn *cs)
{
- cs->ops->shutw(cs);
+ if (likely(cs->ops->shutw))
+ cs->ops->shutw(cs);
}
/* This is to be used after making some room available in a channel. It will
@@ -302,13 +304,15 @@
return;
sc_ep_set(cs, SE_FL_RX_WAIT_EP);
- cs->ops->chk_rcv(cs);
+ if (likely(cs->ops->chk_rcv))
+ cs->ops->chk_rcv(cs);
}
/* Calls chk_snd on the endpoint using the data layer */
static inline void cs_chk_snd(struct stconn *cs)
{
- cs->ops->chk_snd(cs);
+ if (likely(cs->ops->chk_snd))
+ cs->ops->chk_snd(cs);
}
/* Combines both cs_update_rx() and cs_update_tx() at once */