X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fsendsbr.c;h=37a63a6ebfdcdd5714f80df2747ed6bbff1bba09;hb=0808f3e85977428948be17783e31c14c4f4b8622;hp=65b5ba1b6a51618dd84d4b35afafecd163402c38;hpb=2f689a1cb907a5de04e6d39ffd217a69af3216c7;p=mmh diff --git a/uip/sendsbr.c b/uip/sendsbr.c index 65b5ba1..37a63a6 100644 --- a/uip/sendsbr.c +++ b/uip/sendsbr.c @@ -2,8 +2,6 @@ /* * sendsbr.c -- routines to help WhatNow/Send along * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -18,16 +16,10 @@ #include #include -#ifdef TIME_WITH_SYS_TIME +#ifdef HAVE_SYS_TIME_H # include -# include -#else -# ifdef TM_IN_SYS_TIME -# include -# else -# include -# endif #endif +#include int debugsw = 0; /* global */ int forwsw = 1; @@ -43,8 +35,8 @@ char *distfile = NULL; static jmp_buf env; -static char body_file_name[MAXPATHLEN + 1]; /* name of temporary file for body content */ -static char composition_file_name[MAXPATHLEN + 1]; /* name of mhbuild composition temporary file */ +static char body_file_name[PATH_MAX + 1]; /* name of temporary file for body content */ +static char composition_file_name[PATH_MAX + 1]; /* name of mhbuild composition temporary file */ static int field_size; /* size of header field buffer */ static char *field; /* header field buffer */ static FILE *draft_file; /* draft file pointer */ @@ -194,12 +186,13 @@ static int attach(char *attachment_header_field_name, char *draft_file_name, int attachformat) { - char buf[MAXPATHLEN + 6]; /* miscellaneous buffer */ + char buf[PATH_MAX + 6]; /* miscellaneous buffer */ int c; /* current character for body copy */ int has_attachment; /* draft has at least one attachment */ int has_body; /* draft has a message body */ int length; /* length of attachment header field name */ char *p; /* miscellaneous string pointer */ + FILE *fp; /* pointer for mhn.defaults */ /* * Open up the draft file. @@ -309,6 +302,11 @@ attach(char *attachment_header_field_name, char *draft_file_name, * that specify attachments. Add a mhbuild MIME composition file for each. */ + if ((fp = fopen (p = etcpath ("mhn.defaults"), "r"))) { + readconfig ((struct node **) NULL, fp, p, 0); + fclose(fp); + } + rewind(draft_file); while (get_line() != EOF && *field != '\0' && *field != '-') { @@ -388,7 +386,7 @@ make_mime_composition_file_entry(char *file_name, int attachformat) { int binary; /* binary character found flag */ int c; /* current character */ - char cmd[MAXPATHLEN + 6]; /* file command buffer */ + char cmd[PATH_MAX + 6]; /* file command buffer */ char *content_type; /* mime content type */ FILE *fp; /* content and pipe file pointer */ struct node *np; /* context scan node pointer */ @@ -458,7 +456,7 @@ make_mime_composition_file_entry(char *file_name, int attachformat) (void)fprintf(composition_file, "#%s; name=\"%s\"; x-unix-mode=0%.3ho", content_type, ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1, (unsigned short)(st.st_mode & 0777)); - if (strlen(file_name) > MAXPATHLEN) { + if (strlen(file_name) > PATH_MAX) { clean_up_temporary_files(); adios((char *)0, "attachment file name `%s' too long.", file_name); } @@ -502,11 +500,14 @@ make_mime_composition_file_entry(char *file_name, int attachformat) least. */ (void) fprintf (composition_file, "#%s <>", content_type); } else { - /* Suppress Content-Id, insert simple Content-Disposition. */ + /* Suppress Content-Id, insert simple Content-Disposition + and Content-Description with filename. */ + p = strrchr(file_name, '/'); (void) fprintf (composition_file, - "#%s; name=\"%s\" <>{attachment}", + "#%s; name=\"%s\" <> [%s]{attachment}", content_type, - ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1); + (p == (char *)0) ? file_name : p + 1, + (p == (char *)0) ? file_name : p + 1); } break; @@ -519,11 +520,13 @@ make_mime_composition_file_entry(char *file_name, int attachformat) (void) fprintf (composition_file, "#%s <>", content_type); } else { /* Suppress Content-Id, insert Content-Disposition with - modification date. */ + modification date and Content-Description wtih filename. */ + p = strrchr(file_name, '/'); (void) fprintf (composition_file, - "#%s; name=\"%s\" <>{attachment; modification-date=\"%s\"}", + "#%s; name=\"%s\" <>[%s]{attachment; modification-date=\"%s\"}", content_type, - ((p = strrchr(file_name, '/')) == (char *)0) ? file_name : p + 1, + (p == (char *)0) ? file_name : p + 1, + (p == (char *)0) ? file_name : p + 1, dtime (&st.st_mtime, 0)); } @@ -676,7 +679,7 @@ splitmsg (char **vec, int vecp, char *drft, struct stat *st, int delay) time (&clock); snprintf (msgid, sizeof(msgid), "<%d.%ld@%s>", - (int) getpid(), (long) clock, LocalName()); + (int) getpid(), (long) clock, LocalName(1)); fseek (in, start, SEEK_SET); for (partno = 1; partno <= nparts; partno++) { @@ -978,14 +981,14 @@ anno (int fd, struct stat *st) sigaddset (&set, SIGINT); sigaddset (&set, SIGQUIT); sigaddset (&set, SIGTERM); - SIGPROCMASK (SIG_BLOCK, &set, &oset); + sigprocmask (SIG_BLOCK, &set, &oset); annoaux (fd); if (child_id == OK) _exit (0); /* reset the signal mask */ - SIGPROCMASK (SIG_SETMASK, &oset, &set); + sigprocmask (SIG_SETMASK, &oset, &set); chdir (cwd); break;