47
48
int argc, const char **argv)
50
const char *entrypath, *servername, *sharename, *comment;
51
const char *path, *servername, *sharename, *comment;
54
printf("Usage: %s entrypath servername sharename comment\n",
55
printf("Usage: %s path servername sharename comment\n",
56
57
return NT_STATUS_OK;
60
61
servername = argv[2];
61
62
sharename = argv[3];
64
result = rpccli_dfs_add(cli, mem_ctx, entrypath, servername,
65
result = rpccli_dfs_Add(cli, mem_ctx, path, servername,
65
66
sharename, comment, flags);
91
92
/* Display a DFS_INFO_1 structure */
93
static void display_dfs_info_1(DFS_INFO_1 *info1)
94
static void display_dfs_info_1(NETDFS_DFS_INFO1 *info1)
97
unistr2_to_ascii(temp, &info1->entrypath, sizeof(temp) - 1);
98
printf("entrypath: %s\n", temp);
98
unistr2_to_ascii(temp, &info1->path, sizeof(temp) - 1);
99
printf("path: %s\n", temp);
101
102
/* Display a DFS_INFO_2 structure */
103
static void display_dfs_info_2(DFS_INFO_2 *info2)
104
static void display_dfs_info_2(NETDFS_DFS_INFO2 *info2)
107
unistr2_to_ascii(temp, &info2->entrypath, sizeof(temp) - 1);
108
printf("entrypath: %s\n", temp);
108
unistr2_to_ascii(temp, &info2->path, sizeof(temp) - 1);
109
printf("path: %s\n", temp);
110
111
unistr2_to_ascii(temp, &info2->comment, sizeof(temp) - 1);
111
112
printf("\tcomment: %s\n", temp);
113
114
printf("\tstate: %d\n", info2->state);
114
printf("\tnum_storages: %d\n", info2->num_storages);
115
printf("\tnum_stores: %d\n", info2->num_stores);
117
118
/* Display a DFS_INFO_3 structure */
119
static void display_dfs_info_3(DFS_INFO_3 *info3)
120
static void display_dfs_info_3(NETDFS_DFS_INFO3 *info3)
124
unistr2_to_ascii(temp, &info3->entrypath, sizeof(temp) - 1);
125
printf("entrypath: %s\n", temp);
125
unistr2_to_ascii(temp, &info3->path, sizeof(temp) - 1);
126
printf("path: %s\n", temp);
127
128
unistr2_to_ascii(temp, &info3->comment, sizeof(temp) - 1);
128
129
printf("\tcomment: %s\n", temp);
130
131
printf("\tstate: %d\n", info3->state);
131
printf("\tnum_storages: %d\n", info3->num_storages);
133
for (i = 0; i < info3->num_storages; i++) {
134
DFS_STORAGE_INFO *dsi = &info3->storages[i];
136
unistr2_to_ascii(temp, &dsi->servername, sizeof(temp) - 1);
137
printf("\t\tstorage[%d] servername: %s\n", i, temp);
139
unistr2_to_ascii(temp, &dsi->sharename, sizeof(temp) - 1);
140
printf("\t\tstorage[%d] sharename: %s\n", i, temp);
132
printf("\tnum_stores: %d\n", info3->num_stores);
134
for (i = 0; i < info3->num_stores; i++) {
135
NETDFS_DFS_STORAGEINFO *dsi = &info3->stores[i];
137
unistr2_to_ascii(temp, &dsi->server, sizeof(temp) - 1);
138
printf("\t\tstorage[%d] server: %s\n", i, temp);
140
unistr2_to_ascii(temp, &dsi->share, sizeof(temp) - 1);
141
printf("\t\tstorage[%d] share: %s\n", i, temp);
144
146
/* Display a DFS_INFO_CTR structure */
146
static void display_dfs_info_ctr(DFS_INFO_CTR *ctr)
147
static void display_dfs_info(NETDFS_DFS_INFO_CTR *ctr)
150
for (i = 0; i < ctr->num_entries; i++) {
151
switch (ctr->switch_value) {
149
switch (ctr->switch_value) {
153
display_dfs_info_1(&ctr->dfs.info1[i]);
151
display_dfs_info_1(&ctr->u.info1);
156
display_dfs_info_2(&ctr->dfs.info2[i]);
154
display_dfs_info_2(&ctr->u.info2);
159
display_dfs_info_3(&ctr->dfs.info3[i]);
157
display_dfs_info_3(&ctr->u.info3);
162
160
printf("unsupported info level %d\n",
163
161
ctr->switch_value);
166
static void display_dfs_enumstruct(NETDFS_DFS_ENUMSTRUCT *ctr)
170
/* count is always the first element, so we can just use info1 here */
171
for (i = 0; i < ctr->e.u.info1.count; i++) {
172
switch (ctr->level) {
173
case 1: display_dfs_info_1(&ctr->e.u.info1.s[i]); break;
174
case 2: display_dfs_info_2(&ctr->e.u.info2.s[i]); break;
175
case 3: display_dfs_info_3(&ctr->e.u.info3.s[i]); break;
177
printf("unsupported info level %d\n",
195
216
int argc, const char **argv)
198
const char *entrypath, *servername, *sharename;
219
const char *path, *servername, *sharename;
199
220
uint32 info_level = 1;
221
NETDFS_DFS_INFO_CTR ctr;
202
223
if (argc < 4 || argc > 5) {
203
printf("Usage: %s entrypath servername sharename "
224
printf("Usage: %s path servername sharename "
204
225
"[info_level]\n", argv[0]);
205
226
return NT_STATUS_OK;
209
230
servername = argv[2];
210
231
sharename = argv[3];
213
234
info_level = atoi(argv[4]);
215
result = rpccli_dfs_get_info(cli, mem_ctx, entrypath, servername,
236
result = rpccli_dfs_GetInfo(cli, mem_ctx, path, servername,
216
237
sharename, info_level, &ctr);
218
239
if (NT_STATUS_IS_OK(result))
219
display_dfs_info_ctr(&ctr);
240
display_dfs_info(&ctr);