mirror of
https://bitbucket.org/jsuto/piler.git
synced 2025-01-12 14:30:11 +01:00
fixed attachment handling
This commit is contained in:
parent
0d59e95bd8
commit
31d801da6f
@ -13,7 +13,7 @@
|
||||
|
||||
#define VERSION "0.1.23-master-branch"
|
||||
|
||||
#define BUILD 776
|
||||
#define BUILD 777
|
||||
|
||||
#define HOSTID "mailarchiver"
|
||||
|
||||
|
14
src/parser.c
14
src/parser.c
@ -218,9 +218,14 @@ int parse_line(char *buf, struct _state *state, struct session_data *sdata, int
|
||||
|
||||
if(state->b64fd != -1){
|
||||
abuffer[state->abufpos] = '\0';
|
||||
if(state->base64 == 1){
|
||||
n64 = base64_decode_attachment_buffer(abuffer, state->abufpos, &b64buffer[0], sizeof(b64buffer));
|
||||
n64 = write(state->b64fd, b64buffer, n64);
|
||||
}
|
||||
else {
|
||||
n64 = write(state->b64fd, abuffer, state->abufpos);
|
||||
}
|
||||
}
|
||||
|
||||
state->abufpos = 0; memset(abuffer, 0, abuffersize);
|
||||
}
|
||||
@ -245,8 +250,8 @@ int parse_line(char *buf, struct _state *state, struct session_data *sdata, int
|
||||
state->pushed_pointer = 1;
|
||||
|
||||
|
||||
// this is a real attachment to dump
|
||||
if(state->base64 == 1 && strlen(state->filename) > 4 && strlen(state->type) > 3 && state->n_attachments < MAX_ATTACHMENTS-1){
|
||||
// this is a real attachment to dump, it doesn't have to be base64 encoded!
|
||||
if(strlen(state->filename) > 4 && strlen(state->type) > 3 && state->n_attachments < MAX_ATTACHMENTS-1){
|
||||
state->n_attachments++;
|
||||
|
||||
snprintf(state->attachments[state->n_attachments].filename, TINYBUFSIZE-1, "%s", state->filename);
|
||||
@ -480,9 +485,14 @@ int parse_line(char *buf, struct _state *state, struct session_data *sdata, int
|
||||
|
||||
if(state->b64fd != -1){
|
||||
abuffer[state->abufpos] = '\0';
|
||||
if(state->base64 == 1){
|
||||
n64 = base64_decode_attachment_buffer(abuffer, state->abufpos, &b64buffer[0], sizeof(b64buffer));
|
||||
n64 = write(state->b64fd, b64buffer, n64);
|
||||
}
|
||||
else {
|
||||
n64 = write(state->b64fd, abuffer, state->abufpos);
|
||||
}
|
||||
}
|
||||
|
||||
state->abufpos = 0; memset(abuffer, 0, abuffersize);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user