GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
buffer_get_token_sa_pred(3) FreeBSD Library Functions Manual buffer_get_token_sa_pred(3)

buffer_get_token_sa_pred - read token from buffer

#include <libowfat/stralloc.h>
#include <libowfat/buffer.h>
int buffer_get_token_sa_pred(buffer* b,stralloc* sa,
                 int (*predicate)(stralloc* * sa));

buffer_get_token_sa_pred appends data from b to sa until predicate(sa) returns 1 or -1.

If predicate returns 1 once a '\n' was read, that new-line character is still appended to sa -- use stralloc_chop or stralloc_chomp to get rid of it. predicate can also return 0 (indicating further input is required to complete the token) or -1 (abort and return -1; use this if predicate wants to enfore a maximum message size or does timeout handling or detects a malformed message).

If reading from the buffer or allocating memory fails, buffer_get_token_sa_pred returns -1 and sets errno appropriately. At that point sa may already contain a partial token.

On success, buffer_get_token_sa_pred returns 0.

buffer_get_token_sa_pred appends instead of overwriting so it can be used on non-blocking sockets (these signal error and set errno to EAGAIN; in this case you can simply call buffer_get_token_sa again when select or poll indicate more data is available).

buffer_getline_sa(3), buffer_get_token(3), buffer(3)

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.