[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