Skip to content

Commit

Permalink
lib-sieve: util: mail-raw: Implemented mail_raw_open_stream().
Browse files Browse the repository at this point in the history
This allows using a seekable stream as mail directly.
  • Loading branch information
stephanbosch committed Mar 3, 2018
1 parent cd4507f commit b9cfdb8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
16 changes: 13 additions & 3 deletions src/lib-sieve/util/mail-raw.c
Expand Up @@ -190,19 +190,29 @@ static struct mail_raw *mail_raw_create
return mailr;
}

struct mail_raw *mail_raw_open_stream
(struct mail_user *ruser, struct istream *input)
{
struct mail_raw *mailr;

i_assert(input->seekable);
i_stream_set_name(input, "data");
mailr = mail_raw_create(ruser, input, NULL, NULL, (time_t)-1);

return mailr;
}

struct mail_raw *mail_raw_open_data
(struct mail_user *ruser, string_t *mail_data)
{
struct mail_raw *mailr;
struct istream *input;

input = i_stream_create_from_data(str_data(mail_data), str_len(mail_data));
i_stream_set_name(input, "data");

mailr = mail_raw_create(ruser, input, NULL, NULL, (time_t)-1);
mailr = mail_raw_open_stream(ruser, input);

i_stream_unref(&input);

return mailr;
}

Expand Down
2 changes: 2 additions & 0 deletions src/lib-sieve/util/mail-raw.h
Expand Up @@ -15,6 +15,8 @@ struct mail_raw {
struct mail_user *mail_raw_user_create
(struct master_service *service, struct mail_user *mail_user);

struct mail_raw *mail_raw_open_stream
(struct mail_user *ruser, struct istream *input);
struct mail_raw *mail_raw_open_file
(struct mail_user *ruser, const char *path);
struct mail_raw *mail_raw_open_data
Expand Down

0 comments on commit b9cfdb8

Please sign in to comment.