aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am18
-rw-r--r--NEWS5
-rw-r--r--configure.ac52
-rw-r--r--cram.c4
-rw-r--r--driver.c30
-rw-r--r--fetchmail.h5
-rw-r--r--imap.c6
-rw-r--r--interface.c7
-rw-r--r--ipv6-connect.c23
-rw-r--r--report.c46
-rw-r--r--sink.c59
-rw-r--r--smtp.c34
-rw-r--r--socket.c15
-rw-r--r--transact.c73
14 files changed, 108 insertions, 269 deletions
diff --git a/Makefile.am b/Makefile.am
index bbd82289..2dbea302 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,6 +25,19 @@ libfm_a_DEPENDENCIES= $(EXTRAOBJ)
LDADD = libfm.a @LIBINTL@ $(LIBOBJS)
DEPENDENCIES= libfm.a $(LIBOBJS)
+check_PROGRAMS=
+
+if NEED_TRIO
+noinst_LIBRARIES+= libtrio.a
+libtrio_a_SOURCES= trio/triostr.c trio/trio.c trio/trionan.c \
+ trio/trio.h trio/triop.h trio/triodef.h \
+ trio/trionan.h trio/triostr.h
+check_PROGRAMS+= regression
+regression_SOURCES= trio/regression.c
+LDADD += libtrio.a -lm
+TESTS= regression
+endif
+
fetchmail_SOURCES= fetchmail.h getopt.h \
i18n.h kerberos.h md5.h mx.h netrc.h ntlm.h \
smbbyteorder.h smbdes.h smbmd4.h smbencrypt.h smtp.h \
@@ -38,7 +51,7 @@ fetchmail_SOURCES= fetchmail.h getopt.h \
smbmd4.c smbutil.c ipv6-connect.c lock.c \
rcfile_l.l rcfile_y.y ucs/norm_charmap.c
-check_PROGRAMS= rfc822 unmime netrc rfc2047e
+check_PROGRAMS += rfc822 unmime netrc rfc2047e
rfc2047e_CFLAGS= -DTEST
@@ -64,7 +77,8 @@ DISTDOCS= FAQ FEATURES NOTES fetchmail-man.html fetchmail-FAQ.html \
# extra directories to ship
distdirs = rh-config contrib beos
-EXTRA_DIST= $(DISTDOCS) fetchmail.spec $(distdirs) ucs/README.svn
+EXTRA_DIST= $(DISTDOCS) fetchmail.spec $(distdirs) ucs/README.svn \
+ trio/CHANGES trio/README
FAQ: fetchmail-FAQ.html
AWK=$(AWK) $(SHELL) $(srcdir)/html2txt.sh $(srcdir)/fetchmail-FAQ.html >$@ || { rm -f $@ ; exit 1 ; }
diff --git a/NEWS b/NEWS
index 52416f21..c521dc4d 100644
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,11 @@
in succession, make sure that Common Name and fingerprint checking are
only done once. Print all validation warnings/errors even if not in
verbose mode. Patch by Brian Candler.
+* Import Bjorn Reese and Daniel Stenberg's MIT-licensed Trio 1.10 from
+ http://daniel.haxx.se/projects/trio/ for systems that do not support
+ snprintf or vsnprintf.
+* Clean up the horrible #ifdef HAVE_[V]SNPRINTF that made the code
+ unreadable. Use Trio where [v]snprintf is/are missing. Matthias Andree.
fetchmail-6.2.5 (Wed Oct 15 18:39:22 EDT 2003), 23079 lines:
diff --git a/configure.ac b/configure.ac
index 445f5d95..6777b1b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -682,6 +682,58 @@ AC_SUBST(CPFLAGS)
AC_SUBST(CEFLAGS)
AC_SUBST(LDEFLAGS)
+dnl ,------------------------------------------------------------------
+dnl Check if we need TRIO
+needtrio=0
+if test "$FORCE_TRIO" = "yes" ; then
+ needtrio=1
+ ac_cv_func_vsnprintf=no
+ ac_cv_func_snprintf=no
+fi
+if test "x$ac_cv_func_snprintf" != "xyes" ; then
+ AC_DEFINE(snprintf, trio_snprintf,
+ [Define to trio_snprintf if your system lacks snprintf])
+ needtrio=1
+fi
+if test "x$ac_cv_func_vsnprintf" != "xyes" ; then
+ AC_DEFINE(vsnprintf, trio_vsnprintf,
+ [Define to trio_vsnprintf if your system lacks vsnprintf])
+ needtrio=1
+fi
+AM_CONDITIONAL(NEED_TRIO, test "$needtrio" = 1)
+
+dnl TRIO IEEE compiler option for Alpha
+dnl
+if test "$needtrio" = 1 ; then
+ AC_MSG_CHECKING(for IEEE compilation options)
+ AC_CACHE_VAL(ac_cv_ieee_option, [
+ AC_TRY_COMPILE(,[
+ #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && (defined(VMS) || defined(__VMS)))
+ # error "Option needed"
+ #endif
+ ],ac_cv_ieee_option="/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE",
+ AC_TRY_COMPILE(,[
+ #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && !(defined(VMS) || defined(__VMS)) && !defined(_CFE))
+ # error "Option needed"
+ #endif
+ ],ac_cv_ieee_option="-ieee",
+ AC_TRY_COMPILE(,[
+ #if !(defined(__alpha) && (defined(__GNUC__) && (defined(__osf__) || defined(__linux__))))
+ # error "Option needed"
+ #endif
+ ],ac_cv_ieee_option="-mieee",
+ ac_cv_ieee_option="none"
+ )
+ )
+ )
+ ])
+ AC_MSG_RESULT($ac_cv_ieee_option)
+ if test $ac_cv_ieee_option != none; then
+ CFLAGS="${CFLAGS} ${ac_cv_ieee_option}"
+ fi
+fi
+dnl ----------------------------------------------------------------'
+
AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in intl/Makefile])
AC_OUTPUT
diff --git a/cram.c b/cram.c
index e17b7147..548b542b 100644
--- a/cram.c
+++ b/cram.c
@@ -114,11 +114,7 @@ int do_cram_md5 (int sock, char *command, struct query *ctl, char *strip)
msg_id, strlen (msg_id),
response, sizeof (response));
-#ifdef HAVE_SNPRINTF
snprintf (reply, sizeof(reply),
-#else
- sprintf(reply,
-#endif
"%s %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
ctl->remotename,
response[0], response[1], response[2], response[3],
diff --git a/driver.c b/driver.c
index c48defd8..fcc6b8d7 100644
--- a/driver.c
+++ b/driver.c
@@ -378,12 +378,7 @@ static void mark_oversized(struct query *ctl, int num, int size)
int cnt;
/* convert size to string */
-#ifdef HAVE_SNPRINTF
- snprintf(sizestr, sizeof(sizestr),
-#else
- sprintf(sizestr,
-#endif /* HAVE_SNPRINTF */
- "%d", size);
+ snprintf(sizestr, sizeof(sizestr), "%d", size);
/* build a list of skipped messages
* val.id = size of msg (string cnvt)
@@ -1085,16 +1080,8 @@ static int do_session(
else if (h_errno == TRY_AGAIN)
strcpy(errbuf, GT_("temporary name server error."));
else
-#ifdef HAVE_SNPRINTF
- snprintf
-#else
- sprintf
-#endif /* HAVE_SNPRINTF */
- (errbuf,
-#ifdef HAVE_SNPRINTF
- sizeof(errbuf),
-#endif
- GT_("unknown DNS error %d."), h_errno);
+ snprintf (errbuf, sizeof(errbuf),
+ GT_("unknown DNS error %d."), h_errno);
}
else
#endif /* HAVE_RES_SEARCH */
@@ -1352,20 +1339,11 @@ is restored."));
/* show user how many messages we downloaded */
if (idp->id)
-#ifdef HAVE_SNPRINTF
(void) snprintf(buf, sizeof(buf),
-#else
- (void) sprintf(buf,
-#endif /* HAVE_SNPRINTF */
GT_("%s at %s (folder %s)"),
ctl->remotename, ctl->server.pollname, idp->id);
else
-#ifdef HAVE_SNPRINTF
- (void) snprintf(buf, sizeof(buf),
-#else
- (void) sprintf(buf,
-#endif /* HAVE_SNPRINTF */
- GT_("%s at %s"),
+ (void) snprintf(buf, sizeof(buf), GT_("%s at %s"),
ctl->remotename, ctl->server.pollname);
if (outlevel > O_SILENT)
{
diff --git a/fetchmail.h b/fetchmail.h
index afb976d2..9ce7942e 100644
--- a/fetchmail.h
+++ b/fetchmail.h
@@ -22,6 +22,11 @@
#include <stdio.h>
+/* Import Trio if needed */
+#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
+# include "trio/trio.h"
+#endif
+
/* We need this for strstr */
#if !defined(HAVE_STRSTR) && !defined(strstr)
char *strstr(const char *, const char *);
diff --git a/imap.c b/imap.c
index 4395129f..6967524f 100644
--- a/imap.c
+++ b/imap.c
@@ -510,13 +510,7 @@ static int imap_getauth(int sock, struct query *ctl, char *greeting)
imap_canonicalize(remotename, ctl->remotename, NAMELEN);
imap_canonicalize(password, ctl->password, PASSWORDLEN);
-#ifdef HAVE_SNPRINTF
snprintf(shroud, sizeof (shroud), "\"%s\"", password);
-#else
- strcpy(shroud, "\"");
- strcat(shroud, password);
- strcat(shroud, "\"");
-#endif
ok = gen_transact(sock, "LOGIN \"%s\" \"%s\"", remotename, password);
shroud[0] = '\0';
#ifdef SSL_ENABLE
diff --git a/interface.c b/interface.c
index a70e6104..4c9dde32 100644
--- a/interface.c
+++ b/interface.c
@@ -268,12 +268,7 @@ get_ifinfo(const char *ifname, ifinfo_t *ifinfo)
{
kvm_read(kvmfd, ifnet_addr, &ifnet, sizeof(ifnet));
kvm_read(kvmfd, (unsigned long) ifnet.if_name, tname, sizeof tname);
-#ifdef HAVE_SNPRINTF
- snprintf(tname, sizeof tname,
-#else
- sprintf(tname,
-#endif
- "%s%d", tname, ifnet.if_unit);
+ snprintf(tname, sizeof tname, "%s%d", tname, ifnet.if_unit);
if (!strcmp(tname, iname))
{
diff --git a/ipv6-connect.c b/ipv6-connect.c
index 6064806c..6537984d 100644
--- a/ipv6-connect.c
+++ b/ipv6-connect.c
@@ -100,23 +100,15 @@ int inner_connect(struct addrinfo *ai, void *request, int requestlen, int (*tryi
continue;
if ((fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) < 0) {
-#ifdef HAVE_SNPRINTF
- snprintf(errorbuf, sizeof(errorbuf),
-#else
- sprintf(errorbuf,
-#endif
- "socket: %s(%d)", strerror(errno), errno);
+ snprintf(errorbuf, sizeof(errorbuf), "socket: %s(%d)",
+ strerror(errno), errno);
error_callback(myname, errorbuf);
continue;
};
if (connect(fd, ai->ai_addr, ai->ai_addrlen) < 0) {
-#ifdef HAVE_SNPRINTF
- snprintf(errorbuf, sizeof(errorbuf),
-#else
- sprintf(errorbuf,
-#endif
- "connect: %s(%d)", strerror(errno), errno);
+ snprintf(errorbuf, sizeof(errorbuf), "connect: %s(%d)",
+ strerror(errno), errno);
error_callback(myname, errorbuf);
close(fd); /* just after a connect; no reads or writes yet */
continue;
@@ -128,12 +120,7 @@ int inner_connect(struct addrinfo *ai, void *request, int requestlen, int (*tryi
if (pai)
*pai = ai;
} else {
-#ifdef HAVE_SNPRINTF
- snprintf(errorbuf, sizeof(errorbuf),
-#else
- sprintf(errorbuf,
-#endif
- "no connections result");
+ snprintf(errorbuf, sizeof(errorbuf), "no connections result");
error_callback(myname, errorbuf);
fd = -1;
};
diff --git a/report.c b/report.c
index cdded484..cbac88a4 100644
--- a/report.c
+++ b/report.c
@@ -235,7 +235,6 @@ report_build (FILE *errfp, message, va_alist)
#if defined(VA_START)
VA_START (args, message);
-#if defined(HAVE_VSNPRINTF) || defined(_LIBC)
for ( ; ; )
{
n = vsnprintf (partial_message + partial_message_size_used,
@@ -251,20 +250,8 @@ report_build (FILE *errfp, message, va_alist)
partial_message_size += 2048;
partial_message = REALLOC (partial_message, partial_message_size);
}
-#else
- vsprintf (partial_message + partial_message_size_used, message, args);
- partial_message_size_used += strlen(partial_message+partial_message_size_used);
-
- /* Attempt to catch memory overwrites... */
- if (partial_message_size_used >= partial_message_size)
- {
- partial_message_size_used = 0;
- report (stderr, GT_("partial error message buffer overflow"));
- }
-#endif
va_end (args);
#else
-#if HAVE_SNPRINTF
for ( ; ; )
{
n = snprintf (partial_message + partial_message_size_used,
@@ -280,16 +267,6 @@ report_build (FILE *errfp, message, va_alist)
partial_message_size += 2048;
partial_message = REALLOC (partial_message, partial_message_size);
}
-#else
- sprintf (partial_message + partial_message_size_used, message, a1, a2, a3, a4, a5, a6, a7, a8);
-
- /* Attempt to catch memory overwrites... */
- if ((partial_message_size_used = strlen (partial_message)) >= partial_message_size)
- {
- partial_message_size_used = 0;
- report (stderr, GT_("partial error message buffer overflow"));
- }
-#endif
#endif
if (use_stderr && partial_message_size_used != 0)
@@ -335,7 +312,6 @@ report_complete (FILE *errfp, message, va_alist)
#if defined(VA_START)
VA_START (args, message);
-#if defined(HAVE_VSNPRINTF) || defined(_LIBC)
for ( ; ; )
{
n = vsnprintf (partial_message + partial_message_size_used,
@@ -351,20 +327,8 @@ report_complete (FILE *errfp, message, va_alist)
partial_message_size += 2048;
partial_message = REALLOC (partial_message, partial_message_size);
}
-#else
- vsprintf (partial_message + partial_message_size_used, message, args);
- partial_message_size_used += strlen(partial_message+partial_message_size_used);
-
- /* Attempt to catch memory overwrites... */
- if (partial_message_size_used >= partial_message_size)
- {
- partial_message_size_used = 0;
- report (stderr, GT_("partial error message buffer overflow"));
- }
-#endif
va_end (args);
#else
-#if HAVE_SNPRINTF
for ( ; ; )
{
n = snprintf (partial_message + partial_message_size_used,
@@ -380,16 +344,6 @@ report_complete (FILE *errfp, message, va_alist)
partial_message_size += 2048;
partial_message = REALLOC (partial_message, partial_message_size);
}
-#else
- sprintf (partial_message + partial_message_size_used, message, a1, a2, a3, a4, a5, a6, a7, a8);
-
- /* Attempt to catch memory overwrites... */
- if ((partial_message_size_used = strlen (partial_message)) >= partial_message_size)
- {
- partial_message_size_used = 0;
- report (stderr, GT_("partial error message buffer overflow"));
- }
-#endif
#endif
/* Finally... print it. */
diff --git a/sink.c b/sink.c
index 662d0a7b..176f638c 100644
--- a/sink.c
+++ b/sink.c
@@ -264,27 +264,15 @@ char *rcpt_address(struct query *ctl, const char *id,
static char addr[HOSTLEN+USERNAMELEN+1];
if (strchr(id, '@'))
{
-#ifdef HAVE_SNPRINTF
snprintf(addr, sizeof (addr), "%s", id);
-#else
- sprintf(addr, "%s", id);
-#endif /* HAVE_SNPRINTF */
}
else if (usesmtpname && ctl->smtpname)
{
-#ifdef HAVE_SNPRINTF
snprintf(addr, sizeof (addr), "%s", ctl->smtpname);
-#else
- sprintf(addr, "%s", ctl->smtpname);
-#endif /* HAVE_SNPRINTF */
}
else
{
-#ifdef HAVE_SNPRINTF
snprintf(addr, sizeof (addr), "%s@%s", id, ctl->destaddr);
-#else
- sprintf(addr, "%s@%s", id, ctl->destaddr);
-#endif /* HAVE_SNPRINTF */
}
return addr;
}
@@ -337,12 +325,7 @@ static int send_bouncemail(struct query *ctl, struct msgblk *msg,
}
/* our first duty is to keep the sacred foo counters turning... */
-#ifdef HAVE_SNPRINTF
- snprintf(boundary, sizeof(boundary),
-#else
- sprintf(boundary,
-#endif /* HAVE_SNPRINTF */
- "foo-mani-padme-hum-%d-%d-%ld",
+ snprintf(boundary, sizeof(boundary), "foo-mani-padme-hum-%d-%d-%ld",
(int)getpid(), (int)getppid(), time((time_t *)NULL));
if (outlevel >= O_VERBOSE)
@@ -524,11 +507,7 @@ static int handle_smtp_report(struct query *ctl, struct msgblk *msg)
if (run.spambounce)
{
char rejmsg[160];
-#ifdef HAVE_SNPRINTF
snprintf(rejmsg, sizeof(rejmsg),
-#else
- sprintf(rejmsg,
-#endif /* HAVE_SNPRINTF */
"spam filter or virus scanner rejected message because:\r\n"
"%s\r\n", responses[0]);
@@ -900,20 +879,12 @@ static int open_smtp_sink(struct query *ctl, struct msgblk *msg,
{
if (is_dottedquad(ctl->server.truename))
{
-#ifdef HAVE_SNPRINTF
- snprintf(addr, sizeof(addr),
-#else
- sprintf(addr,
-#endif /* HAVE_SNPRINTF */
- "%s@[%s]", ctl->remotename, ctl->server.truename);
+ snprintf(addr, sizeof(addr), "%s@[%s]", ctl->remotename,
+ ctl->server.truename);
}
else
{
-#ifdef HAVE_SNPRINTF
snprintf(addr, sizeof(addr),
-#else
- sprintf(addr,
-#endif /* HAVE_SNPRINTF */
"%s@%s", ctl->remotename, ctl->server.truename);
}
ap = addr;
@@ -927,21 +898,13 @@ static int open_smtp_sink(struct query *ctl, struct msgblk *msg,
{
if (is_dottedquad(ctl->server.truename))
{
-#ifdef HAVE_SNPRINTF
- snprintf(addr, sizeof(addr),
-#else
- sprintf(addr,
-#endif /* HAVE_SNPRINTF */
- "%s@[%s]", msg->return_path, ctl->server.truename);
+ snprintf(addr, sizeof(addr), "%s@[%s]", msg->return_path,
+ ctl->server.truename);
}
else
{
-#ifdef HAVE_SNPRINTF
- snprintf(addr, sizeof(addr),
-#else
- sprintf(addr,
-#endif /* HAVE_SNPRINTF */
- "%s@%s", msg->return_path, ctl->server.truename);
+ snprintf(addr, sizeof(addr), "%s@%s",
+ msg->return_path, ctl->server.truename);
}
ap = addr;
}
@@ -1573,18 +1536,10 @@ va_dcl
#else
va_start(ap);
#endif
-#ifdef HAVE_VSNPRINTF
vsnprintf(buf, sizeof(buf), fmt, ap);
-#else
- vsprintf(buf, fmt, ap);
-#endif
va_end(ap);
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\r\n");
-#else
- strcat(buf, "\r\n");
-#endif /* HAVE_SNPRINTF */
/* guard against very long lines */
buf[MSGBUFSIZE+1] = '\r';
diff --git a/smtp.c b/smtp.c
index 2595a57e..8642feb0 100644
--- a/smtp.c
+++ b/smtp.c
@@ -8,14 +8,15 @@
* For license terms, see the file COPYING in this directory.
*/
+#include "config.h"
+#include "fetchmail.h"
+
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
-#include "fetchmail.h"
#include "socket.h"
#include "smtp.h"
-#include "config.h"
#include "i18n.h"
struct opt
@@ -105,11 +106,7 @@ static void SMTP_auth(int sock, char *username, char *password, char *buf)
report(stdout, GT_("Challenge decoded: %s\n"), b64buf);
hmac_md5(password, strlen(password),
b64buf, strlen(b64buf), digest, sizeof(digest));
-#ifdef HAVE_SNPRINTF
snprintf(tmp, sizeof(tmp),
-#else
- sprintf(tmp,
-#endif /* HAVE_SNPRINTF */
"%s %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
username, digest[0], digest[1], digest[2], digest[3],
digest[4], digest[5], digest[6], digest[7], digest[8],
@@ -124,12 +121,7 @@ static void SMTP_auth(int sock, char *username, char *password, char *buf)
int len;
if (outlevel >= O_MONITOR)
report(stdout, GT_("ESMTP PLAIN Authentication...\n"));
-#ifdef HAVE_SNPRINTF
- snprintf(tmp, sizeof(tmp),
-#else
- sprintf(tmp,
-#endif /* HAVE_SNPRINTF */
- "^%s^%s", username, password);
+ snprintf(tmp, sizeof(tmp), "^%s^%s", username, password);
len = strlen(tmp);
for (c = len - 1; c >= 0; c--)
@@ -233,25 +225,11 @@ int SMTP_from(int sock, const char *from, const char *opts)
char buf[MSGBUFSIZE];
if (from[0]=='<')
-#ifdef HAVE_SNPRINTF
- snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
- "MAIL FROM:%s", from);
+ snprintf(buf, sizeof(buf), "MAIL FROM:%s", from);
else
-#ifdef HAVE_SNPRINTF
- snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
- "MAIL FROM:<%s>", from);
+ snprintf(buf, sizeof(buf), "MAIL FROM:<%s>", from);
if (opts)
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "%s", opts);
-#else
- strcat(buf, opts);
-#endif /* HAVE_SNPRINTF */
SockPrintf(sock,"%s\r\n", buf);
if (outlevel >= O_MONITOR)
report(stdout, "%cMTP> %s\n", smtp_mode, buf);
diff --git a/socket.c b/socket.c
index bba34d4e..50a48a81 100644
--- a/socket.c
+++ b/socket.c
@@ -351,12 +351,7 @@ int SockOpen(const char *host, int clientPort, const char *options,
#ifdef HAVE_SOCKETPAIR
if (plugin) {
char buf[10];
-#ifdef HAVE_SNPRINTF
- snprintf(buf, sizeof(buf), /* Yeah, paranoic. So what? :P */
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
- "%d",clientPort);
+ snprintf(buf, sizeof(buf), "%d", clientPort);
return handle_plugin(host,buf,plugin);
}
#endif /* HAVE_SOCKETPAIR */
@@ -487,11 +482,7 @@ va_dcl {
#else
va_start(ap);
#endif
-#ifdef HAVE_VSNPRINTF
vsnprintf(buf, sizeof(buf), format, ap);
-#else
- vsprintf(buf, format, ap);
-#endif
va_end(ap);
return SockWrite(sock, buf, strlen(buf));
@@ -849,11 +840,7 @@ static int SSL_verify_callback( int ok_return, X509_STORE_CTX *ctx, int strict )
tp = text;
te = text + sizeof(text);
for (i = 0; i < dsz; i++) {
-#ifdef HAVE_SNPRINTF
esz = snprintf(tp, te - tp, i > 0 ? ":%02X" : "%02X", digest[i]);
-#else
- esz = sprintf(tp, i > 0 ? ":%02X" : "%02X", digest[i]);
-#endif
if (esz >= te - tp) {
report(stderr, GT_("Digest text buffer too small!\n"));
return (0);
diff --git a/transact.c b/transact.c
index 901e3d3d..8a477345 100644
--- a/transact.c
+++ b/transact.c
@@ -941,12 +941,10 @@ int readheaders(int sock,
*/
if (msgblk.headers == (char *)NULL)
{
-#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
- "From: FETCHMAIL-DAEMON\r\nTo: %s@%s\r\nSubject: Headerless mail from %s's mailbox on %s\r\n",
+ "From: FETCHMAIL-DAEMON\r\n"
+ "To: %s@%s\r\n"
+ "Subject: Headerless mail from %s's mailbox on %s\r\n",
user, fetchmailhost, ctl->remotename, ctl->server.truename);
msgblk.headers = xstrdup(buf);
}
@@ -1125,11 +1123,7 @@ int readheaders(int sock,
{
/* utter any per-message Received information we need here */
if (ctl->server.trueaddr) {
-#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
"Received: from %s [%u.%u.%u.%u]\r\n",
ctl->server.truename,
(unsigned int)(unsigned char)ctl->server.trueaddr[0],
@@ -1137,11 +1131,7 @@ int readheaders(int sock,
(unsigned int)(unsigned char)ctl->server.trueaddr[2],
(unsigned int)(unsigned char)ctl->server.trueaddr[3]);
} else {
-#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
"Received: from %s\r\n", ctl->server.truename);
}
n = stuffline(ctl, buf);
@@ -1151,11 +1141,7 @@ int readheaders(int sock,
* This header is technically invalid under RFC822.
* POP3, IMAP, etc. are not legal mail-parameter values.
*/
-#ifdef HAVE_SNPRINTF
snprintf(buf, sizeof(buf),
-#else
- sprintf(buf,
-#endif /* HAVE_SNPRINTF */
"\tby %s with %s (fetchmail-%s",
fetchmailhost,
protocol->name,
@@ -1166,23 +1152,14 @@ int readheaders(int sock,
ctl->server.pollname,
ctl->remotename);
}
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), ")\r\n");
-#else
- strcat(buf, ")\r\n");
-#endif /* HAVE_SNPRINTF */
n = stuffline(ctl, buf);
if (n != -1)
{
buf[0] = '\t';
if (good_addresses == 0)
{
-#ifdef HAVE_SNPRINTF
- snprintf(buf+1, sizeof(buf)-1,
-#else
- sprintf(buf+1,
-#endif /* HAVE_SNPRINTF */
- "for %s (by default); ",
+ snprintf(buf+1, sizeof(buf)-1, "for %s (by default); ",
rcpt_address (ctl, run.postmaster, 0));
}
else if (good_addresses == 1)
@@ -1190,25 +1167,17 @@ int readheaders(int sock,
for (idp = msgblk.recipients; idp; idp = idp->next)
if (idp->val.status.mark == XMIT_ACCEPT)
break; /* only report first address */
-#ifdef HAVE_SNPRINTF
snprintf(buf+1, sizeof(buf)-1,
-#else
- sprintf(buf+1,
-#endif /* HAVE_SNPRINTF */
"for %s", rcpt_address (ctl, idp->id, 1));
- sprintf(buf+strlen(buf), " (%s); ",
+ snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf)-1,
+ " (%s); ",
MULTIDROP(ctl) ? "multi-drop" : "single-drop");
}
else
buf[1] = '\0';
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "%s\r\n",
rfc822timestamp());
-#else
- strcat(buf, rfc822timestamp());
- strcat(buf, "\r\n");
-#endif /* HAVE_SNPRINTF */
n = stuffline(ctl, buf);
}
}
@@ -1246,11 +1215,7 @@ int readheaders(int sock,
for (idp = msgblk.recipients; idp; idp = idp->next)
if (idp->val.status.mark == XMIT_REJECT)
break;
-#ifdef HAVE_SNPRINTF
snprintf(errhd+strlen(errhd), sizeof(errhd)-strlen(errhd),
-#else
- sprintf(errhd+strlen(errhd),
-#endif /* HAVE_SNPRINTF */
GT_("recipient address %s didn't match any local name"), idp->id);
}
}
@@ -1258,26 +1223,16 @@ int readheaders(int sock,
if (has_nuls)
{
if (errhd[sizeof("X-Fetchmail-Warning: ")])
-#ifdef HAVE_SNPRINTF
snprintf(errhd+strlen(errhd), sizeof(errhd)-strlen(errhd), "; ");
snprintf(errhd+strlen(errhd), sizeof(errhd)-strlen(errhd),
-#else
- strcat(errhd, "; ");
- strcat(errhd,
-#endif /* HAVE_SNPRINTF */
GT_("message has embedded NULs"));
}
if (bad_addresses)
{
if (errhd[sizeof("X-Fetchmail-Warning: ")])
-#ifdef HAVE_SNPRINTF
snprintf(errhd+strlen(errhd), sizeof(errhd)-strlen(errhd), "; ");
snprintf(errhd+strlen(errhd), sizeof(errhd)-strlen(errhd),
-#else
- strcat(errhd, "; ");
- strcat(errhd,
-#endif /* HAVE_SNPRINTF */
GT_("SMTP listener rejected local recipient addresses: "));
errlen = strlen(errhd);
for (idp = msgblk.recipients; idp; idp = idp->next)
@@ -1466,18 +1421,10 @@ va_dcl
#else
va_start(ap);
#endif
-#ifdef HAVE_VSNPRINTF
vsnprintf(buf + strlen(buf), sizeof(buf)-strlen(buf), fmt, ap);
-#else
- vsprintf(buf + strlen(buf), fmt, ap);
-#endif
va_end(ap);
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\r\n");
-#else
- strcat(buf, "\r\n");
-#endif /* HAVE_SNPRINTF */
SockWrite(sock, buf, strlen(buf));
if (outlevel >= O_MONITOR)
@@ -1551,18 +1498,10 @@ va_dcl
#else
va_start(ap);
#endif
-#ifdef HAVE_VSNPRINTF
vsnprintf(buf + strlen(buf), sizeof(buf)-strlen(buf), fmt, ap);
-#else
- vsprintf(buf + strlen(buf), fmt, ap);
-#endif
va_end(ap);
-#ifdef HAVE_SNPRINTF
snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\r\n");
-#else
- strcat(buf, "\r\n");
-#endif /* HAVE_SNPRINTF */
SockWrite(sock, buf, strlen(buf));
if (outlevel >= O_MONITOR)