tree 6f9ccadca99bff141bf15c556d47f488304f26da
parent 4fe7a2ec6c75266cf961537c362f14d2e9814a58
author Willy Tarreau <w@1wt.eu> 1251954830 +0200
committer Willy Tarreau <w@1wt.eu> 1253364827 +0200
encoding latin1

[MINOR] buffers: provide buffer_si_putchar() to send a char from a stream interface

This function works like a traditional putchar() except that it
can return 0 if the output buffer is full.

Now a basic character-based echo function would look like this, from
a stream interface :

	while (1) {
		c = buffer_si_peekchar(req);
		if (c < 0)
			break;
		if (!buffer_si_putchar(res, c)) {
			si->flags |= SI_FL_WAIT_ROOM;
			break;
		}
		buffer_skip(req, 1);
		req->flags |= BF_WRITE_PARTIAL;
		res->flags |= BF_READ_PARTIAL;
	}
