DNSConf-macros.h revision 9c3531d72aeaad6c5f01efe6a1c82023e1379e4d
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer/*
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updater * Copyright (C) 2000 Internet Software Consortium.
499b34cea04a46823d003d4c0520c8b03e8513cbBrian Wellington *
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * Permission to use, copy, modify, and distribute this software for any
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater * purpose with or without fee is hereby granted, provided that the above
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer * copyright notice and this permission notice appear in all copies.
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer *
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * SOFTWARE.
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer */
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt/* $Id: DNSConf-macros.h,v 1.3 2000/06/22 21:53:29 tale Exp $ */
821644d49b73b49f2abc5463bc53a3132f612478Mark Andrews
821644d49b73b49f2abc5463bc53a3132f612478Mark Andrews#define CONCAT(a,b) a ## b
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer#define DNSCONF_SET_STRING(FIELD) \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyervoid CONCAT(DNSConf_set, FIELD)(DNSConf *cfg, const char *arg) { \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer \
f333ea9bdd3f85b74ae790e6c8ce2684295b3483Andreas Gustafsson DBGPRINT("inside DNSConf_set" #FIELD "\n"); \
4f37905cc38162128a507e619e38ae535720686bAndreas Gustafsson \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer if (!DNSConf_initctx(cfg)) \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer return; \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt if (arg == NULL) { \
5a77e9620a0b2f7417469c98be374de49d0eccc6Andreas Gustafsson DBGPRINT("null pointer\n"); \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer CONCAT(dns_c_ctx_unset, FIELD)(cfg->confctx); \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer } else if (*arg == '\0') { \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer DBGPRINT("empty string\n"); \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer CONCAT(dns_c_ctx_unset, FIELD)(cfg->confctx); \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington } else \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington CONCAT(dns_c_ctx_set, FIELD)(cfg->confctx, arg); \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington}
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington#define DNSCONF_GET_STRING(FIELD) \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellingtonchar * CONCAT(DNSConf_get, FIELD)(DNSConf *cfg) { \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington char *result = NULL; \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington isc_result_t tmpres; \
e2f470bebb3a0c107bc4ac86c6920c21e50e83e0Brian Wellington \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt if (cfg == NULL || cfg->confctx == NULL) \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt return NULL; \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer tmpres = CONCAT(dns_c_ctx_get, FIELD)(cfg->confctx, &result); \
c3c6770e537ea916265c78d0294ad108233e17c1Michael Sawyer if (tmpres == ISC_R_NOTFOUND) \
2c15fcdeac4c2402258867fbac24d7475ef98259Mark Andrews return NULL; \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt return result; \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt} \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt#define STRING_FIELD_DEFS(FIELD) \
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt DNSCONF_GET_STRING(FIELD) DNSCONF_SET_STRING(FIELD)
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt#define INT_FIELD_DEFS(FIELD)
9069215eac23e32f4ef1c8e44ad7ff2865cfcdacEvan Hunt