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

--
## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details 
at http://www.exim.org/ ##

Reply via email to