You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
271 lines
7.0 KiB
271 lines
7.0 KiB
diff -NrU5 postal-0.69.orig/bhm.cpp postal-0.69/bhm.cpp
|
|
--- postal-0.69.orig/bhm.cpp 2008-04-23 22:39:01.000000000 +0200
|
|
+++ postal-0.69/bhm.cpp 2008-04-24 01:31:54.000000000 +0200
|
|
@@ -7,10 +7,11 @@
|
|
#include <ctype.h>
|
|
#include <unistd.h>
|
|
#include <sys/wait.h>
|
|
#include <signal.h>
|
|
#include <stdio.h>
|
|
+#include <cstdlib>
|
|
#include <sys/poll.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <arpa/inet.h>
|
|
#include <netinet/ip.h>
|
|
diff -NrU5 postal-0.69.orig/bhmusers.cpp postal-0.69/bhmusers.cpp
|
|
--- postal-0.69.orig/bhmusers.cpp 2008-04-10 03:36:27.000000000 +0200
|
|
+++ postal-0.69/bhmusers.cpp 2008-04-24 00:04:07.000000000 +0200
|
|
@@ -1,9 +1,10 @@
|
|
#include "bhmusers.h"
|
|
#include <stdio.h>
|
|
#include <cstring>
|
|
#include "expand.h"
|
|
+#include <cstdlib>
|
|
|
|
BHMUsers::BHMUsers(const char *userListFile)
|
|
{
|
|
char buf[1024];
|
|
FILE *fp = fopen(userListFile, "r");
|
|
diff -NrU5 postal-0.69.orig/bhmusers.h postal-0.69/bhmusers.h
|
|
--- postal-0.69.orig/bhmusers.h 2006-09-28 17:20:28.000000000 +0200
|
|
+++ postal-0.69/bhmusers.h 2008-04-24 00:14:05.000000000 +0200
|
|
@@ -4,16 +4,21 @@
|
|
using namespace std;
|
|
|
|
#include <string>
|
|
#include "conf.h"
|
|
|
|
+#ifdef HAVE_STDCXX_0X
|
|
+#include <unordered_map>
|
|
+#include <tr1/functional_hash.h>
|
|
+#else
|
|
#ifdef HAVE_EXT_HASH_MAP
|
|
using namespace __gnu_cxx;
|
|
#include <ext/hash_map>
|
|
#else
|
|
#include <hash_map.h>
|
|
#endif
|
|
+#endif
|
|
|
|
#include "postal.h"
|
|
|
|
typedef enum { eNone = 0, eDefer, eReject, eBounce, eGrey } USER_SMTP_ACTION;
|
|
|
|
@@ -21,10 +26,13 @@
|
|
{
|
|
USER_SMTP_ACTION action;
|
|
int sync_time;
|
|
} BHM_DATA;
|
|
|
|
+#ifdef HAVE_STDCXX_0X
|
|
+typedef unordered_map<string, BHM_DATA , hash<string> > NAME_MAP;
|
|
+#else
|
|
namespace __gnu_cxx
|
|
{
|
|
template<> struct hash< std::string >
|
|
{
|
|
size_t operator() ( const std::string &x ) const
|
|
@@ -33,10 +41,11 @@
|
|
}
|
|
};
|
|
}
|
|
|
|
typedef hash_map<string, BHM_DATA , hash<string> > NAME_MAP;
|
|
+#endif
|
|
|
|
class BHMUsers
|
|
{
|
|
public:
|
|
BHMUsers(const char *userListFile);
|
|
diff -NrU5 postal-0.69.orig/configure.in postal-0.69/configure.in
|
|
--- postal-0.69.orig/configure.in 2008-04-23 22:39:01.000000000 +0200
|
|
+++ postal-0.69/configure.in 2008-04-24 01:20:35.000000000 +0200
|
|
@@ -155,6 +155,98 @@
|
|
|
|
AC_CHECK_HEADERS(vector ext/hash_map)
|
|
|
|
dnl Checks for library functions.
|
|
|
|
+AC_DEFUN([AC_COMPILE_STDCXX_0X], [
|
|
+ AC_CACHE_CHECK(if g++ supports C++0x features without additional flags,
|
|
+ ac_cv_cxx_compile_cxx0x_native,
|
|
+ [AC_LANG_SAVE
|
|
+ AC_LANG_CPLUSPLUS
|
|
+ AC_TRY_COMPILE([
|
|
+ template <typename T>
|
|
+ struct check
|
|
+ {
|
|
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
|
+ };
|
|
+
|
|
+ typedef check<check<bool>> right_angle_brackets;
|
|
+
|
|
+ int a;
|
|
+ decltype(a) b;
|
|
+
|
|
+ typedef check<int> check_type;
|
|
+ check_type c;
|
|
+ check_type&& cr = c;],,
|
|
+ ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no)
|
|
+ AC_LANG_RESTORE
|
|
+ ])
|
|
+
|
|
+ AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x,
|
|
+ ac_cv_cxx_compile_cxx0x_cxx,
|
|
+ [AC_LANG_SAVE
|
|
+ AC_LANG_CPLUSPLUS
|
|
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
|
+ CXXFLAGS="$CXXFLAGS -std=c++0x"
|
|
+ AC_TRY_COMPILE([
|
|
+ template <typename T>
|
|
+ struct check
|
|
+ {
|
|
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
|
+ };
|
|
+
|
|
+ typedef check<check<bool>> right_angle_brackets;
|
|
+
|
|
+ int a;
|
|
+ decltype(a) b;
|
|
+
|
|
+ typedef check<int> check_type;
|
|
+ check_type c;
|
|
+ check_type&& cr = c;],,
|
|
+ ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no)
|
|
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
|
+ AC_LANG_RESTORE
|
|
+ ])
|
|
+
|
|
+ AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x,
|
|
+ ac_cv_cxx_compile_cxx0x_gxx,
|
|
+ [AC_LANG_SAVE
|
|
+ AC_LANG_CPLUSPLUS
|
|
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
|
+ CXXFLAGS="$CXXFLAGS -std=gnu++0x"
|
|
+ AC_TRY_COMPILE([
|
|
+ template <typename T>
|
|
+ struct check
|
|
+ {
|
|
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
|
+ };
|
|
+
|
|
+ typedef check<check<bool>> right_angle_brackets;
|
|
+
|
|
+ int a;
|
|
+ decltype(a) b;
|
|
+
|
|
+ typedef check<int> check_type;
|
|
+ check_type c;
|
|
+ check_type&& cr = c;],,
|
|
+ ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no)
|
|
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
|
+ AC_LANG_RESTORE
|
|
+ ])
|
|
+
|
|
+ if test "$ac_cv_cxx_compile_cxx0x_native" = yes ||
|
|
+ test "$ac_cv_cxx_compile_cxx0x_cxx" = yes ||
|
|
+ test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then
|
|
+ AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ])
|
|
+ fi
|
|
+])
|
|
+
|
|
+AC_COMPILE_STDCXX_0X
|
|
+
|
|
+AC_SUBST(cstd)
|
|
+cstd=
|
|
+if test "$ac_cv_cxx_compile_cxx0x_cxx" = yes; then
|
|
+ cstd=-std=c++0x
|
|
+fi
|
|
+
|
|
AC_OUTPUT(Makefile postal.h port.h postal.spec sun/pkginfo)
|
|
+
|
|
diff -NrU5 postal-0.69.orig/Makefile.in postal-0.69/Makefile.in
|
|
--- postal-0.69.orig/Makefile.in 2008-04-23 22:39:01.000000000 +0200
|
|
+++ postal-0.69/Makefile.in 2008-04-24 00:29:40.000000000 +0200
|
|
@@ -8,12 +8,12 @@
|
|
prefix=@prefix@
|
|
eprefix=@exec_prefix@
|
|
WFLAGS=-Wall -W -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Wcast-qual -pedantic
|
|
WPLUS=-Woverloaded-virtual -ffor-scope
|
|
|
|
-CXX=@CXX@ $(CFLAGS) -O2 -g $(WFLAGS) $(WPLUS)
|
|
-CC=@CC@ $(CFLAGS) -O2 -g $(WFLAGS)
|
|
+CXX=@CXX@ @cstd@ $(CFLAGS) $(WFLAGS) $(WPLUS)
|
|
+CC=@CC@ $(CFLAGS) $(WFLAGS)
|
|
|
|
INSTALL=@INSTALL@
|
|
|
|
TESTEXE=ex-test
|
|
BASEOBJS=userlist.o thread.o results.o address.o tcp.o cmd5.o mutex.o logit.o expand.o @extra_objs@
|
|
diff -NrU5 postal-0.69.orig/postal.cpp postal-0.69/postal.cpp
|
|
--- postal-0.69.orig/postal.cpp 2007-01-14 05:40:23.000000000 +0100
|
|
+++ postal-0.69/postal.cpp 2008-04-24 01:30:49.000000000 +0200
|
|
@@ -6,10 +6,11 @@
|
|
#include "smtp.h"
|
|
#include <unistd.h>
|
|
#include <sys/wait.h>
|
|
#include <signal.h>
|
|
#include <stdio.h>
|
|
+#include <cstdlib>
|
|
#include "postal.h"
|
|
#include "logit.h"
|
|
#ifdef USE_GNUTLS
|
|
#include <errno.h>
|
|
#include <gcrypt.h>
|
|
diff -NrU5 postal-0.69.orig/smtp.cpp postal-0.69/smtp.cpp
|
|
--- postal-0.69.orig/smtp.cpp 2008-04-19 00:01:39.000000000 +0200
|
|
+++ postal-0.69/smtp.cpp 2008-04-24 00:14:49.000000000 +0200
|
|
@@ -7,10 +7,11 @@
|
|
#include <time.h>
|
|
#include "userlist.h"
|
|
#include "logit.h"
|
|
#include "results.h"
|
|
#include <cstring>
|
|
+#include <cstdlib>
|
|
|
|
smtpData::smtpData()
|
|
: m_quit("QUIT\r\n")
|
|
, m_randomLetters("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 `~!@#$%^&*()-_=+[]{};:'\"|/?<>,")
|
|
, m_randomLen(strlen(m_randomLetters))
|
|
diff -NrU5 postal-0.69.orig/smtp.h postal-0.69/smtp.h
|
|
--- postal-0.69.orig/smtp.h 2008-04-19 00:01:23.000000000 +0200
|
|
+++ postal-0.69/smtp.h 2008-04-24 00:18:03.000000000 +0200
|
|
@@ -4,16 +4,20 @@
|
|
using namespace std;
|
|
#include <string>
|
|
#include <cstring>
|
|
#include <time.h>
|
|
#include "conf.h"
|
|
+#ifdef HAVE_STDCXX_0X
|
|
+#include <unordered_map>
|
|
+#else
|
|
#ifdef HAVE_EXT_HASH_MAP
|
|
using namespace __gnu_cxx;
|
|
#include <ext/hash_map>
|
|
#else
|
|
#include <hash_map.h>
|
|
#endif
|
|
+#endif
|
|
#include "tcp.h"
|
|
#include "mutex.h"
|
|
|
|
class results;
|
|
|
|
@@ -28,11 +32,15 @@
|
|
{
|
|
return (l1 == l2);
|
|
}
|
|
};
|
|
|
|
+#ifdef HAVE_STDCXX_0X
|
|
+typedef unordered_map<unsigned long, string *, hash<unsigned long>, eqlng> NAME_MAP;
|
|
+#else
|
|
typedef hash_map<unsigned long, string *, hash<unsigned long>, eqlng> NAME_MAP;
|
|
+#endif
|
|
|
|
class smtpData
|
|
{
|
|
public:
|
|
smtpData();
|