From 00b8f7c60b8ffa735b1744dc916dec9e5b4388d1 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Tue, 14 May 2019 18:02:23 +0200 Subject: [PATCH] MINOR: h1: Use BUG_ON() to enforce rules in subscribe/unsubscribe. It is not legal to subscribe if we're already subscribed, or to unsubscribe if we did not subscribe, so instead of trying to handle those cases, just assert that it's ok using the new BUG_ON() macro. --- src/mux_h1.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index e3f104f49..dfe4d3f66 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -2178,17 +2178,15 @@ static int h1_unsubscribe(struct conn_stream *cs, int event_type, void *param) if (event_type & SUB_RETRY_RECV) { sw = param; - if (h1s->recv_wait == sw) { - sw->events &= ~SUB_RETRY_RECV; - h1s->recv_wait = NULL; - } + BUG_ON(h1s->recv_wait != sw); + sw->events &= ~SUB_RETRY_RECV; + h1s->recv_wait = NULL; } if (event_type & SUB_RETRY_SEND) { sw = param; - if (h1s->send_wait == sw) { - sw->events &= ~SUB_RETRY_SEND; - h1s->send_wait = NULL; - } + BUG_ON(h1s->send_wait != sw); + sw->events &= ~SUB_RETRY_SEND; + h1s->send_wait = NULL; } return 0; } @@ -2205,17 +2203,15 @@ static int h1_subscribe(struct conn_stream *cs, int event_type, void *param) switch (event_type) { case SUB_RETRY_RECV: sw = param; - if (!(sw->events & SUB_RETRY_RECV)) { - sw->events |= SUB_RETRY_RECV; - h1s->recv_wait = sw; - } + BUG_ON(h1s->recv_wait != NULL || (sw->events & SUB_RETRY_RECV)); + sw->events |= SUB_RETRY_RECV; + h1s->recv_wait = sw; return 0; case SUB_RETRY_SEND: sw = param; - if (!(sw->events & SUB_RETRY_SEND)) { - sw->events |= SUB_RETRY_SEND; - h1s->send_wait = sw; - } + BUG_ON(h1s->send_wait != NULL || (sw->events & SUB_RETRY_SEND)); + sw->events |= SUB_RETRY_SEND; + h1s->send_wait = sw; return 0; default: break;