ilbadm_status_t ilbadm_export_hc(ilb_handle_t h, FILE *fp) { ilb_status_t rclib; ilbadm_status_t ret = ILBADM_OK; hc_export_arg_t arg; arg.fp = fp; rclib = ilb_walk_hc(h, ilbadm_export_hcinfo, (void *)&arg); if (rclib != ILB_STATUS_OK) { ilbadm_err(ilb_errstr(rclib)); ret = ILBADM_LIBERR; } return (ret); }
/* ARGSUSED */ ilbadm_status_t ilbadm_show_hc(int argc, char *argv[]) { ilb_handle_t h = ILB_INVALID_HANDLE; ilb_status_t rclib; ofmt_handle_t ofmt_h; ofmt_status_t ofmt_ret; if ((ofmt_ret = ofmt_open("all", hc_fields, 0, SHOW_HC_COLS, &ofmt_h)) != OFMT_SUCCESS) { char err_buf[SHOW_HC_COLS]; ilbadm_err(gettext("ofmt_open failed: %s"), ofmt_strerror(ofmt_h, ofmt_ret, err_buf, SHOW_HC_COLS)); return (ILBADM_LIBERR); } rclib = ilb_open(&h); if (rclib != ILB_STATUS_OK) goto out; if (argc == 1) { rclib = ilb_walk_hc(h, ilbadm_print_hc, ofmt_h); } else { ilb_hc_info_t hc_info; int i; for (i = 1; i < argc; i++) { rclib = ilb_get_hc_info(h, argv[i], &hc_info); if (rclib == ILB_STATUS_OK) ofmt_print(ofmt_h, &hc_info); else break; } } out: ofmt_close(ofmt_h); if (h != ILB_INVALID_HANDLE) (void) ilb_close(h); if (rclib != ILB_STATUS_OK) { ilbadm_err(ilb_errstr(rclib)); return (ILBADM_LIBERR); } return (ILBADM_OK); }
ilb_status_t ilb_reset_config(ilb_handle_t h) { ilb_status_t rc; if (h == NULL) return (ILB_STATUS_EINVAL); rc = ilb_walk_rules(h, i_drop_rule, NULL, NULL); if (rc != ILB_STATUS_OK) goto out; rc = ilb_walk_servergroups(h, i_drop_sg, NULL, NULL); if (rc != ILB_STATUS_OK) goto out; rc = ilb_walk_hc(h, i_drop_hc, NULL); out: return (rc); }