git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3760
d4fa192b-c00b-0410-8231-
f00ffab90ce4
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
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);
+}