b->head = b_size(b) - output;
}
+/* b_putchar() : tries to append char <c> at the end of buffer <b>. Supports
+ * wrapping. Data are truncated if buffer is full.
+ */
+static inline void b_putchr(struct buffer *b, char c)
+{
+ if (b_full(b))
+ return;
+ *b_tail(b) = c;
+ b->len++;
+}
+
+/* b_putblk() : tries to append block <blk> at the end of buffer <b>. Supports
+ * wrapping. Data are truncated if buffer is too short. It returns the number
+ * of bytes copied.
+ */
+static inline size_t b_putblk(struct buffer *b, const char *blk, size_t len)
+{
+ size_t half;
+
+ if (len > b_room(b))
+ len = b_room(b);
+ if (!len)
+ return 0;
+
+ half = b_contig_space(b);
+ if (half > len)
+ half = len;
+
+ memcpy(b_tail(b), blk, half);
+ b->len += half;
+ if (len > half) {
+ memcpy(b_tail(b), blk + half, len - half);
+ b->len += len - half;
+ }
+ return len;
+}
+
+/* b_putstr() : tries to copy string <str> into output data at buffer <b>.
+ * Supports wrapping. Data are truncated if buffer is too short. It returns the
+ * number of bytes copied.
+ */
+static inline size_t b_putstr(struct buffer *b, const char *str)
+{
+ return b_putblk(b, str, strlen(str));
+}
+
+
#endif /* _COMMON_BUF_H */
/*
return buffer_replace2(b, pos, end, str, strlen(str));
}
-/* Tries to append char <c> at the end of buffer <b>. Supports wrapping. Data
- * are truncated if buffer is full.
- */
-static inline void bo_putchr(struct buffer *b, char c)
-{
- if (b_data(b) == b->size)
- return;
- *b_tail(b) = c;
- b->len++;
-}
-
-/* Tries to append block <blk> at the end of buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline unsigned int bo_putblk(struct buffer *b, const char *blk, unsigned int len)
-{
- unsigned int half;
-
- if (len > b_room(b))
- len = b_room(b);
- if (!len)
- return 0;
-
- half = b_contig_space(b);
- if (half > len)
- half = len;
-
- memcpy(b_tail(b), blk, half);
- b->len += half;
- if (len > half) {
- memcpy(b_tail(b), blk + half, len - half);
- b->len += len - half;
- }
- return len;
-}
-
-/* Tries to copy string <str> into output data at buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline int bo_putstr(struct buffer *b, const char *str)
-{
- return bo_putblk(b, str, strlen(str));
-}
-
-/* Tries to copy chunk <chk> into output data at buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline int bo_putchk(struct buffer *b, const struct chunk *chk)
-{
- return bo_putblk(b, chk->str, chk->len);
-}
-
-/* Tries to write char <c> into input data at buffer <b>. Supports wrapping.
- * Data are truncated if buffer is full.
- */
-static inline void bi_putchr(struct buffer *b, char c)
-{
- if (b_data(b) == b->size)
- return;
- *b_tail(b) = c;
- b->len++;
-}
-
-/* Tries to append block <blk> at the end of buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline unsigned int bi_putblk(struct buffer *b, const char *blk, unsigned int len)
-{
- int half;
-
- if (len > b_room(b))
- len = b_room(b);
- if (!len)
- return 0;
-
- half = b_contig_space(b);
- if (half > len)
- half = len;
-
- memcpy(b_tail(b), blk, half);
- b->len += half;
- if (len > half) {
- memcpy(b_tail(b), blk + half, len - half);
- b->len += len - half;
- }
- return len;
-}
-
-/* Tries to copy string <str> into input data at buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline int bi_putstr(struct buffer *b, const char *str)
-{
- return bi_putblk(b, str, strlen(str));
-}
-
-/* Tries to copy chunk <chk> into input data at buffer <b>. Supports wrapping.
- * Data are truncated if buffer is too short. It returns the number of bytes
- * copied.
- */
-static inline int bi_putchk(struct buffer *b, const struct chunk *chk)
-{
- return bi_putblk(b, chk->str, chk->len);
-}
-
/* Allocates a buffer and replaces *buf with this buffer. If no memory is
* available, &buf_wanted is used instead. No control is made to check if *buf
* already pointed to another buffer. The allocated buffer is returned, or
* its own strings.
*/
if (check->type && check->type != PR_O2_TCPCHK_CHK && !(check->state & CHK_ST_AGENT)) {
- bo_putblk(check->bo, s->proxy->check_req, s->proxy->check_len);
+ b_putblk(check->bo, s->proxy->check_req, s->proxy->check_len);
/* we want to check if this host replies to HTTP or SSLv3 requests
* so we'll send the request, and won't wake the checker up now.
}
else if ((check->type) == PR_O2_HTTP_CHK) {
if (s->proxy->options2 & PR_O2_CHK_SNDST)
- bo_putblk(check->bo, trash.str, httpchk_build_status_header(s, trash.str, trash.size));
+ b_putblk(check->bo, trash.str, httpchk_build_status_header(s, trash.str, trash.size));
/* prevent HTTP keep-alive when "http-check expect" is used */
if (s->proxy->options2 & PR_O2_EXP_TYPE)
- bo_putstr(check->bo, "Connection: close\r\n");
- bo_putstr(check->bo, "\r\n");
+ b_putstr(check->bo, "Connection: close\r\n");
+ b_putstr(check->bo, "\r\n");
*b_tail(check->bo) = '\0'; /* to make gdb output easier to read */
}
}
if ((check->type & PR_O2_LB_AGENT_CHK) && check->send_string_len) {
- bo_putblk(check->bo, check->send_string, check->send_string_len);
+ b_putblk(check->bo, check->send_string, check->send_string_len);
}
/* for tcp-checks, the initial connection setup is handled separately as
if (check->current_step->string_len >= b_room(check->bo))
continue;
- bo_putblk(check->bo, check->current_step->string, check->current_step->string_len);
+ b_putblk(check->bo, check->current_step->string, check->current_step->string_len);
*b_tail(check->bo) = '\0'; /* to make gdb output easier to read */
/* go to next rule and try to send */
do {
*--beg = hextab[chksz & 0xF];
} while (chksz >>= 4);
- bi_putblk(buf, beg, str + sizeof(str) - beg);
+ b_putblk(buf, beg, str + sizeof(str) - beg);
}
/* Block1 is the length of the first block before the buffer wraps,
block2 = flen - block1;
if (block1)
- bi_putblk(buf, b_head(h2c->dbuf), block1);
+ b_putblk(buf, b_head(h2c->dbuf), block1);
if (block2)
- bi_putblk(buf, b_peek(h2c->dbuf, block1), block2);
+ b_putblk(buf, b_peek(h2c->dbuf, block1), block2);
if (h2s->flags & H2_SF_DATA_CHNK) {
/* emit the CRLF */
- bi_putblk(buf, "\r\n", 2);
+ b_putblk(buf, "\r\n", 2);
}
/* now mark the input data as consumed (will be deleted from the buffer
if (count < 5)
goto more;
chklen += 5;
- bi_putblk(buf, "0\r\n\r\n", 5);
+ b_putblk(buf, "0\r\n\r\n", 5);
}
h2c->rcvd_c += h2c->dpl;