Commit 27716fb2 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add VLU_Data() function for injecting input



git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@3760 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent def2610b
......@@ -36,6 +36,7 @@ typedef int (vlu_f)(void *, const char *);
struct vlu *VLU_New(void *priv, vlu_f *func, unsigned bufsize);
int VLU_Fd(int fd, struct vlu *l);
int VLU_File(FILE *f, struct vlu *l);
int VLU_Data(const void *ptr, int len, struct vlu *l);
void VLU_Destroy(struct vlu *l);
#endif
......@@ -134,3 +134,28 @@ VLU_File(FILE *f, struct vlu *l)
l->bufp = strlen(l->buf);
return (LineUpProcess(l));
}
int
VLU_Data(const void *ptr, int len, struct vlu *l)
{
const char *p;
int i;
p = ptr;
CHECK_OBJ_NOTNULL(l, LINEUP_MAGIC);
if (len < 0)
len = strlen(p);
while (len > 0) {
i = len;
if (i > l->bufl - l->bufp)
i = l->bufl - l->bufp;
memcpy(l->buf + l->bufp, p, i);
l->bufp += i;
p += i;
len -= i;
i = LineUpProcess(l);
if (i)
break;
}
return (i);
}
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