source: branches/samba-3.0/examples/libmsrpc/test/reg/regopenkey.c

Last change on this file was 1, checked in by Paul Smedley, 18 years ago

Initial code import

File size: 1.6 KB
Line 
1/*tests cac_RegOpenKey()*/
2
3#include "libmsrpc.h"
4
5int main() {
6 CacServerHandle *hnd = NULL;
7 TALLOC_CTX *mem_ctx = NULL;
8
9 int num_keys;
10 int i;
11
12 fstring *key_names;
13
14 mem_ctx = talloc_init("regopenkey");
15
16 hnd = cac_NewServerHandle(True);
17
18 printf("Enter server to connect to: ");
19 fscanf(stdin, "%s", hnd->server);
20
21 printf("How many keys do you want to open?: ");
22 fscanf(stdin, "%d", &num_keys);
23
24 key_names = TALLOC_ARRAY(mem_ctx, fstring , num_keys);
25 if(!key_names) {
26 fprintf(stderr, "No memory\n");
27 exit(-1);
28 }
29
30 for(i = 0; i < num_keys; i++) {
31 printf("Enter key to open: ");
32 fscanf(stdin, "%s", key_names[i]);
33 }
34
35 if(!cac_Connect(hnd, NULL)) {
36 fprintf(stderr, "Could not connect to server.\n Error: %s.\n errno: %s\n", nt_errstr(hnd->status), strerror(errno));
37 cac_FreeHandle(hnd);
38 exit(-1);
39 }
40
41 for(i = 0; i < num_keys; i++) {
42 printf("trying to open key %s...\n", key_names[i]);
43
44 struct RegOpenKey rok;
45 ZERO_STRUCT(rok);
46
47 rok.in.parent_key = NULL;
48 rok.in.name = key_names[i];
49 rok.in.access = REG_KEY_ALL;
50
51 if(!cac_RegOpenKey(hnd, mem_ctx, &rok)) {
52 fprintf(stderr, "Could not open key %s\n Error: %s\n", rok.in.name, nt_errstr(hnd->status));
53 continue;
54 }
55
56 printf("closing key %s...\n", key_names[i]);
57
58 if(!cac_RegClose(hnd, mem_ctx, rok.out.key)) {
59 fprintf(stderr, "Could not close handle %s\n", nt_errstr(hnd->status));
60 }
61 }
62
63 cac_FreeHandle(hnd);
64
65 talloc_destroy(mem_ctx);
66
67 return 0;
68
69}
Note: See TracBrowser for help on using the repository browser.