cd2eccefbadb561001eb5e73afeb731dd83a4b87
[sfrench/samba-autobuild/.git] / examples / libmsrpc / test / sam / dominfo.c
1 /*gets domain info and prints it out*/
2
3 #include "libmsrpc.h"
4 #include "test_util.h"
5
6 int main(int argc, char **argv) {
7    CacServerHandle *hnd = NULL;
8    TALLOC_CTX *mem_ctx = NULL;
9
10    mem_ctx = talloc_init("cac_dominfo");
11
12    hnd = cac_NewServerHandle(True);
13
14    cac_SetAuthDataFn(hnd, cactest_GetAuthDataFn);
15
16    cac_parse_cmd_line(argc, argv, hnd);
17
18    if(!cac_Connect(hnd, NULL)) {
19       fprintf(stderr, "Could not connect to server %s. Error: %s\n", hnd->server, nt_errstr(hnd->status));
20       exit(-1);
21    }
22
23    struct SamOpenDomain sod;
24    ZERO_STRUCT(sod);
25
26    sod.in.access = MAXIMUM_ALLOWED_ACCESS; 
27
28    if(!cac_SamOpenDomain(hnd, mem_ctx, &sod)) {
29       fprintf(stderr, "Could not open domain. Error: %s\n", nt_errstr(hnd->status));
30       goto done;
31    }
32
33    struct SamGetDomainInfo gdi;
34    ZERO_STRUCT(gdi);
35
36    gdi.in.dom_hnd = sod.out.dom_hnd;
37
38    if(!cac_SamGetDomainInfo(hnd, mem_ctx, &gdi)) {
39       fprintf(stderr, "Could not get domain info. Error: %s\n", nt_errstr(hnd->status));
40       goto done;
41    }
42
43    printf("Got domain info:\n");
44    print_cac_domain_info(gdi.out.info);
45
46 done:
47    cac_SamClose(hnd, mem_ctx, sod.out.dom_hnd);
48
49    cac_FreeHandle(hnd);
50
51    talloc_destroy(mem_ctx);
52    
53    return 0;
54 }
55