Adjust to VDP API Changes from VC#4035

Ref https://github.com/varnishcache/varnish-cache/pull/4035
parent 05dc3298
...@@ -139,18 +139,22 @@ const struct vdp vped_pretend_gz = { ...@@ -139,18 +139,22 @@ const struct vdp vped_pretend_gz = {
*/ */
static int v_matchproto_(vdp_fini_f) static int v_matchproto_(vdp_fini_f)
vped_gzgz_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc) vped_gzgz_init(VRT_CTX, struct vdp_ctx *vdc, void **priv,
struct objcore *oc, struct req *req,
struct http *hd, intmax_t *cl)
{ {
struct req *req;
ssize_t l; ssize_t l;
const char *p; const char *p;
struct vped_gzgz_priv *foo; struct vped_gzgz_priv *foo;
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC); CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC);
(void)oc; AN(priv);
req = vdc->req; CHECK_OBJ_ORNULL(oc, OBJCORE_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC); CHECK_OBJ_NOTNULL(req, REQ_MAGIC); // caller ensures NOTNULL
CHECK_OBJ_NOTNULL(hd, HTTP_MAGIC);
AN(cl);
CAST_OBJ_NOTNULL(foo, *priv, VPED_GZGZ_PRIV_MAGIC); CAST_OBJ_NOTNULL(foo, *priv, VPED_GZGZ_PRIV_MAGIC);
CHECK_OBJ_NOTNULL(foo->objcore, OBJCORE_MAGIC); CHECK_OBJ_NOTNULL(foo->objcore, OBJCORE_MAGIC);
......
...@@ -439,17 +439,21 @@ vped_include(struct req *preq, const char *src, const char *host, ...@@ -439,17 +439,21 @@ vped_include(struct req *preq, const char *src, const char *host,
*/ */
static int v_matchproto_(vdp_init_f) static int v_matchproto_(vdp_init_f)
pesi_buf_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc) pesi_buf_init(VRT_CTX, struct vdp_ctx *vdc, void **priv,
struct objcore *oc, struct req *req,
struct http *hd, intmax_t *cl)
{ {
struct req *req;
struct pesi *pesi; struct pesi *pesi;
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC); CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC);
req = vdc->req; AN(priv);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC); CHECK_OBJ_ORNULL(oc, OBJCORE_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC); // caller ensures NOTNULL
CHECK_OBJ_NOTNULL(hd, HTTP_MAGIC);
AN(cl);
CAST_OBJ_NOTNULL(pesi, *priv, PESI_MAGIC); CAST_OBJ_NOTNULL(pesi, *priv, PESI_MAGIC);
(void) oc;
assert(WS_Allocated(req->ws, pesi, sizeof *pesi)); assert(WS_Allocated(req->ws, pesi, sizeof *pesi));
node_fill_nodestock(req->ws, &pesi->nodestock); node_fill_nodestock(req->ws, &pesi->nodestock);
...@@ -646,28 +650,39 @@ root_node_new(struct pesi *pesi, struct req *req) ...@@ -646,28 +650,39 @@ root_node_new(struct pesi *pesi, struct req *req)
*/ */
static int v_matchproto_(vdp_init_f) static int v_matchproto_(vdp_init_f)
vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc) vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv,
struct objcore *oc, struct req *req,
struct http *hd, intmax_t *cl)
{ {
struct req *req;
struct pesi *pesi; struct pesi *pesi;
struct pecx *pecx; struct pecx *pecx;
struct pesi_tasks *pesi_tasks; struct pesi_tasks *pesi_tasks;
struct node *root_node; struct node *root_node;
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC); CHECK_OBJ_NOTNULL(vdc, VDP_CTX_MAGIC);
AN(priv);
CHECK_OBJ_ORNULL(oc, OBJCORE_MAGIC); CHECK_OBJ_ORNULL(oc, OBJCORE_MAGIC);
CHECK_OBJ_ORNULL(req, REQ_MAGIC);
CHECK_OBJ_NOTNULL(hd, HTTP_MAGIC);
AN(cl);
AZ(*priv);
if (oc == NULL || !ObjHasAttr(vdc->wrk, oc, OA_ESIDATA)) if (oc == NULL || !ObjHasAttr(vdc->wrk, oc, OA_ESIDATA))
return (1); return (1);
req = vdc->req; if (req == NULL) {
CHECK_OBJ_NOTNULL(req, REQ_MAGIC); VSLb(vdc->vsl, SLT_Error,
AN(priv); "pesi can only be used on the client side");
return (1);
}
AZ(*priv); AZ(*priv);
RFC2616_Weaken_Etag(req->resp); RFC2616_Weaken_Etag(req->resp);
req->res_mode |= RES_ESI; req->res_mode |= RES_ESI;
if (req->resp_len != 0) if (*cl != 0)
req->resp_len = -1; *cl = -1;
if (req->esi_level > 0) { if (req->esi_level > 0) {
CAST_OBJ_NOTNULL(pesi, req->transport_priv, PESI_MAGIC); CAST_OBJ_NOTNULL(pesi, req->transport_priv, PESI_MAGIC);
...@@ -679,7 +694,8 @@ vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc) ...@@ -679,7 +694,8 @@ vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc)
#ifdef DEBUG_PESI_WS #ifdef DEBUG_PESI_WS
pesi->ws_snap = WS_Snapshot(req->ws); pesi->ws_snap = WS_Snapshot(req->ws);
#endif #endif
AZ(VDP_Push(ctx, req->vdc, req->ws, &VDP_pesi_buf, pesi)); AZ(VDP_Push(ctx, req->vdc, req->ws, &VDP_pesi_buf, pesi,
NULL, req, req->resp, &req->resp_len));
return (0); return (0);
} }
...@@ -725,7 +741,8 @@ vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc) ...@@ -725,7 +741,8 @@ vdp_pesi_init(VRT_CTX, struct vdp_ctx *vdc, void **priv, struct objcore *oc)
AZ(pecx->state); AZ(pecx->state);
AZ(pesi->woken); AZ(pesi->woken);
AZ(VDP_Push(ctx, req->vdc, req->ws, &VDP_pesi_buf, pesi)); AZ(VDP_Push(ctx, req->vdc, req->ws, &VDP_pesi_buf, pesi,
NULL, req, req->resp, &req->resp_len));
#ifdef DEBUG_PESI_WS #ifdef DEBUG_PESI_WS
pesi->ws_snap = WS_Snapshot(req->ws); pesi->ws_snap = WS_Snapshot(req->ws);
#endif #endif
...@@ -1200,11 +1217,13 @@ push_vdps(VRT_CTX, struct req *req, struct vped_gzgz_priv *vgzgz, ...@@ -1200,11 +1217,13 @@ push_vdps(VRT_CTX, struct req *req, struct vped_gzgz_priv *vgzgz,
{ {
if (vgzgz != NULL) { if (vgzgz != NULL) {
AZ(gz); AZ(gz);
AZ(VDP_Push(ctx, req->vdc, req->ws, &vped_gzgz, vgzgz)); AZ(VDP_Push(ctx, req->vdc, req->ws, &vped_gzgz, vgzgz,
NULL, req, req->resp, &req->resp_len));
} }
else if (gz != NULL) { else if (gz != NULL) {
AZ(vgzgz); AZ(vgzgz);
AZ(VDP_Push(ctx, req->vdc, req->ws, &vped_pretend_gz, gz)); AZ(VDP_Push(ctx, req->vdc, req->ws, &vped_pretend_gz, gz,
NULL, req, req->resp, &req->resp_len));
} }
else { else {
AZ(vgzgz); AZ(vgzgz);
...@@ -1313,7 +1332,8 @@ vped_deliver(struct req *req, struct boc *boc, int wantbody) ...@@ -1313,7 +1332,8 @@ vped_deliver(struct req *req, struct boc *boc, int wantbody)
push_vdps(ctx, req, vgzgz, gz); push_vdps(ctx, req, vgzgz, gz);
AN(parent); AN(parent);
AZ(VDP_Push(ctx, req->vdc, req->ws, AZ(VDP_Push(ctx, req->vdc, req->ws,
&vped_to_parent, parent->nexus.req)); &vped_to_parent, parent->nexus.req,
NULL, req, req->resp, &req->resp_len));
(void)VDP_DeliverObj(req->vdc, req->objcore); (void)VDP_DeliverObj(req->vdc, req->objcore);
...@@ -1329,7 +1349,8 @@ vped_deliver(struct req *req, struct boc *boc, int wantbody) ...@@ -1329,7 +1349,8 @@ vped_deliver(struct req *req, struct boc *boc, int wantbody)
push_vdps(ctx, req, vgzgz, gz); push_vdps(ctx, req, vgzgz, gz);
AZ(VDP_Push(ctx, req->vdc, req->ws, AZ(VDP_Push(ctx, req->vdc, req->ws,
&vped_to_parent, parent->nexus.req)); &vped_to_parent, parent->nexus.req,
NULL, req, req->resp, &req->resp_len));
node_mutate_prep(tree, node); node_mutate_prep(tree, node);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment