mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-19 00:55:01 -04:00
fix broken windows build
The MSVS C compiler requires every struct to have at least one member.
The dns_geoip_databases_t structure had one set of members for
HAVE_GEOIP and a different set for HAVE_GEOIP2, and none when neither
API is in use.
This commit silences the compiler error by moving the declaration of
dns_geoip_databases_t to types.h as an opaque reference, and commenting
out the contents of geoip.h when neither version of GeoIP is enabled.
(cherry picked from commit 81fcde5953)
This commit is contained in:
parent
c4565c994d
commit
2b8cdc06f9
4 changed files with 32 additions and 23 deletions
|
|
@ -9503,6 +9503,7 @@ static void
|
|||
run_server(isc_task_t *task, isc_event_t *event) {
|
||||
isc_result_t result;
|
||||
named_server_t *server = (named_server_t *)event->ev_arg;
|
||||
dns_geoip_databases_t *geoip;
|
||||
|
||||
INSIST(task == server->task);
|
||||
|
||||
|
|
@ -9513,16 +9514,17 @@ run_server(isc_task_t *task, isc_event_t *event) {
|
|||
|
||||
dns_dispatchmgr_setstats(named_g_dispatchmgr, server->resolverstats);
|
||||
|
||||
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||
geoip = named_g_geoip;
|
||||
#else
|
||||
geoip = NULL;
|
||||
#endif
|
||||
|
||||
CHECKFATAL(ns_interfacemgr_create(named_g_mctx, server->sctx,
|
||||
named_g_taskmgr, named_g_timermgr,
|
||||
named_g_socketmgr,
|
||||
named_g_dispatchmgr,
|
||||
server->task, named_g_udpdisp,
|
||||
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||
named_g_geoip,
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
server->task, named_g_udpdisp, geoip,
|
||||
&server->interfacemgr),
|
||||
"creating interface manager");
|
||||
|
||||
|
|
|
|||
|
|
@ -16,11 +16,13 @@
|
|||
***** Module Info
|
||||
*****/
|
||||
|
||||
/*! \file dns/acl.h
|
||||
/*! \file dns/geoip.h
|
||||
* \brief
|
||||
* Address match list handling.
|
||||
* GeoIP/GeoIP2 data types and function prototypes.
|
||||
*/
|
||||
|
||||
#if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
|
||||
|
||||
/***
|
||||
*** Imports
|
||||
***/
|
||||
|
|
@ -84,8 +86,8 @@ typedef struct dns_geoip_elem {
|
|||
};
|
||||
} dns_geoip_elem_t;
|
||||
|
||||
typedef struct dns_geoip_databases {
|
||||
#if defined(HAVE_GEOIP2)
|
||||
struct dns_geoip_databases {
|
||||
#ifdef HAVE_GEOIP2
|
||||
void *country; /* GeoIP2-Country or GeoLite2-Country */
|
||||
void *city; /* GeoIP2-CIty or GeoLite2-City */
|
||||
void *domain; /* GeoIP2-Domain */
|
||||
|
|
@ -93,21 +95,21 @@ typedef struct dns_geoip_databases {
|
|||
void *as; /* GeoIP2-ASN or GeoLite2-ASN */
|
||||
#define DNS_GEOIP_DATABASE_INIT \
|
||||
{ NULL, NULL, NULL, NULL, NULL }
|
||||
#elif defined(HAVE_GEOIP)
|
||||
void *country_v4; /* DB 1 */
|
||||
void *city_v4; /* DB 2 or 6 */
|
||||
void *region; /* DB 3 or 7 */
|
||||
void *isp; /* DB 4 */
|
||||
void *org; /* DB 5 */
|
||||
void *as; /* DB 9 */
|
||||
void *netspeed; /* DB 10 */
|
||||
void *domain; /* DB 11 */
|
||||
void *country_v6; /* DB 12 */
|
||||
void *city_v6; /* DB 30 or 31 */
|
||||
#else /* HAVE_GEOIP */
|
||||
void *country_v4; /* GeoIP DB 1 */
|
||||
void *city_v4; /* GeoIP DB 2 or 6 */
|
||||
void *region; /* GeoIP DB 3 or 7 */
|
||||
void *isp; /* GeoIP DB 4 */
|
||||
void *org; /* GeoIP DB 5 */
|
||||
void *as; /* GeoIP DB 9 */
|
||||
void *netspeed; /* GeoIP DB 10 */
|
||||
void *domain; /* GeoIP DB 11 */
|
||||
void *country_v6; /* GeoIP DB 12 */
|
||||
void *city_v6; /* GeoIP DB 30 or 31 */
|
||||
#define DNS_GEOIP_DATABASE_INIT \
|
||||
{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
|
||||
#endif
|
||||
} dns_geoip_databases_t;
|
||||
#endif /* HAVE_GEOIP */
|
||||
};
|
||||
|
||||
/***
|
||||
*** Functions
|
||||
|
|
@ -124,4 +126,7 @@ void
|
|||
dns_geoip_shutdown(void);
|
||||
|
||||
ISC_LANG_ENDDECLS
|
||||
|
||||
#endif /* HAVE_GEOIP | HAVE_GEOIP2 */
|
||||
|
||||
#endif /* DNS_GEOIP_H */
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ typedef struct dns_fixedname dns_fixedname_t;
|
|||
typedef struct dns_forwarders dns_forwarders_t;
|
||||
typedef struct dns_forwarder dns_forwarder_t;
|
||||
typedef struct dns_fwdtable dns_fwdtable_t;
|
||||
typedef struct dns_geoip_databases dns_geoip_databases_t;
|
||||
typedef struct dns_iptable dns_iptable_t;
|
||||
typedef uint32_t dns_iterations_t;
|
||||
typedef uint16_t dns_keyflags_t;
|
||||
|
|
|
|||
|
|
@ -820,6 +820,7 @@ geoip_can_answer(dns_aclelement_t *elt, cfg_aclconfctx_t *ctx) {
|
|||
case dns_geoip_netspeed_id:
|
||||
if (ctx->geoip->netspeed != NULL)
|
||||
return (true);
|
||||
/* FALLTHROUGH */
|
||||
/*
|
||||
* The following enums are only valid with GeoIP2,
|
||||
* not legacy GeoIP.
|
||||
|
|
|
|||
Loading…
Reference in a new issue