diff options
Diffstat (limited to 'src/lib-http/http-response.c')
-rw-r--r-- | src/lib-http/http-response.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/lib-http/http-response.c b/src/lib-http/http-response.c new file mode 100644 index 0000000..e85a730 --- /dev/null +++ b/src/lib-http/http-response.c @@ -0,0 +1,46 @@ +/* Copyright (c) 2013-2018 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "array.h" +#include "ioloop.h" +#include "istream.h" + +#include "http-response.h" + +void +http_response_init(struct http_response *resp, + unsigned int status, const char *reason) +{ + i_zero(resp); + resp->version_major = 1; + resp->version_minor = 1; + resp->date = ioloop_time; + resp->status = status; + resp->reason = reason; +} + +bool http_response_has_connection_option(const struct http_response *resp, + const char *option) +{ + const char *opt; + + if (!array_is_created(&resp->connection_options)) + return FALSE; + array_foreach_elem(&resp->connection_options, opt) { + if (strcasecmp(opt, option) == 0) + return TRUE; + } + return FALSE; +} + +int http_response_get_payload_size(const struct http_response *resp, + uoff_t *size_r) +{ + if (resp->payload == NULL) { + *size_r = 0; + return 1; + } + + return i_stream_get_size(resp->payload, TRUE, size_r); +} + |