hi philip,
>> in my limited experience, BIND_8_COMPAT is *supposed* to be the flag that
>> does the trick ... but i've only seen/used it in configure.in, NOT on the
>> cmd line
>
> In that case, putting
>
># define BIND_8_COMPAT
>
> in the OS/os.h-Darwin file for Exim should do the trick. If it does, I
> will put it into the distribution.
unfortunately, it seems NOT to do the trick ...
with, or without the edit of:
=========================================
(EDITOR) src/exim.h
@49
/* ANSI C standard includes */
+++ #include <arpa/nameser_compat.h>
#include <ctype.h>
=========================================
the addition of:
=========================================
(EDITOR) OS/os.h-Darwin
@6
+++ #define BIND_8_COMPAT
#define HAVE_MMAP
=========================================
causes 'make' to fail with:
...
>>> eximon script built
cc -DCOMPILE_UTILITY spool_in.c
In file included from /usr/local/include/spf2/spf_dns.h:106,
from /usr/local/include/spf2/spf_server.h:22,
from /usr/local/include/spf2/spf.h:27,
from spf.h:17,
from exim.h:437,
from spool_in.c:14:
/usr/local/include/spf2/spf_dns_rr.h:44: error: parse error before 'ns_type'
/usr/local/include/spf2/spf_dns_rr.h:60: error: parse error before '}' token
/usr/local/include/spf2/spf_dns_rr.h:66: error: parse error before 'ns_type'
In file included from /usr/local/include/spf2/spf_server.h:22,
from /usr/local/include/spf2/spf.h:27,
from spf.h:17,
from exim.h:437,
from spool_in.c:14:
/usr/local/include/spf2/spf_dns.h:116: error: parse error before 'ns_type'
/usr/local/include/spf2/spf_dns.h:148: error: parse error before 'ns_type'
/usr/local/include/spf2/spf_dns.h:151: error: parse error before 'ns_type'
/usr/local/include/spf2/spf_dns.h:154: error: parse error before 'ns_type'
make[1]: *** [util-spool_in.o] Error 1
make: *** [go] Error 2
whereas,
WITHOUT the change to 'OS/os.h-Darwin'
WITH the change to 'src/exim.h'
the make completes OK,
...
smtp_in.o definition of _deny_severity in section (__DATA,__data)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/../../../libwrap.dylib(tcpd.o)
definition of _deny_severity
/usr/bin/strip exim
>>> exim binary built
and the binaries install/launch.
for reference, i've included the ssrc of *my*:
% cat /usr/local/include/spf2/spf_dns_rr.h
here --
=======================================================
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of either:
*
* a) The GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1, or (at your option) any
* later version,
*
* OR
*
* b) The two-clause BSD license.
*
* These licenses can be found with the distribution in the file LICENSES
*/
#ifndef INC_SPF_DNS_RR
#define INC_SPF_DNS_RR
typedef struct SPF_dns_rr_struct SPF_dns_rr_t;
#include "spf_dns.h"
/* The strings in this union are usually malloc'ed larger than the
* size of the union. Only create pointers to it! */
typedef union
{
struct in_addr a;
char ptr[1];
char mx[1];
char txt[1];
struct in6_addr aaaa;
} SPF_dns_rr_data_t;
struct SPF_dns_rr_struct
{
/* query information */
char *domain; /* FQDN queried
for */
size_t domain_buf_len;/* alloced size of
domain */
ns_type rr_type; /* type of RR
queried for */
/* answer information */
int num_rr; /* number of RR
returned in rr */
SPF_dns_rr_data_t **rr; /* rr set returned */
size_t *rr_buf_len;/* alloced size of each rr
*/
int rr_buf_num;/* number of RR allocated
*/
time_t ttl; /* raw TTL */
time_t utc_ttl; /* TTL adjusted to UTC
*/
SPF_dns_stat_t herrno; /* h_error returned from query
*/
/* misc information */
void *hook; /* used by DNS layers
*/
SPF_dns_server_t *source; /* which layer created this RR */
};
SPF_dns_rr_t *SPF_dns_rr_new(void);
void SPF_dns_rr_free(SPF_dns_rr_t *spfrr);
SPF_dns_rr_t *SPF_dns_rr_new_init(SPF_dns_server_t *spf_dns_server,
const char *domain,
ns_type rr_type, int ttl,
SPF_dns_stat_t herrno);
SPF_dns_rr_t *SPF_dns_rr_new_nxdomain(SPF_dns_server_t *spf_dns_server,
const char *domain);
SPF_errcode_t SPF_dns_rr_buf_realloc(SPF_dns_rr_t *spfrr,
int idx, size_t len );
SPF_errcode_t SPF_dns_rr_dup(SPF_dns_rr_t **dstp, SPF_dns_rr_t *src);
#endif
=======================================================
richard