Hello, I have an other patch for the queue overflow handling. I think it is better than the previous one. The previous one had a bug in the sync_sender function. The condition of the while loop should have been locked together with the removal of the sync entry. In this new patch the sync queue handling is concentrated only into two new functions: sync_queue_poke and sync_queue_peek. It is rather self explainable what they are doing. Disadvantages: - When new sync entry is created malloc and free is going to be done even the queue is already full. - On config reload there may be many lock - unlock executed on each sync_queue. For this one I plan to have an other patch: On config reload if the new peer was already existing there is no need to change anything on the peer structure, including its sync queue. It has to be applied to the plain 1.5.11 distribution. Bests, Attila PS: for the sync.h I made conditional definition of SYNC_MAXQLEN, I could test my patch with CFLAGS="-DSYNC_MAXQLEN=4" on configure stage. It should not heart. Somebody else may use it as well wanting different value than 1024 for SYNC_MAXQLEN.
Message
RE: [milter-greylist] milter-greylist 1.4 : peer x.x.x.x queue overflow
2004-11-12 by attila.bruncsak@itu.int
Attachments
- No local attachments were found for this message.