void copybottom(int forcebottom) { if (!omitbottom || forcebottom) { copy(&qq,"text/bottom",flagcd); if (flagcd) { if (flagcd == 'B') { encodeB("",0,&line,2); /* flush */ qmail_put(&qq,line.s,line.len); } hdr_boundary(0); hdr_ctype(CTYPE_MESSAGE); hdr_adds("Content-Disposition: inline; filename=request.msg"); qmail_puts(&qq,"\n"); } qmail_puts(&qq,"Return-Path: <"); quote2("ed,sender); qmail_put(&qq,quoted.s,quoted.len); qmail_puts(&qq,">\n"); if (seek_begin(0) == -1) strerr_die2sys(111,FATAL,MSG(ERR_SEEK_INPUT)); if (qmail_copy(&qq,&ssin2,copylines) != 0) strerr_die2sys(111,FATAL,MSG(ERR_READ_INPUT)); if (flagcd) hdr_boundary(1); } else { if (flagcd == 'B') { encodeB("",0,&line,2); /* flush even if no bottom */ qmail_put(&qq,line.s,line.len); } } qmail_from(&qq,from.s); }
void normal_bottom(char format) /* Copies bottom text and the original message to the new message */ { if (flagbottom) { copy(&qq,"text/bottom",flagcd); if (flagcd && format != RFC1153) { if (flagcd == 'B') { encodeB("",0,&line,2); /* flush */ qmail_put(&qq,line.s,line.len); } hdr_boundary(0); hdr_ctype(CTYPE_MESSAGE); hdr_adds("Content-Disposition: inline; filename=request.msg"); qmail_puts(&qq,"\n"); } qmail_puts(&qq,"Return-Path: <"); if (!quote2("ed,sender)) die_nomem(); qmail_put(&qq,quoted.s,quoted.len); qmail_puts(&qq,">\n"); if (seek_begin(0) == -1) strerr_die2sys(111,FATAL,MSG(ERR_SEEK_INPUT)); if (qmail_copy(&qq,&ssin2,copylines) != 0) strerr_die2sys(111,FATAL,MSG(ERR_READ_INPUT)); } else { if (flagcd == 'B' && format != RFC1153) { encodeB("",0,&line,2); /* flush */ qmail_put(&qq,line.s,line.len); } } }