[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zmailer on FreeBSD



Victor Gamov <vit@lipetsk.ru> writes:

> 	I'm using ZMailer on FreeBSD since ZMailer 2.99.49 and FreeBSD-2.1 
> It's compile and works fine before 2.99.51 -- in this version I observe
> mixing headers of various messages into other for first time.  Now I use
> ZMailer-2.99.52 on FreeBSD-3.4 RELEASE about 100 messages per day and I
> haven't this problem. 

The traffic is too low - I guess.

> But on another FreeBSD-3.4 box with ZMailer-2.99.51 and about 16,000
> - 17,000 messages per day this problem still present.
> 
> 	I don't know where is problem but I think that is FreeBSD's mmap()
> problem

The VM subsystem has changed significantly from 3.x to 4.x release. As
Matt Dillon wrote - `mmap should work reliably now'. I don't know, but
disabling mmap in Zmailer (--without-ta-mmap) once I tried it didn't
fix the problem (it was 3.4 though).

As for 2.99.54 - I made it compile on FreeBSD 4.2-BETA (patch
attached). You should also comment out following line in config.h
after running configure:

#define HAVE_NDBM_H 1

Because DBM_PAGFNO_NOT_AVAILABLE used in /usr/include/ndbm.h doesn't
seem to be defined anywhere.

Matti. If you don't have any BSD machines handy and would like to work
on fixing Zmailer on BSD's - please - check www.sourceforge.net. If
the resources they provide are not sufficient let me know - I will
give you access to one of my machines.

/S

PGP signature

diff -c -r zmailer-2.99.54/lib/selfaddrs.c zmailer-2.99.54/lib/selfaddrs.c
*** zmailer-2.99.54/lib/selfaddrs.c	Mon Sep  4 18:21:40 2000
--- zmailer-2.99.54/lib/selfaddrs.c	Sat Nov 11 15:29:36 2000
***************
*** 142,148 ****
  		return -5; /* UAARGH! */
  	      }
  
! 	      if (sa->sa.sa_family == AF_INET) {
  		struct sockaddr_in *si4 = (void*)malloc(sizeof(*si4));
  		if (si4 == NULL)
  		  break;
--- 142,148 ----
  		return -5; /* UAARGH! */
  	      }
  
! 	      if (sa->sa_family == AF_INET) {
  		struct sockaddr_in *si4 = (void*)malloc(sizeof(*si4));
  		if (si4 == NULL)
  		  break;
diff -c -r zmailer-2.99.54/lib/zgetifaddress.c zmailer-2.99.54/lib/zgetifaddress.c
*** zmailer-2.99.54/lib/zgetifaddress.c	Fri Jul 14 13:42:03 2000
--- zmailer-2.99.54/lib/zgetifaddress.c	Sat Nov 11 15:29:53 2000
***************
*** 121,130 ****
  
  	      /* We have matching name, do we have matching AF ?? */
  
! 	      if (sa->sa.sa_family != af)
  		continue; /* Nope.. */
  
! 	      if (sa->sa.sa_family == AF_INET) {
  		struct sockaddr_in *si4 = (void*)sap;
  
  		if (si4 == NULL) break; /* Bad param! */
--- 121,130 ----
  
  	      /* We have matching name, do we have matching AF ?? */
  
! 	      if (sa->sa_family != af)
  		continue; /* Nope.. */
  
! 	      if (sa->sa_family == AF_INET) {
  		struct sockaddr_in *si4 = (void*)sap;
  
  		if (si4 == NULL) break; /* Bad param! */