KEEL 1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
body_reader_multipart.h
Go to the documentation of this file.
1#ifndef KEEL_BODY_READER_MULTIPART_H
2#define KEEL_BODY_READER_MULTIPART_H
3
4#include <keel/body_reader.h>
5#include <keel/request.h>
6#include <stddef.h>
7
43#define KL_MP_MAX_BOUNDARY 70
44
54
67
69typedef struct {
70 const char *name;
71 size_t name_len;
72 const char *filename;
74 const char *content_type;
77
87
90
104 void *user_data);
105
124 const char **data,
125 size_t *data_len);
126
134
135#endif
KlMultipartErrorCode kl_multipart_last_error(const KlBodyReader *br)
Return the error code for the latest ERROR event.
KlMultipartErrorCode
Definition body_reader_multipart.h:56
@ KL_MP_ERR_MALFORMED
Definition body_reader_multipart.h:58
@ KL_MP_ERR_TOTAL_TOO_LARGE
Definition body_reader_multipart.h:60
@ KL_MP_ERR_NONE
Definition body_reader_multipart.h:57
@ KL_MP_ERR_PART_TOO_LARGE
Definition body_reader_multipart.h:59
@ KL_MP_ERR_NOMEM
Definition body_reader_multipart.h:65
@ KL_MP_ERR_INPUT_OVERFLOW
Definition body_reader_multipart.h:63
@ KL_MP_ERR_PREMATURE_EOF
Definition body_reader_multipart.h:64
@ KL_MP_ERR_HEADERS_TOO_LARGE
Definition body_reader_multipart.h:62
@ KL_MP_ERR_TOO_MANY_PARTS
Definition body_reader_multipart.h:61
KlMultipartEvent kl_multipart_next(KlBodyReader *br, KlMultipartPartMeta *meta, const char **data, size_t *data_len)
Advance the parser by one event.
KlBodyReader * kl_body_reader_multipart(KlAllocator *alloc, const KlRequest *req, void *user_data)
Factory: produce a streaming multipart reader for a request.
struct KlMultipartReader KlMultipartReader
Definition body_reader_multipart.h:89
KlMultipartEvent
Definition body_reader_multipart.h:46
@ KL_MP_EVT_PART_DATA
Definition body_reader_multipart.h:48
@ KL_MP_EVT_PART_END
Definition body_reader_multipart.h:49
@ KL_MP_EVT_DONE
Definition body_reader_multipart.h:50
@ KL_MP_EVT_PART_BEGIN
Definition body_reader_multipart.h:47
@ KL_MP_EVT_ERROR
Definition body_reader_multipart.h:52
@ KL_MP_EVT_NEED_DATA
Definition body_reader_multipart.h:51
Bring-your-own allocator vtable.
Definition allocator.h:12
Definition body_reader.h:21
Definition body_reader_multipart.h:80
int max_parts
Definition body_reader_multipart.h:83
size_t max_input_buffer
Definition body_reader_multipart.h:85
size_t max_total_size
Definition body_reader_multipart.h:82
size_t max_headers_size
Definition body_reader_multipart.h:84
size_t max_part_size
Definition body_reader_multipart.h:81
Definition body_reader_multipart.h:69
size_t content_type_len
Definition body_reader_multipart.h:75
const char * content_type
Definition body_reader_multipart.h:74
size_t name_len
Definition body_reader_multipart.h:71
const char * name
Definition body_reader_multipart.h:70
size_t filename_len
Definition body_reader_multipart.h:73
const char * filename
Definition body_reader_multipart.h:72
Definition request.h:26