[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated
From: |
Ken Hornstein |
Subject: |
[Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated. 55795751a1513b7018b38c6c50c5bccc710feff2 |
Date: |
Fri, 06 Jan 2012 15:48:34 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The nmh Mail Handling System".
The branch, master has been updated
via 55795751a1513b7018b38c6c50c5bccc710feff2 (commit)
via 9680f38826145311f8720dab2d19d3796e8514ee (commit)
via aac9670c207aaefb17521c2ce4db39cb8893f660 (commit)
via fd83882889b45c597fd051705147e8bc0ba0890d (commit)
via a51ad22240aacc586d164bf9b79b9f0380fc8992 (commit)
via c152db5d6a64036d4e51ec75c93b6accbb1bfa13 (commit)
via 30542ddcbeb83a58e5802ec3421516ed9c252991 (commit)
from 58af02b57c4d2cc732fea0f5ed86e02789d92438 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=55795751a1513b7018b38c6c50c5bccc710feff2
commit 55795751a1513b7018b38c6c50c5bccc710feff2
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:48:03 2012 -0500
Garbage collect all of the builtin ftp client support.
diff --git a/acconfig.h b/acconfig.h
index a326761..a6d8742 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,15 +26,6 @@
/* #define REALLYDUMB 1 */
/*
- * Compile simple ftp client into mhn. This will be used by mhn
- * for ftp access unless you have specified another access method
- * in your .mh_profile or mhn.defaults. Use the "mhn-access-ftp"
- * profile entry to override this. Check mhn(1) man page for
- * details.
- */
-#define BUILTIN_FTP 1
-
-/*
* If you enable POP support, this is the the port name that nmh will use.
Make
* sure this is defined in your /etc/services file (or its NIS/NIS+
equivalent).
* If you are using KPOP, you will need to change this to "kpop" unless you
want
diff --git a/docs/pending-release-notes b/docs/pending-release-notes
index 14ad579..83c39ee 100644
--- a/docs/pending-release-notes
+++ b/docs/pending-release-notes
@@ -8,3 +8,7 @@ Things to add to the release notes for the next full release:
- Old code enabled by the UCI preprocessor definition has been
garbage-collected.
- LOCKDIR is now configurable via --enable-lockdir
+- All configuration options that were formerly only adjustable via editing
+ config.h have been removed.
+- Support for the built-in ftp client (used when dealing with external body
+ message parts in MIME messages) has been removed.
diff --git a/h/arpa_ftp.h b/h/arpa_ftp.h
deleted file mode 100644
index 64532b9..0000000
--- a/h/arpa_ftp.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1983, 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)ftp.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _FTP_H_
-#define _FTP_H_
-
-/* Definitions for FTP; see RFC-765. */
-
-/*
- * Reply codes.
- */
-#define PRELIM 1 /* positive preliminary */
-#define COMPLETE 2 /* positive completion */
-#define CONTINUE 3 /* positive intermediate */
-#define TRANSIENT 4 /* transient negative completion */
-#define ERROR 5 /* permanent negative completion */
-
-/*
- * Type codes
- */
-#define TYPE_A 1 /* ASCII */
-#define TYPE_E 2 /* EBCDIC */
-#define TYPE_I 3 /* image */
-#define TYPE_L 4 /* local byte size */
-
-#ifdef FTP_NAMES
-char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };
-#endif
-
-/*
- * Form codes
- */
-#define FORM_N 1 /* non-print */
-#define FORM_T 2 /* telnet format effectors */
-#define FORM_C 3 /* carriage control (ASA) */
-#ifdef FTP_NAMES
-char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };
-#endif
-
-/*
- * Structure codes
- */
-#define STRU_F 1 /* file (no record structure) */
-#define STRU_R 2 /* record structure */
-#define STRU_P 3 /* page structure */
-#ifdef FTP_NAMES
-char *strunames[] = {"0", "File", "Record", "Page" };
-#endif
-
-/*
- * Mode types
- */
-#define MODE_S 1 /* stream */
-#define MODE_B 2 /* block */
-#define MODE_C 3 /* compressed */
-#ifdef FTP_NAMES
-char *modenames[] = {"0", "Stream", "Block", "Compressed" };
-#endif
-
-/*
- * Record Tokens
- */
-#define REC_ESC '\377' /* Record-mode Escape */
-#define REC_EOR '\001' /* Record-mode End-of-Record */
-#define REC_EOF '\002' /* Record-mode End-of-File */
-
-/*
- * Block Header
- */
-#define BLK_EOR 0x80 /* Block is End-of-Record */
-#define BLK_EOF 0x40 /* Block is End-of-File */
-#define BLK_ERRORS 0x20 /* Block is suspected of containing errors */
-#define BLK_RESTART 0x10 /* Block is Restart Marker */
-
-#define BLK_BYTECOUNT 2 /* Bytes in this block */
-
-#endif /* !_FTP_H_ */
diff --git a/uip/Makefile.in b/uip/Makefile.in
index 5b5ed02..d676db0 100644
--- a/uip/Makefile.in
+++ b/uip/Makefile.in
@@ -68,7 +68,7 @@ SCMDS = inc
# source files
SRCS = ali.c aliasbr.c anno.c annosbr.c ap.c burst.c comp.c \
conflict.c dist.c distsbr.c dp.c dropsbr.c flist.c fmtdump.c \
- folder.c forw.c ftpsbr.c inc.c install-mh.c mark.c md5.c mhbuild.c \
+ folder.c forw.c inc.c install-mh.c mark.c md5.c mhbuild.c \
mhbuildsbr.c mhcachesbr.c mhfree.c mhl.c mhlist.c mhlistsbr.c \
mhlsbr.c mhmail.c mhmisc.c mhn.c mhoutsbr.c mhparam.c mhparse.c \
mhpath.c mhshow.c mhshowsbr.c mhstore.c mhstoresbr.c mhtest.c \
@@ -135,20 +135,20 @@ install-mh: install-mh.o $(LOCALLIBS)
mark: mark.o $(LOCALLIBS)
$(LINK) mark.o $(LINKLIBS)
-mhbuild: mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o mhmisc.o
mhfree.o mhparse.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o
mhmisc.o mhfree.o mhparse.o ftpsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhbuild: mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o mhmisc.o
mhfree.o mhparse.o termsbr.o md5.o $(LOCALLIBS)
+ $(LINK) mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o
mhmisc.o mhfree.o mhparse.o md5.o $(LINKLIBS) $(TERMLIB)
mhl: mhl.o mhlsbr.o termsbr.o $(LOCALLIBS)
$(LINK) mhl.o mhlsbr.o termsbr.o $(LINKLIBS) $(TERMLIB)
-mhlist: mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o ftpsbr.o
termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o
ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhlist: mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o
termsbr.o md5.o $(LOCALLIBS)
+ $(LINK) mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o
termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
mhmail: mhmail.o $(LOCALLIBS)
$(LINK) mhmail.o $(LINKLIBS)
-mhn: mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhstoresbr.o mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhn: mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o
mhmisc.o mhfree.o termsbr.o md5.o $(LOCALLIBS)
+ $(LINK) mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhstoresbr.o mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
mhparam: mhparam.o $(LOCALLIBS)
$(LINK) mhparam.o $(LINKLIBS)
@@ -156,14 +156,14 @@ mhparam: mhparam.o $(LOCALLIBS)
mhpath: mhpath.o $(LOCALLIBS)
$(LINK) mhpath.o $(LINKLIBS)
-mhshow: mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhmisc.o
mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhshow: mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhmisc.o
mhfree.o termsbr.o md5.o $(LOCALLIBS)
+ $(LINK) mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
-mhstore: mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhstoresbr.o mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhstore: mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o
mhmisc.o mhfree.o termsbr.o md5.o $(LOCALLIBS)
+ $(LINK) mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o
mhstoresbr.o mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
-mhtest: mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o ftpsbr.o
termsbr.o md5.o $(LOCALLIBS)
- $(LINK) mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o
ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhtest: mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o termsbr.o
md5.o $(LOCALLIBS)
+ $(LINK) mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o
termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
msgchk: msgchk.o $(POPLIB) $(LOCALLIBS)
$(LINK) msgchk.o $(POPLIB) $(LINKLIBS)
diff --git a/uip/ftpsbr.c b/uip/ftpsbr.c
deleted file mode 100644
index 0ffca35..0000000
--- a/uip/ftpsbr.c
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * ftpsbr.c -- simple FTP client library
- *
- * 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.
- */
-
-#include <h/mh.h>
-#include <h/mime.h>
-
-#include "h/arpa_ftp.h"
-
-#define v_debug debugsw
-#define v_verbose verbosw
-
-static int ftp_fd = NOTOK;
-static int data_fd = NOTOK;
-
-static int v_noise;
-
-extern int v_debug;
-extern int v_verbose;
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <errno.h>
-
-#define start_tcp_client(res) \
- socket (res->ai_family, res->ai_socktype, res->ai_protocol)
-
-#define join_tcp_server(fd, sock, len) \
- connect ((fd), (struct sockaddr *) (sock), len)
-
-/*
- * prototypes
- */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-int ftp_trans (char *, char *, char *, char *, char *, char *, char *, int,
int);
-
-/*
- * static prototypes
- */
-static int start_tcp_server (struct sockaddr_in *, int, int, int);
-static void _asnprintf (char *, int, char *, va_list);
-static int ftp_quit (void);
-static int ftp_read (char *, char *, char *, int);
-static int initconn (void);
-static int dataconn (void);
-static int command (int arg1, ...);
-static int vcommand (int, va_list);
-static int getreply (int, int);
-
-
-static int
-start_tcp_server (struct sockaddr_in *sock, int backlog, int opt1, int opt2)
-{
- int eindex, sd;
-
- if ((sd = socket (AF_INET, SOCK_STREAM, 0)) == NOTOK)
- return NOTOK;
-
- if (bind (sd, (struct sockaddr *) sock, sizeof *sock) == NOTOK) {
- eindex = errno;
- close (sd);
- errno = eindex;
- } else {
- listen (sd, backlog);
- }
-
- return sd;
-}
-
-
-static int __len__;
-
-#define join_tcp_client(fd,sock) \
- accept ((fd), (struct sockaddr *) (sock), \
- (__len__ = sizeof *(sock), &__len__))
-
-#define read_tcp_socket read
-#define write_tcp_socket write
-#define close_tcp_socket close
-
-static void
-_asnprintf (char *bp, int len_bp, char *what, va_list ap)
-{
- int eindex, len;
- char *fmt;
-
- eindex = errno;
-
- *bp = '\0';
- fmt = va_arg (ap, char *);
-
- if (fmt) {
- vsnprintf(bp, len_bp, fmt, ap);
- len = strlen(bp);
- bp += len;
- len_bp -= len;
- }
-
- if (what) {
- char *s;
-
- if (*what) {
- snprintf (bp, len_bp, " %s: ", what);
- len = strlen (bp);
- bp += len;
- len_bp -= len;
- }
- if ((s = strerror(eindex)))
- strncpy (bp, s, len_bp);
- else
- snprintf (bp, len_bp, "Error %d", eindex);
- bp += strlen (bp);
- }
-
- errno = eindex;
-}
-
-
-int
-ftp_get (char *host, char *user, char *password, char *cwd,
- char *remote, char *local, int ascii, int stayopen)
-{
- return ftp_trans (host, user, password, cwd, remote, local,
- "RETR", ascii, stayopen);
-}
-
-
-int
-ftp_trans (char *host, char *user, char *password, char *cwd, char *remote,
- char *local, char *cmd, int ascii, int stayopen)
-{
- int result;
-
- if (stayopen <= 0) {
- result = ftp_quit ();
- if (host == NULL)
- return result;
- }
-
- if (ftp_fd == NOTOK) {
- struct addrinfo hints, *res;
-
- memset(&hints, 0, sizeof(hints));
-#ifdef AI_ADDRCONFIG
- hints.ai_flags = AI_ADDRCONFIG;
-#endif
- hints.ai_family = PF_INET;
- hints.ai_socktype = SOCK_STREAM;
-
- result = getaddrinfo(host, "ftp", &hints, &res);
-
- if (result) {
- fprintf(stderr, "%s/ftp: %s\n", host, gai_strerror(result));
- return NOTOK;
- }
-
- if ((ftp_fd = start_tcp_client (res)) == NOTOK) {
- perror (host);
- freeaddrinfo(res);
- return NOTOK;
- }
- if (join_tcp_server (ftp_fd, res->ai_addr, res->ai_addrlen) == NOTOK) {
- perror (host);
- freeaddrinfo(res);
- close_tcp_socket (ftp_fd), ftp_fd = NOTOK;
- return NOTOK;
- }
- freeaddrinfo(res);
- getreply (1, 0);
-
- if (v_verbose) {
- fprintf (stdout, "Connected to %s\n", host);
- fflush (stdout);
- }
-
- if (user) {
- if ((result = command (0, "USER %s", user)) == CONTINUE)
- result = command (1, "PASS %s", password);
- if (result != COMPLETE) {
- result = NOTOK;
- goto out;
- }
- }
-
- if (remote == NULL)
- return OK;
- }
-
- if (cwd && ((result = command (0, "CWD %s", cwd)) != COMPLETE
- && result != CONTINUE)) {
- result = NOTOK;
- goto out;
- }
-
- if (command (1, ascii ? "TYPE A" : "TYPE I") != COMPLETE) {
- result = NOTOK;
- goto out;
- }
-
- result = ftp_read (remote, local, cmd, ascii);
-
-out: ;
- if (result != OK || !stayopen)
- ftp_quit ();
-
- return result;
-}
-
-
-static int
-ftp_quit (void)
-{
- int n;
-
- if (ftp_fd == NOTOK)
- return OK;
-
- n = command (1, "QUIT");
- close_tcp_socket (ftp_fd), ftp_fd = NOTOK;
- return (n == 0 || n == COMPLETE ? OK : NOTOK);
-}
-
-static int
-ftp_read (char *remote, char *local, char *cmd, int ascii)
-{
- int istdio = 0, istore;
- register int cc;
- int expectingreply = 0;
- char buffer[BUFSIZ];
- FILE *fp = NULL;
-
- if (initconn () == NOTOK)
- goto bad;
-
- v_noise = v_verbose;
- if (command (-1, *remote ? "%s %s" : "%s", cmd, remote) != PRELIM)
- goto bad;
-
- expectingreply++;
- if (dataconn () == NOTOK) {
-bad: ;
- if (fp && !istdio)
- fclose (fp);
- if (data_fd != NOTOK)
- close_tcp_socket (data_fd), data_fd = NOTOK;
- if (expectingreply)
- getreply (-2, 0);
-
- return NOTOK;
- }
-
- istore = !strcmp (cmd, "STOR");
-
- if ((istdio = !strcmp (local, "-")))
- fp = istore ? stdin : stdout;
- else
- if ((fp = fopen (local, istore ? "r" : "w")) == NULL) {
- perror (local);
- goto bad;
- }
-
- if (istore) {
- if (ascii) {
- int c;
- FILE *out;
-
- if (!(out = fdopen (data_fd, "w"))) {
- perror ("fdopen");
- goto bad;
- }
-
- while ((c = getc (fp)) != EOF) {
- if (c == '\n')
- putc ('\r', out);
- if (putc (c, out) == EOF) {
- perror ("putc");
- fclose (out);
- data_fd = NOTOK;
- goto bad;
- }
- }
-
- fclose (out);
- data_fd = NOTOK;
- }
- else {
- while ((cc = fread (buffer, sizeof *buffer, sizeof buffer, fp)) > 0)
- if (write_tcp_socket (data_fd, buffer, cc) != cc) {
- perror ("write_tcp_socket");
- goto bad;
- }
-
- close_tcp_socket (data_fd), data_fd = NOTOK;
- }
- }
- else {
- if (ascii) {
- int c;
- FILE *in;
-
- if (!(in = fdopen (data_fd, "r"))) {
- perror ("fdopen");
- goto bad;
- }
-
- while ((c = getc (in)) != EOF) {
- if (c == '\r')
- switch (c = getc (in)) {
- case EOF:
- case '\0':
- c = '\r';
- break;
-
- case '\n':
- break;
-
- default:
- putc ('\r', fp);
- break;
- }
-
- if (putc (c, fp) == EOF) {
- perror ("putc");
- fclose (in);
- data_fd = NOTOK;
- goto bad;
- }
- }
-
- fclose (in);
- data_fd = NOTOK;
- }
- else {
- while ((cc = read_tcp_socket (data_fd, buffer, sizeof buffer)) > 0)
- if (fwrite (buffer, sizeof *buffer, cc, fp) == 0) {
- perror ("fwrite");
- goto bad;
- }
- if (cc < 0) {
- perror ("read_tcp_socket");
- goto bad;
- }
-
- close_tcp_socket (data_fd), data_fd = NOTOK;
- }
- }
-
- if (!istdio)
- fclose (fp);
-
- v_noise = v_verbose;
- return (getreply (1, 0) == COMPLETE ? OK : NOTOK);
-}
-
-
-#define UC(b) (((int) b) & 0xff)
-
-static int
-initconn (void)
-{
- int len;
- register char *a, *p;
- struct sockaddr_in in_socket;
-
- if (getsockname (ftp_fd, (struct sockaddr *) &in_socket,
- (len = sizeof(in_socket), &len)) == NOTOK) {
- perror ("getsockname");
- return NOTOK;
- }
- in_socket.sin_port = 0;
- if ((data_fd = start_tcp_server (&in_socket, 1, 0, 0)) == NOTOK) {
- perror ("start_tcp_server");
- return NOTOK;
- }
-
- if (getsockname (data_fd, (struct sockaddr *) &in_socket,
- (len = sizeof in_socket, &len)) == NOTOK) {
- perror ("getsockname");
- return NOTOK;
- }
-
- a = (char *) &in_socket.sin_addr;
- p = (char *) &in_socket.sin_port;
-
- if (command (1, "PORT %d,%d,%d,%d,%d,%d",
- UC(a[0]), UC(a[1]), UC(a[2]), UC(a[3]),
- UC(p[0]), UC(p[1])) == COMPLETE)
- return OK;
-
- return NOTOK;
-}
-
-static int
-dataconn (void)
-{
- int fd;
- struct sockaddr_in in_socket;
-
- if ((fd = join_tcp_client (data_fd, &in_socket)) == NOTOK) {
- perror ("join_tcp_client");
- return NOTOK;
- }
- close_tcp_socket (data_fd);
- data_fd = fd;
-
- return OK;
-}
-
-
-static int
-command (int arg1, ...)
-{
- int val;
- va_list ap;
-
- va_start (ap, arg1);
- val = vcommand (arg1, ap);
- va_end (ap);
-
- return val;
-}
-
-static int
-vcommand (int complete, va_list ap)
-{
- int len;
- char buffer[BUFSIZ];
-
- if (ftp_fd == NOTOK)
- return NOTOK;
-
- _asnprintf (buffer, sizeof(buffer), NULL, ap);
- if (v_debug)
- fprintf (stderr, "<--- %s\n", buffer);
-
- strcat (buffer, "\r\n");
- len = strlen (buffer);
-
- if (write_tcp_socket (ftp_fd, buffer, len) != len) {
- perror ("write_tcp_socket");
- return NOTOK;
- }
-
- return (getreply (complete, !strcmp (buffer, "QUIT")));
-}
-
-
-static int
-getreply (int complete, int expecteof)
-{
- for (;;) {
- register int code, dig, n;
- int continuation;
- register char *bp;
- char buffer[BUFSIZ];
-
- code = dig = n = continuation = 0;
- bp = buffer;
-
- for (;;) {
- unsigned char c;
-
- if (read_tcp_socket (ftp_fd, &c, 1) < 1) {
- if (expecteof)
- return OK;
-
- perror ("read_tcp_socket");
- return DONE;
- }
- if (c == '\n')
- break;
- *bp++ = c != '\r' ? c : '\0';
-
- dig++;
- if (dig < 4) {
- if (isdigit(c))
- code = code * 10 + (c - '0');
- else /* XXX: naughty FTP... */
- if (isspace (c))
- continuation++;
- }
- else
- if (dig == 4 && c == '-')
- continuation++;
- if (n == 0)
- n = c;
- }
-
- if (v_debug)
- fprintf (stderr, "---> %s\n", buffer);
- if (continuation)
- continue;
-
- n -= '0';
-
- if (v_noise) {
- fprintf (stdout, "%s\n", buffer);
- fflush (stdout);
- v_noise = 0;
- }
- else
- if ((complete == -1 && n != PRELIM)
- || (complete == 0 && n != CONTINUE && n != COMPLETE)
- || (complete == 1 && n != COMPLETE))
- fprintf (stderr, "%s\n", buffer);
-
- return n;
- }
-}
diff --git a/uip/mhbuildsbr.c b/uip/mhbuildsbr.c
index a36941f..ea2bcd6 100644
--- a/uip/mhbuildsbr.c
+++ b/uip/mhbuildsbr.c
@@ -71,9 +71,6 @@ void content_error (char *, CT, char *, ...);
/* mhcachesbr.c */
int find_cache (CT, int, int *, char *, char *, int);
-/* ftpsbr.c */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-
/* mhfree.c */
void free_content (CT);
void free_ctinfo (CT);
diff --git a/uip/mhparse.c b/uip/mhparse.c
index 14322ab..4959dfe 100644
--- a/uip/mhparse.c
+++ b/uip/mhparse.c
@@ -2485,10 +2485,8 @@ openFTP (CT ct, char **file)
if ((ftp = context_find (nmhaccessftp)) && !*ftp)
ftp = NULL;
-#ifndef BUILTIN_FTP
if (!ftp)
return NOTOK;
-#endif
switch (openExternal (e->eb_parent, e->eb_content, ce, file, &fd)) {
case NOTOK:
@@ -2587,9 +2585,6 @@ openFTP (CT ct, char **file)
return NOTOK;
}
-#ifdef BUILTIN_FTP
- if (ftp)
-#endif
{
int child_id, i, vecp;
char *vec[9];
@@ -2625,9 +2620,6 @@ openFTP (CT ct, char **file)
default:
if (pidXwait (child_id, NULL)) {
-#ifdef BUILTIN_FTP
-losing_ftp:
-#endif
username = password = NULL;
ce->ce_unlink = 1;
return NOTOK;
@@ -2635,14 +2627,6 @@ losing_ftp:
break;
}
}
-#ifdef BUILTIN_FTP
- else
- if (ftp_get (e->eb_site, user, pass, e->eb_dir, e->eb_name,
- ce->ce_file,
- e->eb_mode && !mh_strcasecmp (e->eb_mode, "ascii"), 0)
- == NOTOK)
- goto losing_ftp;
-#endif
if (cachefile[0]) {
if (caching)
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=9680f38826145311f8720dab2d19d3796e8514ee
commit 9680f38826145311f8720dab2d19d3796e8514ee
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:37:38 2012 -0500
Garbage-collect MHRC (and make it the default).
diff --git a/acconfig.h b/acconfig.h
index ce6b5c4..a326761 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,11 +26,6 @@
/* #define REALLYDUMB 1 */
/*
- * If this is defined, nmh will recognize the ~ construct.
- */
-#define MHRC 1
-
-/*
* Compile simple ftp client into mhn. This will be used by mhn
* for ftp access unless you have specified another access method
* in your .mh_profile or mhn.defaults. Use the "mhn-access-ftp"
diff --git a/config/config.c b/config/config.c
index b08b3e2..a4edc46 100644
--- a/config/config.c
+++ b/config/config.c
@@ -9,10 +9,7 @@
#include <h/mh.h>
#include <stdio.h>
-
-#ifdef MHRC
-# include <pwd.h>
-#endif
+#include <pwd.h>
#define nmhbindir(file) NMHBINDIR#file
#define nmhetcdir(file) NMHETCDIR#file
@@ -35,21 +32,16 @@ etcpath (char *file)
{
static char epath[PATH_MAX];
char *cp;
-#ifdef MHRC
char *pp;
struct passwd *pw;
-#endif
-#ifdef MHRC
context_read();
-#endif
switch (*file) {
case '/':
/* If already absolute pathname, return it */
return file;
-#ifdef MHRC
case '~':
/* Expand ~username */
if ((cp = strchr(pp = file + 1, '/')))
@@ -73,7 +65,6 @@ etcpath (char *file)
if (access (epath, R_OK) != NOTOK)
return epath; /* else fall */
try_it:
-#endif /* MHRC */
default:
/* Check nmh Mail directory */
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=aac9670c207aaefb17521c2ce4db39cb8893f660
commit aac9670c207aaefb17521c2ce4db39cb8893f660
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:36:21 2012 -0500
Garbage-collect SLOCAL_MBOX (and make it the default).
diff --git a/acconfig.h b/acconfig.h
index 51bc739..ce6b5c4 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,13 +26,6 @@
/* #define REALLYDUMB 1 */
/*
- * If defined, slocal will use `mbox' format when saving to
- * your standard mail spool. If not defined, it will use
- * mmdf format.
- */
-#define SLOCAL_MBOX 1
-
-/*
* If this is defined, nmh will recognize the ~ construct.
*/
#define MHRC 1
diff --git a/uip/slocal.c b/uip/slocal.c
index 22a21b1..f10c76d 100644
--- a/uip/slocal.c
+++ b/uip/slocal.c
@@ -439,11 +439,7 @@ localmail (int fd, char *mdlvr)
verbose_printf ("(delivering to standard mail spool)\n");
/* last resort - deliver to standard mail spool */
-#ifdef SLOCAL_MBOX
return usr_file (fd, mbox, MBOX_FORMAT);
-#else
- return usr_file (fd, mbox, MMDF_FORMAT);
-#endif
}
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=fd83882889b45c597fd051705147e8bc0ba0890d
commit fd83882889b45c597fd051705147e8bc0ba0890d
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:35:16 2012 -0500
Garbage-collect RPATHS support.
diff --git a/acconfig.h b/acconfig.h
index 85b04d7..51bc739 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,14 +26,6 @@
/* #define REALLYDUMB 1 */
/*
- * Directs inc/slocal to extract the envelope sender from "From "
- * line. If inc/slocal is saving message to folder, then this
- * sender information is then used to create a Return-Path
- * header which is then added to the message.
- */
-#define RPATHS 1
-
-/*
* If defined, slocal will use `mbox' format when saving to
* your standard mail spool. If not defined, it will use
* mmdf format.
diff --git a/h/prototypes.h b/h/prototypes.h
index 1c55136..fcc8f0c 100644
--- a/h/prototypes.h
+++ b/h/prototypes.h
@@ -125,10 +125,6 @@ int uprf (char *, char *);
int vfgets (FILE *, char **);
char *write_charset_8bit (void);
-#ifdef RPATHS
-int get_returnpath (char *, int, char *, int);
-#endif
-
int mh_strcasecmp (const char *s1, const char *s2);
int strncasecmp (const char *s1, const char *s2, size_t n);
diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c
index be871c4..f31b9c4 100644
--- a/sbr/m_getfld.c
+++ b/sbr/m_getfld.c
@@ -582,10 +582,6 @@ finish:
}
-#ifdef RPATHS
-static char unixbuf[BUFSIZ] = "";
-#endif /* RPATHS */
-
void
m_unknown(FILE *iob)
{
@@ -615,15 +611,8 @@ m_unknown(FILE *iob)
&& strncmp (text, "From ", 5) == 0) {
msg_style = MS_MBOX;
delimstr = "\nFrom ";
-#ifndef RPATHS
while ((c = getc (iob)) != '\n' && c >= 0)
;
-#else /* RPATHS */
- cp = unixbuf;
- while ((c = getc (iob)) != '\n' && cp - unixbuf < BUFSIZ - 1)
- *cp++ = c;
- *cp = 0;
-#endif /* RPATHS */
} else {
/* not a Unix style maildrop */
fseek (iob, pos, SEEK_SET);
@@ -692,9 +681,6 @@ m_Eom (int c, FILE *iob)
register long pos = 0L;
register int i;
char text[10];
-#ifdef RPATHS
- register char *cp;
-#endif /* RPATHS */
pos = ftell (iob);
if ((i = fread (text, sizeof *text, edelimlen, iob)) != edelimlen
@@ -715,83 +701,15 @@ m_Eom (int c, FILE *iob)
}
if (msg_style == MS_MBOX) {
-#ifndef RPATHS
while ((c = getc (iob)) != '\n')
if (c < 0)
break;
-#else /* RPATHS */
- cp = unixbuf;
- while ((c = getc (iob)) != '\n' && c >= 0 && cp - unixbuf < BUFSIZ - 1)
- *cp++ = c;
- *cp = 0;
-#endif /* RPATHS */
}
return 1;
}
-#ifdef RPATHS
-/*
- * Return the Return-Path and Delivery-Date
- * header information.
- *
- * Currently, I'm assuming that the "From " line
- * takes one of the following forms.
- *
- * From sender date remote from host (for UUCP delivery)
- * From address@hidden date (for sendmail delivery)
- */
-
-int
-get_returnpath (char *rp, int rplen, char *dd, int ddlen)
-{
- char *ap, *bp, *cp, *dp;
-
- ap = unixbuf;
- if (!(bp = cp = strchr(ap, ' ')))
- return 0;
-
- /*
- * Check for "remote from" in envelope to see
- * if this message uses UUCP style addressing
- */
- while ((cp = strchr(++cp, 'r'))) {
- if (strncmp (cp, "remote from", 11) == 0) {
- cp = strrchr (cp, ' ');
- break;
- }
- }
-
- /*
- * Get the Return-Path information from
- * the "From " envelope.
- */
- if (cp) {
- /* return path for UUCP style addressing */
- dp = strchr (++cp, '\n');
- snprintf (rp, rplen, "%.*s!%.*s\n", (int)(dp - cp), cp, (int)(bp - ap),
ap);
- } else {
- /* return path for standard domain addressing */
- snprintf (rp, rplen, "%.*s\n", (int)(bp - ap), ap);
- }
-
- /*
- * advance over the spaces to get to
- * delivery date on envelope
- */
- while (*bp == ' ')
- bp++;
-
- /* Now get delivery date from envelope */
- snprintf (dd, ddlen, "%.*s\n", 24, bp);
-
- unixbuf[0] = 0;
- return 1;
-}
-#endif /* RPATHS */
-
-
static unsigned char *
matchc(int patln, char *pat, int strln, char *str)
{
diff --git a/uip/scansbr.c b/uip/scansbr.c
index 04dc215..0d12c34 100644
--- a/uip/scansbr.c
+++ b/uip/scansbr.c
@@ -87,11 +87,6 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int
width, int curflg,
char name[NAMESZ];
static int rlwidth, slwidth;
-#ifdef RPATHS
- char returnpath[BUFSIZ];
- char deliverydate[BUFSIZ];
-#endif
-
/* first-time only initialization */
if (!scanl) {
if (width == 0) {
@@ -173,19 +168,6 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int
width, int curflg,
}
if ((scnout = fopen (scnmsg, "w")) == NULL)
adios (scnmsg, "unable to write");
-#ifdef RPATHS
- /*
- * Add the Return-Path and Delivery-Date
- * header fields to message.
- */
- if (get_returnpath (returnpath, sizeof(returnpath),
- deliverydate, sizeof(deliverydate))) {
- FPUTS ("Return-Path: ");
- FPUTS (returnpath);
- FPUTS ("Delivery-Date: ");
- FPUTS (deliverydate);
- }
-#endif /* RPATHS */
}
/* scan - main loop */
diff --git a/uip/slocal.c b/uip/slocal.c
index cf91737..22a21b1 100644
--- a/uip/slocal.c
+++ b/uip/slocal.c
@@ -1335,9 +1335,6 @@ you_lose:
if (first) {
first = 0;
if (!strncmp (buffer, "From ", i)) {
-#ifdef RPATHS
- char *fp, *cp, *hp, *ep;
-#endif
/* get copy of envelope information ("From " line) */
envelope = getcpy (buffer);
@@ -1348,33 +1345,6 @@ you_lose:
goto fputs_error;
#endif
-#ifdef RPATHS
- /*
- * Now create a "Return-Path:" line
- * from the "From " line.
- */
- hp = cp = strchr(fp = envelope + i, ' ');
- while ((hp = strchr(++hp, 'r')))
- if (uprf (hp, "remote from")) {
- hp = strrchr(hp, ' ');
- break;
- }
- if (hp) {
- /* return path for UUCP style addressing */
- ep = strchr(++hp, '\n');
- snprintf (buffer, sizeof(buffer), "Return-Path:
%.*s!%.*s\n",
- (int)(ep - hp), hp, (int)(cp - fp), fp);
- } else {
- /* return path for standard domain addressing */
- snprintf (buffer, sizeof(buffer), "Return-Path: %.*s\n",
- (int)(cp - fp), fp);
- }
-
- /* Add Return-Path header to message */
- fputs (buffer, ffp);
- if (ferror (ffp))
- goto fputs_error;
-#endif
/* Put the delivery date in message */
fputs (ddate, ffp);
if (ferror (ffp))
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=a51ad22240aacc586d164bf9b79b9f0380fc8992
commit a51ad22240aacc586d164bf9b79b9f0380fc8992
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:29:35 2012 -0500
Huh, turns out this define hasn't worked in forever ... the original
changes were made to the lexer output, and silently vanished a decade
ago when code was reorganized from zotnet to sbr!
diff --git a/acconfig.h b/acconfig.h
index dad1509..85b04d7 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,20 +26,6 @@
/* #define REALLYDUMB 1 */
/*
- * Starting on January 1, 2000, some MUAs like ELM and Ultrix's DXmail started
- * generated bad dates ("00" or "100" for the year). If this #define is
active,
- * we use windowing to correct those dates to what we presume to be the
intended
- * values. About the only time this could get us into trouble would be if a
MUA
- * was generating a year of "00" in 2001 or later, due to an unrelated bug. In
- * this case we would "correct" the year to 2000, which could result in
- * inaccurate bug reports against the offending MUA. A much more esoteric case
- * in which you might not want to #define this would be if you were OCR'ing in
- * old written correspondence and saving it in email format, and you had dates
- * of 1899 or earlier.
- */
-#define FIX_NON_Y2K_COMPLIANT_MUA_DATES 1
-
-/*
* Directs inc/slocal to extract the envelope sender from "From "
* line. If inc/slocal is saving message to folder, then this
* sender information is then used to create a Return-Path
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=c152db5d6a64036d4e51ec75c93b6accbb1bfa13
commit c152db5d6a64036d4e51ec75c93b6accbb1bfa13
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:22:44 2012 -0500
Remove last vestiges of #ifdef BANG
diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c
index 484ec5e..227b40b 100644
--- a/sbr/addrsbr.c
+++ b/sbr/addrsbr.c
@@ -280,12 +280,10 @@ auxformat (struct mailname *mp, int extras)
else
#endif /* DUMB */
-#ifndef BANG
if (mp->m_type != UUCPHOST)
snprintf (addr, sizeof(addr), mp->m_host ? "address@hidden" :
"%s%s",
empty(mp->m_path), empty(mp->m_mbox), mp->m_host);
else
-#endif /* not BANG */
snprintf (addr, sizeof(addr), "%s!%s", mp->m_host, mp->m_mbox);
if (!extras)
@@ -354,11 +352,7 @@ adrsprintf (char *username, char *domain)
if (domain == NULL)
domain = LocalName();
-#ifndef BANG
snprintf_return = snprintf (addr, sizeof(addr), "address@hidden",
username, domain);
-#else /* BANG */
- snprintf_return = snprintf (addr, sizeof(addr), "%s!%s", domain, username);
-#endif /* BANG */
if (snprintf_return < 0 || snprintf_return >= sizeof(addr))
adios(NULL, "snprintf() error writing username (%d chars), domain (%d"
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=30542ddcbeb83a58e5802ec3421516ed9c252991
commit 30542ddcbeb83a58e5802ec3421516ed9c252991
Author: Ken Hornstein <address@hidden>
Date: Fri Jan 6 10:21:17 2012 -0500
Remove DBMPWD, make it the default.
diff --git a/acconfig.h b/acconfig.h
index 70c2c6d..dad1509 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -12,12 +12,6 @@
*/
/*
- * Define this if your passwords are stored in some type of
- * distributed name service, such as NIS, or NIS+.
- */
-#define DBMPWD 1
-
-/*
* Directs nmh not to try and rewrite addresses
* to their official form. You probably don't
* want to change this without good reason.
diff --git a/uip/aliasbr.c b/uip/aliasbr.c
index b1a7e61..50a2cd5 100644
--- a/uip/aliasbr.c
+++ b/uip/aliasbr.c
@@ -350,29 +350,20 @@ addgroup (struct aka *ak, char *grp)
return 0;
}
-#ifndef DBMPWD
- if (homehead == NULL)
- init_pw ();
-#endif /* DBMPWD */
-
while ((gp = *gr->gr_mem++))
-#ifdef DBMPWD
{
struct passwd *pw;
-#endif /* DBMPWD */
for (hm = homehead; hm; hm = hm->h_next)
if (!strcmp (hm->h_name, gp)) {
add_aka (ak, hm->h_name);
break;
}
-#ifdef DBMPWD
if ((pw = getpwnam(gp)))
{
hmalloc(pw);
add_aka (ak, gp);
}
}
-#endif /* DBMPWD */
return 1;
}
@@ -396,10 +387,7 @@ addmember (struct aka *ak, char *grp)
return 0;
}
-#ifndef DBMPWD
- if (homehead == NULL)
-#endif /* DBMPWD */
- init_pw ();
+ init_pw ();
for (hm = homehead; hm; hm = hm->h_next)
if (hm->h_gid == gid)
@@ -415,10 +403,8 @@ addall (struct aka *ak)
int noshell = NoShell == NULL || *NoShell == 0;
register struct home *hm;
-#ifndef DBMPWD
- if (homehead == NULL)
-#endif /* DBMPWD */
- init_pw ();
+ init_pw ();
+
if (Everyone < 0)
Everyone = EVERYONE;
@@ -487,28 +473,24 @@ void
init_pw (void)
{
register struct passwd *pw;
-#ifdef DBMPWD
static int init;
if (!init)
{
- /* if the list has yet to be initialized */
- /* zap the list, and rebuild from scratch */
- homehead=NULL;
- hometail=NULL;
- init++;
-#endif /* DBMPWD */
+ /* if the list has yet to be initialized */
+ /* zap the list, and rebuild from scratch */
+ homehead=NULL;
+ hometail=NULL;
+ init++;
- setpwent ();
+ setpwent ();
- while ((pw = getpwent ()))
- if (!hmalloc (pw))
- break;
+ while ((pw = getpwent ()))
+ if (!hmalloc (pw))
+ break;
- endpwent ();
-#ifdef DBMPWD
+ endpwent ();
}
-#endif /* DBMPWD */
}
@@ -561,22 +543,15 @@ struct home *
seek_home (char *name)
{
register struct home *hp;
-#ifdef DBMPWD
struct passwd *pw;
char lname[32];
unsigned char *c;
char *c1;
-#else /* DBMPWD */
-
- if (homehead == NULL)
- init_pw ();
-#endif /* DBMPWD */
for (hp = homehead; hp; hp = hp->h_next)
if (!mh_strcasecmp (name, hp->h_name))
return hp;
-#ifdef DBMPWD
/*
* The only place where there might be problems.
* This assumes that ALL usernames are kept in lowercase.
@@ -590,7 +565,6 @@ seek_home (char *name)
*c1 = '\0';
if ((pw = getpwnam(lname)))
return(hmalloc(pw));
-#endif /* DBMPWD */
-
+
return NULL;
}
-----------------------------------------------------------------------
Summary of changes:
acconfig.h | 49 -----
config/config.c | 11 +-
docs/pending-release-notes | 4 +
h/arpa_ftp.h | 109 ----------
h/prototypes.h | 4 -
sbr/addrsbr.c | 6 -
sbr/m_getfld.c | 82 -------
uip/Makefile.in | 26 ++--
uip/aliasbr.c | 54 ++----
uip/ftpsbr.c | 515 --------------------------------------------
uip/mhbuildsbr.c | 3 -
uip/mhparse.c | 16 --
uip/scansbr.c | 18 --
uip/slocal.c | 34 ---
14 files changed, 32 insertions(+), 899 deletions(-)
delete mode 100644 h/arpa_ftp.h
delete mode 100644 uip/ftpsbr.c
hooks/post-receive
--
The nmh Mail Handling System
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated. 55795751a1513b7018b38c6c50c5bccc710feff2,
Ken Hornstein <=