/* show sequence numbers */ static bool wbinfo_show_onlinestatus(const char *domain) { struct wbcDomainInfo *domain_list = NULL; size_t num_domains; wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE; int i; wbc_status = wbcListTrusts(&domain_list, &num_domains); if (!WBC_ERROR_IS_OK(wbc_status)) { return false; } for (i=0; i<num_domains; i++) { bool is_offline; if (domain) { if (!strequal(domain_list[i].short_name, domain)) { continue; } } is_offline = (domain_list[i].domain_flags & WBC_DOMINFO_DOMAIN_OFFLINE); d_printf("%s : %s\n", domain_list[i].short_name, is_offline ? "offline" : "online" ); } return true; }
static bool test_wbc_trusts(struct torture_context *tctx) { struct wbcDomainInfo *domains; size_t num_domains; int i; torture_assert_wbc_ok(tctx, wbcListTrusts(&domains, &num_domains), "wbcListTrusts failed"); torture_assert(tctx, !(num_domains > 0 && !domains), "wbcListTrusts returned invalid results"); for (i=0; i < MIN(num_domains,100); i++) { struct wbcAuthErrorInfo *error; /* struct wbcDomainSid sid; enum wbcSidType name_type; char *domain; char *name; */ torture_assert_wbc_ok(tctx, wbcCheckTrustCredentials(domains[i].short_name, &error), "wbcCheckTrustCredentials failed"); /* torture_assert_wbc_ok(tctx, wbcLookupName(domains[i].short_name, NULL, &sid, &name_type), "wbcLookupName failed"); torture_assert_int_equal(tctx, name_type, WBC_SID_NAME_DOMAIN, "wbcLookupName expected WBC_SID_NAME_DOMAIN"); torture_assert_wbc_ok(tctx, wbcLookupSid(&sid, &domain, &name, &name_type), "wbcLookupSid failed"); torture_assert_int_equal(tctx, name_type, WBC_SID_NAME_DOMAIN, "wbcLookupSid expected WBC_SID_NAME_DOMAIN"); torture_assert(tctx, name, "wbcLookupSid returned no name"); */ } wbcFreeMemory(domains); return true; }
static bool wbinfo_list_domains(bool list_all_domains, bool verbose) { struct wbcDomainInfo *domain_list = NULL; size_t num_domains; wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE; bool print_all = !list_all_domains && verbose; int i; wbc_status = wbcListTrusts(&domain_list, &num_domains); if (!WBC_ERROR_IS_OK(wbc_status)) { return false; } if (print_all) { d_printf("%-16s%-24s%-12s%-12s%-5s%-5s\n", "Domain Name", "DNS Domain", "Trust Type", "Transitive", "In", "Out"); } for (i=0; i<num_domains; i++) { if (print_all) { d_printf("%-16s", domain_list[i].short_name); } else { d_printf("%s", domain_list[i].short_name); d_printf("\n"); continue; } d_printf("%-24s", domain_list[i].dns_name); switch(domain_list[i].trust_type) { case WBC_DOMINFO_TRUSTTYPE_NONE: d_printf("None "); break; case WBC_DOMINFO_TRUSTTYPE_FOREST: d_printf("Forest "); break; case WBC_DOMINFO_TRUSTTYPE_EXTERNAL: d_printf("External "); break; case WBC_DOMINFO_TRUSTTYPE_IN_FOREST: d_printf("In-Forest "); break; } if (domain_list[i].trust_flags & WBC_DOMINFO_TRUST_TRANSITIVE) { d_printf("Yes "); } else { d_printf("No "); } if (domain_list[i].trust_flags & WBC_DOMINFO_TRUST_INCOMING) { d_printf("Yes "); } else { d_printf("No "); } if (domain_list[i].trust_flags & WBC_DOMINFO_TRUST_OUTGOING) { d_printf("Yes "); } else { d_printf("No "); } d_printf("\n"); } return true; }