Commit b57c329a authored by Nils Goroll's avatar Nils Goroll

add the blob wrapper to vrt

it is genereally useful also for vmods
parent ddd9d4da
......@@ -590,3 +590,21 @@ VRT_ipcmp(const struct suckaddr *sua1, const struct suckaddr *sua2)
return(1);
return (VSA_Compare_IP(sua1, sua2));
}
struct vmod_priv *
VRT_blob(VRT_CTX, const char *err, const uint8_t *src, size_t len)
{
struct vmod_priv *p;
void *d;
p = (void *)WS_Alloc(ctx->ws, sizeof *p);
d = WS_Copy(ctx->ws, src, len);
if (p == NULL || d == NULL) {
VRT_fail(ctx, "Workspace overflow (%s)", err);
return (NULL);
}
memset(p, 0, sizeof *p);
p->len = len;
p->priv = d;
return (p);
}
......@@ -730,31 +730,12 @@ VRT_BODY_L(resp)
/*--------------------------------------------------------------------*/
static struct vmod_priv *
vrt_do_blob(VRT_CTX, const char *err, const uint8_t *src, size_t len)
{
struct vmod_priv *p;
void *d;
p = (void *)WS_Alloc(ctx->ws, sizeof *p);
d = WS_Copy(ctx->ws, src, len);
if (p == NULL || d == NULL) {
VRT_fail(ctx, "Workspace overflow (%s)", err);
return (NULL);
}
memset(p, 0, sizeof *p);
p->len = len;
p->priv = d;
return (p);
}
VCL_BLOB
VRT_r_req_hash(VRT_CTX)
{
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);
return (vrt_do_blob(ctx, "req.hash", ctx->req->digest,
DIGEST_LEN));
return (VRT_blob(ctx, "req.hash", ctx->req->digest, DIGEST_LEN));
}
VCL_BLOB
......@@ -762,8 +743,7 @@ VRT_r_bereq_hash(VRT_CTX)
{
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
CHECK_OBJ_NOTNULL(ctx->bo, BUSYOBJ_MAGIC);
return (vrt_do_blob(ctx, "bereq.hash", ctx->bo->digest,
DIGEST_LEN));
return (VRT_blob(ctx, "bereq.hash", ctx->bo->digest, DIGEST_LEN));
}
/*--------------------------------------------------------------------*/
......
......@@ -60,6 +60,7 @@
* struct director.destroy added
* VRT_r_beresp_storage_hint() removed - under discussion #2509
* VRT_l_beresp_storage_hint() removed - under discussion #2509
* VRT_blob() added
* 6.1 (2017-09-15 aka 5.2)
* http_CollectHdrSep added
* VRT_purge modified (may fail a transaction, signature changed)
......@@ -368,6 +369,7 @@ void VRT_hashdata(VRT_CTX, const char *str, ...);
int VRT_strcmp(const char *s1, const char *s2);
void VRT_memmove(void *dst, const void *src, unsigned len);
int VRT_ipcmp(const struct suckaddr *sua1, const struct suckaddr *sua2);
struct vmod_priv *VRT_blob(VRT_CTX, const char *, const uint8_t *, size_t);
void VRT_Rollback(VRT_CTX, const struct http *);
......
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