Hi,
Phil Pennock wrote:
> On 2009-07-30 at 08:32 +0300, Artis Caune wrote:
>> I found whats wrong, but not sure who is wrong: exim or FreeBSD.
>> Exim use "first? DB_FIRST : DB_NEXT" in db v2, v3, but in v1 it use
>> "R_FIRST : 0", but R_FIRST is not 0:
>>
>> /usr/include/db.h:#define R_FIRST 3 /* seq */
>>
>> FreeBSD r190495 introduced this loop, but only if used incorrectly.
>> So it looks like both should be fixed.
>> Patch was obtained from OpenBSD (and/or NetBSD) so I think same problem here.
>
> Good diagnosis, thanks.
>
> Exim should be using R_NEXT, but the previous code has worked for
> everyone until FreeBSD 8, so I suspect a value change from the defaults
> (which would be an ABI change too).
>
>> This patch fix problem for me:
>
> I filed a bug with a patch which is less likely to run into issues on
> obscure platforms where I've no idea what flags do or do not exist, when
> Exim has apparently worked fine with the old value before.
>
> http://bugs.exim.org/show_bug.cgi?id=871
Sorry I didn't find the context of this discussion, where can I find the
rest part of it?
(By the way, regarding to R_* constants, I think they are from the very
beginning of FreeBSD and has never changed. Also, r190495 seems to be
an unrelated change, which should only affect db's open() behavior,
maybe I need to dig into the code in order to find out why, and thanks
for letting us know the problem...)
Cheers,
- --
Xin LI <delphij@???> http://www.delphij.net/
FreeBSD - The Power to Serve!