]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MINOR] buffers: add buffer_ignore() to skip some bytes
authorWilly Tarreau <w@1wt.eu>
Sun, 27 Dec 2009 14:45:38 +0000 (15:45 +0100)
committerWilly Tarreau <w@1wt.eu>
Sun, 27 Dec 2009 14:45:38 +0000 (15:45 +0100)
This simple function will be used to skip blanks at the beginning of a
request or response.

include/proto/buffers.h

index c19a284fc94b93ffeae149bf7af38ef6dbc06f2f..d5dd781bcbe85b08cd9e64bf912ea0dc02be59c5 100644 (file)
@@ -173,6 +173,21 @@ static inline void buffer_cut_tail(struct buffer *buf)
                buf->flags |= BF_FULL;
 }
 
+/* Cut the <n> next unsent bytes of the buffer. The caller must ensure that <n>
+ * is smaller than the actual buffer's length. This is mainly used to remove
+ * empty lines at the beginning of a request or a response.
+ */
+static inline void buffer_ignore(struct buffer *buf, int n)
+{
+       buf->l -= n;
+       buf->w += n;
+       if (buf->w >= buf->data + buf->size)
+               buf->w -= buf->size;
+       buf->flags &= ~BF_FULL;
+       if (buf->l >= buffer_max_len(buf))
+               buf->flags |= BF_FULL;
+}
+
 /* marks the buffer as "shutdown" ASAP for reads */
 static inline void buffer_shutr_now(struct buffer *buf)
 {