From: Aurelien DARRAGON Date: Wed, 24 Jul 2024 15:42:31 +0000 (+0200) Subject: MINOR: sink: add some comments about sft->appctx usage in applet handlers X-Git-Tag: v3.1-dev4~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b40d804;p=thirdparty%2Fhaproxy.git MINOR: sink: add some comments about sft->appctx usage in applet handlers There seem to be an ambiguity in the code where sft->appctx would differ from the appctx that was assigned to it upon appctx creation. In practise, it doesn't seem this could be happening. Adding a few notes to come back to this later and try to see if we can remove this ambiguity. --- diff --git a/src/sink.c b/src/sink.c index 05ed71807a..18c519a7d3 100644 --- a/src/sink.c +++ b/src/sink.c @@ -375,6 +375,7 @@ static void _sink_forward_io_handler(struct appctx *appctx, HA_SPIN_LOCK(SFT_LOCK, &sft->lock); if (appctx != sft->appctx) { + /* FIXME: is this even supposed to happen? */ HA_SPIN_UNLOCK(SFT_LOCK, &sft->lock); goto close; } @@ -470,6 +471,8 @@ static int sink_forward_session_init(struct appctx *appctx) s->uniq_id = 0; applet_expect_no_data(appctx); + + /* FIXME: redundant? was already assigned in process_sink_forward() */ sft->appctx = appctx; HA_SPIN_UNLOCK(SFT_LOCK, &sft->lock); @@ -493,6 +496,7 @@ static void sink_forward_session_release(struct appctx *appctx) HA_SPIN_LOCK(SFT_LOCK, &sft->lock); if (sft->appctx == appctx) __sink_forward_session_deinit(sft); + /* FIXME: is 'sft->appctx != appctx' even supposed to happen? */ HA_SPIN_UNLOCK(SFT_LOCK, &sft->lock); }