message-parser.c revision 7b61cb25a510ab3f76845549a52da9272bc6d6b5
2ronwalf#include "rfc822-parser.h"
2ronwalf#include "rfc2231-parser.h"
2ronwalf#include "message-parser.h"
2ronwalfstruct message_boundary {
2ronwalfstruct message_parser_ctx {
2ronwalf const char *last_boundary;
2ronwalf unsigned int want_count;
static struct message_boundary *
return boundaries;
return NULL;
unsigned int missing_cr_count = 0;
int ret;
if (ret <= 0) {
switch (ret) {
i_unreached();
if (!*full_r) {
static struct message_part *
p->children_count++;
return part;
struct message_boundary *b;
const unsigned char *ptr;
int ret;
bool full;
return ret;
if (first_line)
line_size = 0;
int ret;
bool full;
return ret;
if (ret >= 0) {
return ret == 0 ? 0 :
boundary_start = 0;
if (boundary_start != 0) {
if (ret >= 0) {
} else if (boundary_start == 0) {
ret = 0;
ret = 0;
bool full;
int ret;
return ret;
const char *const *results;
#define MUTEX_FLAGS \
int ret;
return ret;
else T_BEGIN {
} T_END;
MESSAGE_PART_FLAG_MULTIPART_DIGEST) != 0) {
bool full;
int ret;
return ret;
const unsigned char *cur;
bool full;
int ret;
return ret;
cur--;
boundary_min_start = 0;
bool full;
int ret;
return ret;
bool full;
int ret;
return ret;
int ret;
return ret;
static struct message_parser_ctx *
return ctx;
struct message_parser_ctx *
return ctx;
struct message_parser_ctx *
return ctx;
return ret;
int ret;
if (ret == 0) {
return ret;
void *context)
int ret;
if (ret < 0) {
void *context)
int ret;