MINOR: htx: Store start-line block's position instead of address of its payload

Nothing much to say. This change is just mandatory to consider 1xx informational
messages as part of a response.
diff --git a/src/cache.c b/src/cache.c
index 44355cd..7402e5e 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -915,7 +915,7 @@
 
 		/* Set the start-line offset */
 		if (type == HTX_BLK_RES_SL)
-			htx->sl_off = blk->addr;
+			htx->sl_pos = htx_get_blk_pos(htx, blk);
 
 		/* Copy info and data */
 		blk->info = info;
diff --git a/src/http_htx.c b/src/http_htx.c
index 471f1ab..e6332f7 100644
--- a/src/http_htx.c
+++ b/src/http_htx.c
@@ -40,7 +40,7 @@
 
 		if (type == HTX_BLK_REQ_SL || type == HTX_BLK_RES_SL) {
 			sl = htx_get_blk_ptr(htx, blk);
-			htx->sl_off = blk->addr;
+			htx->sl_pos = pos;
 			break;
 		}
 
@@ -194,7 +194,7 @@
 		struct htx_blk *blk = htx_get_blk(htx, pos);
 		enum htx_blk_type type = htx_get_blk_type(blk);
 
-		if (htx->sl_off == blk->addr) {
+		if (htx->sl_pos == pos) {
 			if (!htx_replace_stline(htx, blk, p1, p2, p3))
 				return 0;
 			return 1;
diff --git a/src/htx.c b/src/htx.c
index 9f75f7a..bdde868 100644
--- a/src/htx.c
+++ b/src/htx.c
@@ -28,7 +28,7 @@
 	struct htx_blk *newblk, *oldblk;
 	uint32_t new, old, blkpos;
 	uint32_t addr, blksz;
-	int32_t sl_off = -1;
+	int32_t sl_pos = -1;
 
 	if (!htx->used)
 		return NULL;
@@ -50,9 +50,9 @@
 		newblk->info = oldblk->info;
 		blksz = htx_get_blksz(oldblk);
 
-		/* update the start-line offset */
-		if (htx->sl_off == oldblk->addr)
-			sl_off = addr;
+		/* update the start-line position */
+		if (htx->sl_pos == old)
+			sl_pos = new;
 
 		/* if <blk> is defined, set its new position */
 		if (blk != NULL && blk == oldblk)
@@ -65,7 +65,7 @@
 	}
 
 	htx->used = new;
-	htx->sl_off = sl_off;
+	htx->sl_pos = sl_pos;
 	htx->head = 0;
 	htx->front = htx->tail = new - 1;
 	memcpy((void *)htx->blocks, (void *)tmp->blocks, htx->size);
@@ -215,12 +215,13 @@
 	enum htx_blk_type type = htx_get_blk_type(blk);
 	uint32_t next, pos, wrap;
 
+	pos  = htx_get_blk_pos(htx, blk);
 	if (type != HTX_BLK_UNUSED) {
 		/* Mark the block as unused, decrement allocated size */
 		htx->data -= htx_get_blksz(blk);
 		blk->info = ((uint32_t)HTX_BLK_UNUSED << 28);
-		if (htx->sl_off == blk->addr)
-			htx->sl_off = -1;
+		if (htx->sl_pos == pos)
+			htx->sl_pos = -1;
 	}
 
 	/* This is the last block in use */
@@ -232,7 +233,6 @@
 	}
 
 	/* There is at least 2 blocks, so tail is always >= 0 */
-	pos  = htx_get_blk_pos(htx, blk);
 	blk  = NULL;
 	next = pos + 1; /* By default retrun the next block */
 	wrap = htx_get_wrap(htx);
@@ -271,11 +271,11 @@
 	}
 
 	blk = htx_get_blk(htx, next);
-	if (htx->sl_off == -1) {
-		/* Try to update the start-line offset, if possible */
+	if (htx->sl_pos == -1) {
+		/* Try to update the start-line payload addr, if possible */
 		type = htx_get_blk_type(blk);
 		if (type == HTX_BLK_REQ_SL || type == HTX_BLK_RES_SL)
-			htx->sl_off = blk->addr;
+			htx->sl_pos = htx_get_blk_pos(htx, blk);
 	}
   end:
 	if (pos == htx->front)
@@ -538,8 +538,8 @@
 			break;
 		}
 
-		if (dst->sl_off == -1 && src->sl_off == blk->addr)
-			dst->sl_off = dstblk->addr;
+		if (dst->sl_pos == -1 && src->sl_pos == htx_get_blk_pos(src, blk))
+			dst->sl_pos = htx_get_blk_pos(dst, dstblk);
 	  next:
 		blk = htx_remove_blk(src, blk);
 		if (type == mark)
@@ -612,9 +612,6 @@
 	sl = htx_get_blk_ptr(htx, blk);
 	tmp.info = sl->info;
 	tmp.flags = sl->flags;
-	if (htx->sl_off == blk->addr)
-		htx->sl_off = -1;
-
 
 	size = sizeof(*sl) + p1.len + p2.len + p3.len;
 	delta = size - htx_get_blksz(blk);
@@ -642,8 +639,6 @@
 	sl = htx_get_blk_ptr(htx, blk);
 	sl->info = tmp.info;
 	sl->flags = tmp.flags;
-	if (htx->sl_off == -1)
-		htx->sl_off = blk->addr;
 
 	HTX_SL_P1_LEN(sl) = p1.len;
 	HTX_SL_P2_LEN(sl) = p2.len;
@@ -678,8 +673,8 @@
 	blk->info += size;
 
 	sl = htx_get_blk_ptr(htx, blk);
-	if (htx->sl_off == -1)
-		htx->sl_off = blk->addr;
+	if (htx->sl_pos == -1)
+		htx->sl_pos = htx_get_blk_pos(htx, blk);
 
 	sl->flags = flags;