]> 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 1445b03..b90baa6 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 787588b..6162419 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 db21c31..6462017 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 c42e06e..1fdca2e 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 529be75..f388839 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);
-}