]> diplodocus.org Git - nmh/commitdiff
uip/inc.c: Delete POP3's -pack option for msh users.
authorRalph Corderoy <ralph@inputplus.co.uk>
Wed, 24 May 2017 18:22:02 +0000 (19:22 +0100)
committerRalph Corderoy <ralph@inputplus.co.uk>
Wed, 24 May 2017 18:22:02 +0000 (19:22 +0100)
inc(1)'s -pack option, only available with POP3 access, stored the
emails in a spool file instead of a folder.  The man page says this was
intended for msh(1) users, but msh was deleted in e6917522.  The spool
file was always in packf(1)'s MMDF format, no option of -mbox, and was a
rare producer of `map' files that indexed the spool file, again intended
for msh.  Removing -pack makes deletion of map files elsewhere in the
code easier.

h/dropsbr.h
man/inc.man
test/inc/test-pop
uip/dropsbr.c
uip/inc.c

index 1445b03863661804c94c32139297bb9a90108578..b90baa69e0f431932287e9efa0e1d0cc4ce8303e 100644 (file)
@@ -47,6 +47,5 @@ int mbx_read (FILE *, long, struct drop **);
 int mbx_copy (char *, int, int, int, int, char *, int);
 int mbx_size (int, off_t, off_t);
 int mbx_close (char *, int);
 int mbx_copy (char *, int, int, int, int, char *, int);
 int mbx_size (int, off_t, off_t);
 int mbx_close (char *, int);
-char *map_name (char *);
 int map_write (char *, int, int, long, off_t, off_t, long, int, int);
 int map_chk (char *, int, struct drop *, long, int);
 int map_write (char *, int, int, long, off_t, off_t, long, int, int);
 int map_chk (char *, int, struct drop *, long, int);
index 787588b57c7e67b20d3ef6a20dc2613cba2e05f3..61624195dfd40952b565175742d460eb19e7702b 100644 (file)
@@ -31,9 +31,6 @@ inc \- incorporate new mail to an nmh folder
 .IR portname/number ]
 .RB [ \-user
 .IR username ]
 .IR portname/number ]
 .RB [ \-user
 .IR username ]
-.RB [ \-pack
-.IR file ]
-.RB [ \-nopack ]
 .RB [ \-proxy
 .IR command ]
 .RB [ \-sasl " | " \-nosasl ]
 .RB [ \-proxy
 .IR command ]
 .RB [ \-sasl " | " \-nosasl ]
@@ -234,15 +231,6 @@ server.  The string
 .I %h
 in the command will be substituted by the hostname to connect to.
 .PP
 .I %h
 in the command will be substituted by the hostname to connect to.
 .PP
-When using POP, if the
-.B \-pack
-.I file
-switch is given then
-.B inc
-will
-.IR packf (1)
-the user's mail drop from the POP service host to the named file.
-.PP
 For debugging purposes, you may give the switch
 .BR \-snoop ,
 which will allow you to monitor the POP transaction.  If
 For debugging purposes, you may give the switch
 .BR \-snoop ,
 which will allow you to monitor the POP transaction.  If
@@ -385,8 +373,6 @@ is given.
 .TP
 \-width
 The width of the terminal.
 .TP
 \-width
 The width of the terminal.
-.TP
-\-nopack
 .PD
 .SH CONTEXT
 The folder into which messages are being incorporated will become the
 .PD
 .SH CONTEXT
 The folder into which messages are being incorporated will become the
index db21c31d66b2b58b37125f579ce37deff1046071..64620173fb4e09907b364435f807a6663cad6708 100755 (executable)
@@ -105,25 +105,7 @@ check "$testmessage" `mhpath +inbox 11` 'keep first'
 check "${testmessage}.2" `mhpath +inbox 12`
 check "${testmessage}.3" `mhpath +inbox 13`
 
 check "${testmessage}.2" `mhpath +inbox 12`
 check "${testmessage}.3" `mhpath +inbox 13`
 
-# check -pack
-pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
-                       "$TESTUSER" "$TESTPASS" "$testmessage"`
-
-touch "$MH_TEST_DIR/inc.mbox"
-run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 80 \
-          -pack $MH_TEST_DIR/inc.mbox" \
-       "Incorporating new mail into (null)...
-
-   1  12/17 No Such User       Hello<<Hey man, how's it going? . Hope you're do\
-i"
-run_test "inc -file $MH_TEST_DIR/inc.mbox -truncate -width 80" \
-       "Incorporating new mail into inbox...
-
-  11+ 12/17 No Such User       Hello<<Hey man, how's it going? . Hope you're do\
-i"
-
-check $testmessage `mhpath +inbox 11` 'keep first'
-rm -f "$MH_TEST_DIR/inc.mbox" "$MH_TEST_DIR/.inc.map" "$netrc"
+rm -f "$netrc"
 
 # check credentials: file
 # Redirect stdin so that inc doesn't wait on the user if it can't
 
 # check credentials: file
 # Redirect stdin so that inc doesn't wait on the user if it can't
