diff --git a/include/haproxy/http_client.h b/include/haproxy/http_client.h index c0d544781..097997eb5 100644 --- a/include/haproxy/http_client.h +++ b/include/haproxy/http_client.h @@ -24,4 +24,11 @@ static inline int httpclient_ended(struct httpclient *hc) return !!(hc->flags & HTTPCLIENT_FS_ENDED); } +/* Return 1 if the httpclient started */ +static inline int httpclient_started(struct httpclient *hc) +{ + + return !!(hc->flags & HTTPCLIENT_FS_STARTED); +} + #endif /* ! _HAPROXY_HTTCLIENT_H */ diff --git a/src/http_client.c b/src/http_client.c index 1eb3cd18a..d0a100531 100644 --- a/src/http_client.c +++ b/src/http_client.c @@ -438,8 +438,8 @@ void httpclient_destroy(struct httpclient *hc) if (!hc) return; - /* we should never destroy a client which was not stopped */ - BUG_ON(!httpclient_ended(hc)); + /* we should never destroy a client which was started but not stopped */ + BUG_ON(httpclient_started(hc) && !httpclient_ended(hc)); /* request */ istfree(&hc->req.url);