Remove caching of external MIME parts.
[mmh] / uip / mhparse.c
index 2ee95f4..01170a1 100644 (file)
@@ -23,10 +23,6 @@ extern int endian;  /* mhmisc.c */
 
 extern pid_t xpid;  /* mhshowsbr.c  */
 
-/* cache policies */
-extern int rcachesw;  /* mhcachesbr.c */
-extern int wcachesw;  /* mhcachesbr.c */
-
 /*
 ** Directory to place temp files.  This must
 ** be set before these routines are called.
@@ -80,9 +76,6 @@ struct k2v SubApplication[] = {
 };
 
 
-/* mhcachesbr.c */
-int find_cache(CT, int, int *, char *, char *, int);
-
 /* mhmisc.c */
 int part_ok(CT, int);
 int type_ok(CT, int);
@@ -2270,8 +2263,6 @@ clean_up:
 static int
 openExternal(CT ct, CT cb, CE ce, char **file, int *fd)
 {
-       char cachefile[BUFSIZ];
-
        if (ce->ce_fp) {
                fseek(ce->ce_fp, 0L, SEEK_SET);
                goto ready_already;
@@ -2286,17 +2277,6 @@ openExternal(CT ct, CT cb, CE ce, char **file, int *fd)
                goto ready_already;
        }
 
-       if (find_cache(ct, rcachesw, (int *) 0, cb->c_id,
-                       cachefile, sizeof(cachefile)) != NOTOK) {
-               if ((ce->ce_fp = fopen(cachefile, "r"))) {
-                       ce->ce_file = getcpy(cachefile);
-                       ce->ce_unlink = 0;
-                       goto ready_already;
-               } else {
-                       admonish(cachefile, "unable to fopen for reading");
-               }
-       }
-
        return OK;
 
 ready_already:
@@ -2319,8 +2299,7 @@ InitFile(CT ct)
 static int
 openFile(CT ct, char **file)
 {
-       int fd, cachetype;
-       char cachefile[BUFSIZ];
+       int fd;
        struct exbody *e = ct->c_ctexbody;
        CE ce = ct->c_cefile;
 
@@ -2346,39 +2325,6 @@ openFile(CT ct, char **file)
                return NOTOK;
        }
 
-       if ((!e->eb_permission ||
-                       mh_strcasecmp(e->eb_permission, "read-write")) &&
-                       find_cache(NULL, wcachesw, &cachetype,
-                       e->eb_content->c_id, cachefile, sizeof(cachefile))
-                       != NOTOK) {
-               int mask;
-               FILE *fp;
-
-               mask = umask(cachetype ? ~m_gmprot() : 0222);
-               if ((fp = fopen(cachefile, "w"))) {
-                       int cc;
-                       char buffer[BUFSIZ];
-                       FILE *gp = ce->ce_fp;
-
-                       fseek(gp, 0L, SEEK_SET);
-
-                       while ((cc = fread(buffer, sizeof(*buffer),
-                                       sizeof(buffer), gp)) > 0)
-                               fwrite(buffer, sizeof(*buffer), cc, fp);
-                       fflush(fp);
-
-                       if (ferror(gp)) {
-                               admonish(ce->ce_file, "error reading");
-                               unlink(cachefile);
-                       } else if (ferror(fp)) {
-                               admonish(cachefile, "error writing");
-                               unlink(cachefile);
-                       }
-                       fclose(fp);
-               }
-               umask(mask);
-       }
-
        fseek(ce->ce_fp, 0L, SEEK_SET);
        *file = ce->ce_file;
        return fileno(ce->ce_fp);
@@ -2398,10 +2344,10 @@ InitFTP(CT ct)
 static int
 openFTP(CT ct, char **file)
 {
-       int cachetype, caching, fd;
+       int fd;
        int len, buflen;
        char *bp, *ftp, *user, *pass;
-       char buffer[BUFSIZ], cachefile[BUFSIZ];
+       char buffer[BUFSIZ];
        struct exbody *e;
        CE ce;
        static char *username = NULL;
@@ -2491,23 +2437,9 @@ openFTP(CT ct, char **file)
        }
 
        ce->ce_unlink = (*file == NULL);
-       caching = 0;
-       cachefile[0] = '\0';
-       if ((!e->eb_permission ||
-                       mh_strcasecmp(e->eb_permission, "read-write")) &&
-                       find_cache(NULL, wcachesw, &cachetype,
-                       e->eb_content->c_id, cachefile, sizeof(cachefile))
-                       != NOTOK) {
-               if (*file == NULL) {
-                       ce->ce_unlink = 0;
-                       caching = 1;
-               }
-       }
 
        if (*file)
                ce->ce_file = getcpy(*file);
-       else if (caching)
-               ce->ce_file = getcpy(cachefile);
        else
                ce->ce_file = getcpy(m_mktemp(tmp, NULL, NULL));
 
@@ -2554,38 +2486,6 @@ openFTP(CT ct, char **file)
                break;
        }
 
-       if (cachefile[0]) {
-               if (caching)
-                       chmod(cachefile, cachetype ? m_gmprot() : 0444);
-               else {
-                       int mask;
-                       FILE *fp;
-
-                       mask = umask(cachetype ? ~m_gmprot() : 0222);
-                       if ((fp = fopen(cachefile, "w"))) {
-                               int cc;
-                               FILE *gp = ce->ce_fp;
-
-                               fseek(gp, 0L, SEEK_SET);
-
-                               while ((cc= fread(buffer, sizeof(*buffer),
-                                               sizeof(buffer), gp)) > 0)
-                                       fwrite(buffer, sizeof(*buffer), cc, fp);
-                               fflush(fp);
-
-                               if (ferror(gp)) {
-                                       admonish(ce->ce_file, "error reading");
-                                       unlink(cachefile);
-                               } else if (ferror(fp)) {
-                                       admonish(cachefile, "error writing");
-                                       unlink(cachefile);
-                               }
-                               fclose(fp);
-                       }
-                       umask(mask);
-               }
-       }
-
        fseek(ce->ce_fp, 0L, SEEK_SET);
        *file = ce->ce_file;
        return fileno(ce->ce_fp);