@@ -139,18 +121,12 @@ echo "credentials: file:${netrc}" >>$MH
 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
                        "$TESTUSER" "$TESTPASS" "$testmessage"`
 
 pid=`"${MH_OBJ_DIR}/test/fakepop" "$testport" \
                        "$TESTUSER" "$TESTPASS" "$testmessage"`
 
-touch "$MH_TEST_DIR/inc.mbox"
-run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 65 \
-          -pack $MH_TEST_DIR/inc.mbox" \
-       "Incorporating new mail into (null)...
-
-   1  12/17 No Such User       Hello<<Hey man, how's it going? . " </dev/null
-run_test "inc -file $MH_TEST_DIR/inc.mbox -truncate -width 65" \
+run_test "inc -user ${TESTUSER} -host 127.0.0.1 -port $testport -width 65" \
        "Incorporating new mail into inbox...
 
   11+ 12/17 No Such User       Hello<<Hey man, how's it going? . " </dev/null
        "Incorporating new mail into inbox...
 
   11+ 12/17 No Such User       Hello<<Hey man, how's it going? . " </dev/null
-
 check $testmessage `mhpath +inbox 11`
 check $testmessage `mhpath +inbox 11`
-rm -f "$MH_TEST_DIR/inc.mbox" "$MH_TEST_DIR/.inc.map" "$netrc"
+
+rm -f "$netrc"
 
 exit ${failed:-0}
 
 exit ${failed:-0}
index c42e06e1ddc901de156d1f8e590e7ddbd2888723..1fdca2e264efe6a25fcda09988cba20e74fcdd72 100644 (file)
@@ -417,7 +417,7 @@ mbx_close (char *mailbox, int md)
  *     bb->bb_map = map_name (bb->bb_file);
  */
 
  *     bb->bb_map = map_name (bb->bb_file);
  */
 
-char *
+static char *
 map_name (char *file)
 {
     char *cp, *dp;
 map_name (char *file)
 {
     char *cp, *dp;
index 529be75e2749804e889911ef039863826ecc3f9c..f38883943fb7b2bbd02182bd8c714b8e04ca1453 100644 (file)
--- a/uip/inc.c
+++ b/uip/inc.c
@@ -60,8 +60,6 @@
     X("format string", 5, FMTSW) \
     X("host hostname", 0, HOSTSW) \
     X("user username", 0, USERSW) \
     X("format string", 5, FMTSW) \
     X("host hostname", 0, HOSTSW) \
     X("user username", 0, USERSW) \
-    X("pack file", 0, PACKSW) \
-    X("nopack", 0, NPACKSW) \
     X("port name/number", 0, PORTSW) \
     X("silent", 0, SILSW) \
     X("nosilent", 0, NSILSW) \
     X("port name/number", 0, PORTSW) \
     X("silent", 0, SILSW) \
     X("nosilent", 0, NSILSW) \
@@ -105,16 +103,9 @@ static int snoop = 0;
 
 extern char response[];
 
 
 extern char response[];
 
-static int size;
-static long pos;
-
-static int mbx_style = MMDF_FORMAT;
-static int pd = NOTOK;
-
 static long start;
 static long stop;
 
 static long start;
 static long stop;
 
-static char *packfile = NULL;
 static FILE *pf = NULL;
 
 /* This is an attempt to simplify things by putting all the
 static FILE *pf = NULL;
 
 /* This is an attempt to simplify things by putting all the
@@ -166,12 +157,8 @@ static FILE *in;
 /*
  * prototypes
  */
 /*
  * prototypes
  */
-char *map_name(char *);
-
 static void inc_done(int) NORETURN;
 static int pop_action(char *);
 static void inc_done(int) NORETURN;
 static int pop_action(char *);
-static int pop_pack(char *);
-static int map_count(void);
 
 int
 maildir_srt(const void *va, const void *vb)
 
 int
 maildir_srt(const void *va, const void *vb)
@@ -338,14 +325,6 @@ main (int argc, char **argv)
                    adios (NULL, "missing argument to %s", argp[-2]);
                continue;
 
                    adios (NULL, "missing argument to %s", argp[-2]);
                continue;
 
-           case PACKSW:
-               if (!(packfile = *argp++) || *packfile == '-')
-                   adios (NULL, "missing argument to %s", argp[-2]);
-               continue;
-           case NPACKSW:
-               packfile = NULL;
-               continue;
-
            case SNOOPSW:
                snoop++;
                continue;
            case SNOOPSW:
                snoop++;
                continue;
@@ -533,10 +512,6 @@ main (int argc, char **argv)
        newmail = cp;
     }
 
        newmail = cp;
     }
 
-    /* skip the folder setup */
-    if ((inc_type == INC_POP) && packfile)
-       goto go_to_it;
-
     if (!context_find ("path"))
        free (path ("./", TFOLDER));
     if (!folder)
     if (!context_find ("path"))
        free (path ("./", TFOLDER));
     if (!folder)
@@ -561,8 +536,6 @@ main (int argc, char **argv)
     if (!(mp = folder_read (folder, 0)))
        adios (NULL, "unable to read folder %s", folder);
 
     if (!(mp = folder_read (folder, 0)))
        adios (NULL, "unable to read folder %s", folder);
 
-go_to_it:
-
     if (inc_type == INC_FILE && Maildir == NULL) {
        if (access (newmail, W_OK) != NOTOK) {
            locked++;
     if (inc_type == INC_FILE && Maildir == NULL) {
        if (access (newmail, W_OK) != NOTOK) {
            locked++;
@@ -623,65 +596,26 @@ go_to_it:
      */
     if (inc_type == INC_POP) {
        int i;
      */
     if (inc_type == INC_POP) {
        int i;
-       if (packfile) {
-           packfile = path (packfile, TFILE);
-           if (stat (packfile, &st) == NOTOK) {
-               if (errno != ENOENT)
-                   adios (packfile, "error on file");
-               cp = concat ("Create file \"", packfile, "\"? ", NULL);
-               if (noisy && !read_yes_or_no_if_tty (cp))
-                   done (1);
-               free (cp);
-           }
-           msgnum = map_count ();
-           if ((pd = mbx_open (packfile, mbx_style, getuid(), getgid(), m_gmprot()))
-               == NOTOK)
-               adios (packfile, "unable to open");
-           if ((pf = fdopen (pd, "w+")) == NULL)
-               adios (NULL, "unable to fdopen %s", packfile);
-       } else {
-           hghnum = msgnum = mp->hghmsg;
-       }
 
 
+        hghnum = msgnum = mp->hghmsg;
        for (i = 1; i <= nmsgs; i++) {
            charstring_t scanl = NULL;
 
            msgnum++;
        for (i = 1; i <= nmsgs; i++) {
            charstring_t scanl = NULL;
 
            msgnum++;
-           if (packfile) {
-                size_t len;
-
-               fseek (pf, 0L, SEEK_CUR);
-               pos = ftell (pf);
-               size = 0;
-                len = strlen(mmdlm1);
-               if (fwrite(mmdlm1, 1, len, pf) < len)
-                   advise (mmdlm1, "fwrite");
-               start = ftell (pf);
-
-               if (pop_retr (i, pop_pack) == NOTOK)
-                   adios (NULL, "%s", response);
-
-               fseek (pf, 0L, SEEK_CUR);
-               stop = ftell (pf);
-               if (fflush (pf))
-                   adios (packfile, "write error on");
-               fseek (pf, start, SEEK_SET);
-           } else {
-               cp = mh_xstrdup(m_name (msgnum));
-               if ((pf = fopen (cp, "w+")) == NULL)
-                   adios (cp, "unable to write");
-               chmod (cp, m_gmprot ());
-               start = stop = 0L;
-
-               if (pop_retr (i, pop_action) == NOTOK)
-                   adios (NULL, "%s", response);
-
-               if (fflush (pf))
-                   adios (cp, "write error on");
-               fseek (pf, 0L, SEEK_SET);
-           }
+            cp = mh_xstrdup(m_name (msgnum));
+            if ((pf = fopen (cp, "w+")) == NULL)
+                adios (cp, "unable to write");
+            chmod (cp, m_gmprot ());
+            start = stop = 0L;
+
+            if (pop_retr (i, pop_action) == NOTOK)
+                adios (NULL, "%s", response);
+
+            if (fflush (pf))
+                adios (cp, "write error on");
+            fseek (pf, 0L, SEEK_SET);
            switch (incerr = scan (pf, msgnum, 0, nfs, width,
            switch (incerr = scan (pf, msgnum, 0, nfs, width,
-                             packfile ? 0 : msgnum == mp->hghmsg + 1 && chgflag,
+                             msgnum == mp->hghmsg + 1 && chgflag,
                              1, NULL, stop - start, noisy, &scanl)) {
            case SCNEOF:
                printf ("%*d  empty\n", DMAXFOLDER, msgnum);
                              1, NULL, stop - start, noisy, &scanl)) {
            case SCNEOF:
                printf ("%*d  empty\n", DMAXFOLDER, msgnum);
@@ -708,30 +642,14 @@ go_to_it:
            }
            charstring_free (scanl);
 
            }
            charstring_free (scanl);
 
-           if (packfile) {
-                size_t len;
-
-               fseek (pf, stop, SEEK_SET);
-                len = strlen(mmdlm2);
-               if (fwrite(mmdlm2, 1, len, pf) < len)
-                   advise (mmdlm2, "fwrite");
-               if (fflush (pf) || ferror (pf)) {
-                   int e = errno;
-                   pop_quit ();
-                   errno = e;
-                   adios (packfile, "write error on");
-               }
-               map_write (packfile, pd, 0, 0L, start, stop, pos, size, noisy);
-           } else {
-               if (ferror(pf) || fclose (pf)) {
-                   int e = errno;
-                   (void) m_unlink (cp);
-                   pop_quit ();
-                   errno = e;
-                   adios (cp, "write error on");
-               }
-               free (cp);
-           }
+            if (ferror(pf) || fclose (pf)) {
+                int e = errno;
+                (void) m_unlink (cp);
+                pop_quit ();
+                errno = e;
+                adios (cp, "write error on");
+            }
+            free (cp);
 
            if (trnflag && pop_dele (i) == NOTOK)
                adios (NULL, "%s", response);
 
            if (trnflag && pop_dele (i) == NOTOK)
                adios (NULL, "%s", response);
@@ -741,10 +659,6 @@ go_to_it:
 
        if (pop_quit () == NOTOK)
            adios (NULL, "%s", response);
 
        if (pop_quit () == NOTOK)
            adios (NULL, "%s", response);
-       if (packfile) {
-           mbx_close (packfile, pd);
-           pd = NOTOK;
-       }
     }
 
     /*
     }
 
     /*
@@ -913,9 +827,6 @@ go_to_it:
     if (noisy)
        fflush (stdout);
 
     if (noisy)
        fflush (stdout);
 
-    if ((inc_type == INC_POP) && packfile)
-       done (0);
-
     /*
      * truncate file we are incorporating from
      */
     /*
      * truncate file we are incorporating from
      */
@@ -929,7 +840,6 @@ go_to_it:
                    close (newfd);
                else
                    admonish (newmail, "error zero'ing");
                    close (newfd);
                else
                    admonish (newmail, "error zero'ing");
-               (void) m_unlink(map_name(newmail));
            }
        } else {
            if (noisy)
            }
        } else {
            if (noisy)
@@ -1009,8 +919,6 @@ static void NORETURN
 inc_done (int status)
 {
     done = exit;
 inc_done (int status)
 {
     done = exit;
-    if (packfile && pd != NOTOK)
-       mbx_close (packfile, pd);
     if (locked)
     {
         GETGROUPPRIVS();
     if (locked)
     {
         GETGROUPPRIVS();
@@ -1027,39 +935,3 @@ pop_action (char *s)
     stop += strlen (s) + 1;
     return 0;  /* Is return value used?  This was missing before 1999-07-15. */
 }
     stop += strlen (s) + 1;
     return 0;  /* Is return value used?  This was missing before 1999-07-15. */
 }
-
-static int
-pop_pack (char *s)
-{
-    int j;
-    char buffer[BUFSIZ];
-
-    snprintf (buffer, sizeof(buffer), "%s\n", s);
-    for ( ; (j = stringdex (mmdlm1, buffer)) >= 0; buffer[j]++)
-       continue;
-    for ( ; (j = stringdex (mmdlm2, buffer)) >= 0; buffer[j]++)
-       continue;
-    fputs (buffer, pf);
-    size += strlen (buffer) + 1;
-    return 0;  /* Is return value used?  This was missing before 1999-07-15. */
-}
-
-static int
-map_count (void)
-{
-    int md;
-    char *cp;
-    struct drop d;
-    struct stat st;
-
-    if (stat (packfile, &st) == NOTOK)
-       return 0;
-    if ((md = open (cp = map_name (packfile), O_RDONLY)) == NOTOK
-           || map_chk (cp, md, &d, (long) st.st_size, 1)) {
-       if (md != NOTOK)
-           close (md);
-       return 0;
-    }
-    close (md);
-    return (d.d_id);
-}