[master] ccfa03f Reintroduce VLU_Feed()
Poul-Henning Kamp
phk at FreeBSD.org
Wed Jan 10 12:44:12 UTC 2018
commit ccfa03fc5f0e935b897204889ebae2bad09c8c1e
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Jan 10 11:55:32 2018 +0000
Reintroduce VLU_Feed()
diff --git a/include/vlu.h b/include/vlu.h
index f92642e..47cf705 100644
--- a/include/vlu.h
+++ b/include/vlu.h
@@ -37,3 +37,4 @@ struct vlu *VLU_New(vlu_f *, void *, unsigned);
int VLU_Fd(struct vlu *, int);
void VLU_Destroy(struct vlu **);
int VLU_File(int, vlu_f *, void *, unsigned);
+int VLU_Feed(struct vlu *, const char*, int);
diff --git a/lib/libvarnish/vlu.c b/lib/libvarnish/vlu.c
index 2ae654e..bc32df9 100644
--- a/lib/libvarnish/vlu.c
+++ b/lib/libvarnish/vlu.c
@@ -143,3 +143,26 @@ VLU_File(int fd, vlu_f *func, void *priv, unsigned bufsize)
VLU_Destroy(&vlu);
return (i);
}
+
+int
+VLU_Feed(struct vlu *l, const char *ptr, int len)
+{
+ int i = 0, ll;
+
+ CHECK_OBJ_NOTNULL(l, LINEUP_MAGIC);
+ AN(ptr);
+ assert(len > 0);
+ while (len > 0) {
+ ll = len;
+ if (ll > l->bufl - l->bufp)
+ ll = l->bufl - l->bufp;
+ memcpy(l->buf + l->bufp, ptr, ll);
+ len -= ll;
+ ptr += ll;
+ l->bufp += ll;
+ i = LineUpProcess(l);
+ if (i)
+ return (i);
+ }
+ return (i);
+}
More information about the varnish-commit
mailing list