diff options
Diffstat (limited to 'debian/vendor-h2o/deps/libyrmcds/example/counter.c')
-rw-r--r-- | debian/vendor-h2o/deps/libyrmcds/example/counter.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/vendor-h2o/deps/libyrmcds/example/counter.c b/debian/vendor-h2o/deps/libyrmcds/example/counter.c new file mode 100644 index 0000000..f08a1b1 --- /dev/null +++ b/debian/vendor-h2o/deps/libyrmcds/example/counter.c @@ -0,0 +1,38 @@ +#include <yrmcds.h> + +#include <errno.h> +#include <error.h> +#include <stdio.h> +#include <stdlib.h> + +void check_error(yrmcds_error e) { + if( e != YRMCDS_OK ) { + if( e == YRMCDS_SYSTEM_ERROR ) { + error(0, errno, "system error"); + } else { + fprintf(stderr, "yrmcds error: %s\n", yrmcds_strerror(e)); + } + exit(2); + } +} + +void check_response(const yrmcds_cnt_response* r) { + if( r->status != YRMCDS_STATUS_OK ) { + fprintf(stderr, "Command failed: 0x%02x %.*s\n", + r->status, (int)r->body_length, r->body); + exit(3); + } +} + +int main(void) { + yrmcds_cnt c; + yrmcds_cnt_response r; + + check_error( yrmcds_cnt_connect(&c, "localhost", 11215) ); + check_error( yrmcds_cnt_noop(&c, NULL) ); + check_error( yrmcds_cnt_recv(&c, &r) ); + check_response(&r); + check_error( yrmcds_cnt_close(&c) ); + + return 0; +} |