Lines Matching refs:obj

58 #define CLEANUP_OBJ(obj) \
59 do { if ((obj) != NULL) cfg_obj_destroy(pctx, &(obj)); } while (0)
67 free_tuple(cfg_parser_t *pctx, cfg_obj_t *obj);
73 print_list(cfg_printer_t *pctx, const cfg_obj_t *obj);
76 free_list(cfg_parser_t *pctx, cfg_obj_t *obj);
86 free_string(cfg_parser_t *pctx, cfg_obj_t *obj);
92 free_map(cfg_parser_t *pctx, cfg_obj_t *obj);
100 free_noop(cfg_parser_t *pctx, cfg_obj_t *obj);
139 cfg_print_obj(cfg_printer_t *pctx, const cfg_obj_t *obj) {
140 obj->type->print(pctx, obj);
182 cfg_print(const cfg_obj_t *obj,
190 obj->type->print(&pctx, obj);
201 cfg_obj_t *obj = NULL;
208 CHECK(cfg_create_obj(pctx, type, &obj));
209 obj->value.tuple = isc_mem_get(pctx->mctx,
211 if (obj->value.tuple == NULL) {
216 obj->value.tuple[i] = NULL;
217 *ret = obj;
221 if (obj != NULL)
222 isc_mem_put(pctx->mctx, obj, sizeof(*obj));
232 cfg_obj_t *obj = NULL;
235 CHECK(cfg_create_tuple(pctx, type, &obj));
237 CHECK(cfg_parse_obj(pctx, f->type, &obj->value.tuple[i]));
239 *ret = obj;
243 CLEANUP_OBJ(obj);
248 cfg_print_tuple(cfg_printer_t *pctx, const cfg_obj_t *obj) {
250 const cfg_tuplefielddef_t *fields = obj->type->of;
255 const cfg_obj_t *fieldobj = obj->value.tuple[i];
278 free_tuple(cfg_parser_t *pctx, cfg_obj_t *obj) {
280 const cfg_tuplefielddef_t *fields = obj->type->of;
284 if (obj->value.tuple == NULL)
288 CLEANUP_OBJ(obj->value.tuple[i]);
291 isc_mem_put(pctx->mctx, obj->value.tuple,
296 cfg_obj_istuple(const cfg_obj_t *obj) {
297 REQUIRE(obj != NULL);
298 return (ISC_TF(obj->type->rep == &cfg_rep_tuple));
450 elt->obj = stringobj;
475 cfg_obj_t *obj = NULL;
477 result = cfg_parse_obj(pctx, type, &obj);
494 *ret = obj;
498 CLEANUP_OBJ(obj);
554 cfg_print_void(cfg_printer_t *pctx, const cfg_obj_t *obj) {
556 UNUSED(obj);
566 cfg_obj_isvoid(const cfg_obj_t *obj) {
567 REQUIRE(obj != NULL);
568 return (ISC_TF(obj->type->rep == &cfg_rep_void));
582 cfg_obj_t *obj = NULL;
591 CHECK(cfg_create_obj(pctx, &cfg_type_uint32, &obj));
593 obj->value.uint32 = pctx->token.value.as_ulong;
594 *ret = obj;
612 cfg_print_uint32(cfg_printer_t *pctx, const cfg_obj_t *obj) {
613 cfg_print_rawuint(pctx, obj->value.uint32);
617 cfg_obj_isuint32(const cfg_obj_t *obj) {
618 REQUIRE(obj != NULL);
619 return (ISC_TF(obj->type->rep == &cfg_rep_uint32));
623 cfg_obj_asuint32(const cfg_obj_t *obj) {
624 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_uint32);
625 return (obj->value.uint32);
638 cfg_obj_isuint64(const cfg_obj_t *obj) {
639 REQUIRE(obj != NULL);
640 return (ISC_TF(obj->type->rep == &cfg_rep_uint64));
644 cfg_obj_asuint64(const cfg_obj_t *obj) {
645 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_uint64);
646 return (obj->value.uint64);
650 cfg_print_uint64(cfg_printer_t *pctx, const cfg_obj_t *obj) {
653 obj->value.uint64);
673 cfg_obj_t *obj = NULL;
676 CHECK(cfg_create_obj(pctx, type, &obj));
678 obj->value.string.length = len;
679 obj->value.string.base = isc_mem_get(pctx->mctx, len + 1);
680 if (obj->value.string.base == 0) {
681 isc_mem_put(pctx->mctx, obj, sizeof(*obj));
684 memmove(obj->value.string.base, contents, len);
685 obj->value.string.base[len] = '\0';
687 *ret = obj;
755 check_enum(cfg_parser_t *pctx, cfg_obj_t *obj, const char *const *enums) {
756 const char *s = obj->value.string.base;
766 cfg_obj_t *obj = NULL;
767 CHECK(parse_ustring(pctx, NULL, &obj));
768 CHECK(check_enum(pctx, obj, type->of));
769 *ret = obj;
772 CLEANUP_OBJ(obj);
789 cfg_print_ustring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
790 cfg_print_chars(pctx, obj->value.string.base, obj->value.string.length);
794 print_qstring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
796 cfg_print_ustring(pctx, obj);
801 free_string(cfg_parser_t *pctx, cfg_obj_t *obj) {
802 isc_mem_put(pctx->mctx, obj->value.string.base,
803 obj->value.string.length + 1);
807 cfg_obj_isstring(const cfg_obj_t *obj) {
808 REQUIRE(obj != NULL);
809 return (ISC_TF(obj->type->rep == &cfg_rep_string));
813 cfg_obj_asstring(const cfg_obj_t *obj) {
814 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_string);
815 return (obj->value.string.base);
841 cfg_obj_isboolean(const cfg_obj_t *obj) {
842 REQUIRE(obj != NULL);
843 return (ISC_TF(obj->type->rep == &cfg_rep_boolean));
847 cfg_obj_asboolean(const cfg_obj_t *obj) {
848 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_boolean);
849 return (obj->value.boolean);
857 cfg_obj_t *obj = NULL;
879 CHECK(cfg_create_obj(pctx, &cfg_type_boolean, &obj));
880 obj->value.boolean = value;
881 *ret = obj;
893 print_boolean(cfg_printer_t *pctx, const cfg_obj_t *obj) {
894 if (obj->value.boolean)
910 cfg_create_list(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **obj) {
912 CHECK(cfg_create_obj(pctx, type, obj));
913 ISC_LIST_INIT((*obj)->value.list);
924 elt->obj = NULL;
932 cfg_obj_destroy(pctx, &elt->obj);
937 free_list(cfg_parser_t *pctx, cfg_obj_t *obj) {
939 for (elt = ISC_LIST_HEAD(obj->value.list);
962 elt->obj = value;
1007 print_list(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1008 const cfg_list_t *list = &obj->value.list;
1015 cfg_print_obj(pctx, elt->obj);
1033 cfg_print_bracketed_list(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1035 print_list(pctx, obj);
1080 cfg_print_spacelist(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1081 const cfg_list_t *list = &obj->value.list;
1087 cfg_print_obj(pctx, elt->obj);
1094 cfg_obj_islist(const cfg_obj_t *obj) {
1095 REQUIRE(obj != NULL);
1096 return (ISC_TF(obj->type->rep == &cfg_rep_list));
1100 cfg_list_first(const cfg_obj_t *obj) {
1101 REQUIRE(obj == NULL || obj->type->rep == &cfg_rep_list);
1102 if (obj == NULL)
1104 return (ISC_LIST_HEAD(obj->value.list));
1114 * Return the length of a list object. If obj is NULL or is not
1118 cfg_list_length(const cfg_obj_t *obj, isc_boolean_t recurse) {
1122 if (obj == NULL || !cfg_obj_islist(obj))
1124 for (elt = cfg_list_first(obj);
1127 if (recurse && cfg_obj_islist(elt->obj)) {
1128 count += cfg_list_length(elt->obj, recurse);
1139 return (elt->obj);
1164 cfg_obj_t *obj = NULL;
1170 CHECK(create_map(pctx, type, &obj));
1172 obj->value.map.clausesets = clausesets;
1248 result = isc_symtab_lookup(obj->value.map.symtab,
1259 result = isc_symtab_define(obj->value.
1290 obj->value.map.symtab,
1307 *ret = obj;
1312 CLEANUP_OBJ(obj);
1324 cfg_obj_t *obj = NULL;
1327 CHECK(cfg_parse_obj(pctx, elttype, &obj));
1330 CHECK(pctx->callback(name, obj, pctx->callbackarg));
1332 symval.as_pointer = obj;
1339 CLEANUP_OBJ(obj);
1405 cfg_print_mapbody(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1410 for (clauseset = obj->value.map.clausesets;
1420 result = isc_symtab_lookup(obj->value.map.symtab,
1423 cfg_obj_t *obj = symval.as_pointer;
1424 if (obj->type == &cfg_type_implicitlist) {
1426 cfg_list_t *list = &obj->value.list;
1434 cfg_print_obj(pctx, elt->obj);
1442 cfg_print_obj(pctx, obj);
1486 cfg_print_map(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1487 if (obj->value.map.id != NULL) {
1488 cfg_print_obj(pctx, obj->value.map.id);
1492 cfg_print_mapbody(pctx, obj);
1548 cfg_obj_ismap(const cfg_obj_t *obj) {
1549 REQUIRE(obj != NULL);
1550 return (ISC_TF(obj->type->rep == &cfg_rep_map));
1554 cfg_map_get(const cfg_obj_t *mapobj, const char* name, const cfg_obj_t **obj) {
1561 REQUIRE(obj != NULL && *obj == NULL);
1568 *obj = val.as_pointer;
1582 cfg_obj_t *obj = NULL;
1588 CHECK(cfg_create_obj(pctx, &cfg_type_token, &obj));
1598 obj->value.string.base = isc_mem_get(pctx->mctx, r.length + 1);
1599 if (obj->value.string.base == NULL) {
1603 obj->value.string.length = r.length;
1604 memmove(obj->value.string.base, r.base, r.length);
1605 obj->value.string.base[r.length] = '\0';
1606 *ret = obj;
1610 if (obj != NULL)
1611 isc_mem_put(pctx->mctx, obj, sizeof(*obj));
1844 cfg_obj_t *obj = NULL;
1848 CHECK(cfg_create_obj(pctx, type, &obj));
1850 isc_sockaddr_fromnetaddr(&obj->value.sockaddr, &netaddr, 0);
1851 *ret = obj;
1854 CLEANUP_OBJ(obj);
1916 cfg_obj_t *obj = NULL;
1954 CHECK(cfg_create_obj(pctx, &cfg_type_netprefix, &obj));
1955 obj->value.netprefix.address = netaddr;
1956 obj->value.netprefix.prefixlen = prefixlen;
1957 *ret = obj;
1965 print_netprefix(cfg_printer_t *pctx, const cfg_obj_t *obj) {
1966 const cfg_netprefix_t *p = &obj->value.netprefix;
1974 cfg_obj_isnetprefix(const cfg_obj_t *obj) {
1975 REQUIRE(obj != NULL);
1976 return (ISC_TF(obj->type->rep == &cfg_rep_netprefix));
1980 cfg_obj_asnetprefix(const cfg_obj_t *obj, isc_netaddr_t *netaddr,
1983 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_netprefix);
1987 *netaddr = obj->value.netprefix.address;
1988 *prefixlen = obj->value.netprefix.prefixlen;
2003 cfg_obj_t *obj = NULL;
2005 CHECK(cfg_create_obj(pctx, type, &obj));
2013 isc_sockaddr_fromnetaddr(&obj->value.sockaddr, &netaddr, port);
2014 *ret = obj;
2018 CLEANUP_OBJ(obj);
2035 cfg_print_sockaddr(cfg_printer_t *pctx, const cfg_obj_t *obj) {
2040 isc_netaddr_fromsockaddr(&netaddr, &obj->value.sockaddr);
2043 port = isc_sockaddr_getport(&obj->value.sockaddr);
2081 cfg_obj_issockaddr(const cfg_obj_t *obj) {
2082 REQUIRE(obj != NULL);
2083 return (ISC_TF(obj->type->rep == &cfg_rep_sockaddr));
2087 cfg_obj_assockaddr(const cfg_obj_t *obj) {
2088 REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_sockaddr);
2089 return (&obj->value.sockaddr);
2233 fileobj = elt->obj;
2300 cfg_obj_log(const cfg_obj_t *obj, isc_log_t *lctx, int level,
2313 obj->file == NULL ? "<unknown file>" : obj->file,
2314 obj->line, msgbuf);
2319 cfg_obj_file(const cfg_obj_t *obj) {
2320 return (obj->file);
2324 cfg_obj_line(const cfg_obj_t *obj) {
2325 return (obj->line);
2330 cfg_obj_t *obj;
2332 obj = isc_mem_get(pctx->mctx, sizeof(cfg_obj_t));
2333 if (obj == NULL)
2335 obj->type = type;
2336 obj->file = current_file(pctx);
2337 obj->line = pctx->line;
2338 *ret = obj;
2346 cfg_obj_t *obj = symval.as_pointer;
2352 cfg_obj_destroy(pctx, &obj);
2360 cfg_obj_t *obj = NULL;
2362 CHECK(cfg_create_obj(pctx, type, &obj));
2366 obj->value.map.symtab = symtab;
2367 obj->value.map.id = NULL;
2369 *ret = obj;
2373 if (obj != NULL)
2374 isc_mem_put(pctx->mctx, obj, sizeof(*obj));
2379 free_map(cfg_parser_t *pctx, cfg_obj_t *obj) {
2380 CLEANUP_OBJ(obj->value.map.id);
2381 isc_symtab_destroy(&obj->value.map.symtab);
2385 cfg_obj_istype(const cfg_obj_t *obj, const cfg_type_t *type) {
2386 return (ISC_TF(obj->type == type));
2390 * Destroy 'obj', a configuration object created in 'pctx'.
2394 cfg_obj_t *obj;
2399 obj = *objp;
2400 obj->type->rep->free(pctx, obj);
2401 isc_mem_put(pctx->mctx, obj, sizeof(cfg_obj_t));
2406 free_noop(cfg_parser_t *pctx, cfg_obj_t *obj) {
2408 UNUSED(obj);