Wietse Venema:
> lst_ho...@kwsoft.de:
> > Zitat von Wietse Venema <wie...@porcupine.org>:
> > 
> > > lst_ho...@kwsoft.de:
> > >> With both changes it looks ok now (first blacklisted, second 
> > >> whitelisted):
> > >>
> > >>
> > >> Jan 17 16:28:23 hpux2 postfix/master[28899]: daemon started -- version
> > >> 2.8.0-RC1, configuration /etc/postfix
> > >> Jan 17 16:28:33 hpux2 postfix/postscreen[28903]: CONNECT from
> > >> [10.1.70.1]:48111
> > >> Jan 17 16:28:33 hpux2 postfix/postscreen[28903]: entering STRESS mode
> > >> with 1 connections
> > >> Jan 17 16:28:33 hpux2 postfix/postscreen[28903]: BLACKLISTED  
> > >> [10.1.70.1]:48111
> > >> Jan 17 16:28:33 hpux2 postfix/postscreen[28903]: PASS OLD 
> > >> [10.1.70.1]:48111
> > >> Jan 17 16:28:33 hpux2 postfix/postscreen[28903]: leaving STRESS mode
> > >> with 0 connections
> > >
> > > Do you have a low postscreen_pre_queue_limit limit? It should
> > > normally enter stress mode with more than 1 connection.
> > >
> > >   Wietse
> > 
> > Not that i'm aware of. This is a test-only install, so the values are  
> > at default beside the parameters needed to get postscreen working, so  
> > it should be at $default_process_limit which is reported by postconf  
> > with "100".
> 
> In that case, would you briefly run it as "postscreen -v" and report
> the postscreen_command_time_limit logging as it starts up. ]
> 
> This is what I expect to see (default_process_limit = 100):
> 
> Jan 17 11:32:56 tail postfix/postscreen[17566]: 
> postscreen_command_time_limit: stress=10 normal=300 lowat=70 hiwat=90
> 
> hiwat=90 means enter stress mode with 90 or more connections
> lowat=70 means leave stress mode with 70 or fewer connections.
> 
> You don't want to leave verbose mode on because it slows down
> postscreen which handles by all SMTP connections.

If this is what I suspect, then the HP-UX linker does not distinguish
between psc_check_queue_length_hiwat and psc_check_queue_length_lowat.

Both names are 28 characters, which is within the ANSI C limit for
internal symbol significance, but above the guaranteed 6-character
limit for external symbol significance.

These two variables are initialized in the postscreen.c module,
but the "entering/leaving STRESS" checks are done in the
postscreen_state.c module. If the linker truncates the names, then
postscreen_state.c will access a variable with a shorter name that
may be left at zero.

In detail, psc_new_session_state() checks the high-water mark (and
logs "entering STRESS mode with 1 connections") while and
psc_free_session_state() checks the low-water mark (and logs "leaving
STRESS mode with 0 connections"). This confirms that they both
test a variable that is left at zero instead of the long-name
variables that are initialized at 70 and 90, respectively.

Try adding to postscreen.h two lines at the top with:

#define psc_check_queue_length_hiwat    psc_hiwat
#define psc_check_queue_length_lowat    psc_lowat

        Wietse

Reply via email to