From f147a707955d3c57ecd0ecc7e19307adb2aed02b Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 14 Nov 2003 13:16:34 +0000 Subject: added the dfs_GetInfo all - all levels (This used to be commit 638eae6bae76eba5494e75fb7f3da8b1c205f892) --- source4/torture/rpc/dfs.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) (limited to 'source4/torture/rpc/dfs.c') diff --git a/source4/torture/rpc/dfs.c b/source4/torture/rpc/dfs.c index ad496bc742..77de4017d4 100644 --- a/source4/torture/rpc/dfs.c +++ b/source4/torture/rpc/dfs.c @@ -41,6 +41,43 @@ static BOOL test_Exist(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) return True; } +static BOOL test_InfoLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16 level, + const char *root) +{ + NTSTATUS status; + struct dfs_GetInfo r; + + r.in.path = root; + r.in.server = NULL; + r.in.share = NULL; + r.in.level = level; + + printf("Testing GetInfo level %u on '%s'\n", level, root); + + status = dcerpc_dfs_GetInfo(p, mem_ctx, &r); + if (!NT_STATUS_IS_OK(status)) { + printf("Info failed - %s\n", nt_errstr(status)); + return False; + } + + NDR_PRINT_UNION_DEBUG(dfs_Info, r.in.level, &r.out.info); + + return True; +} + +static BOOL test_Info(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *root) +{ + BOOL ret = True; + uint16 levels[] = {1, 2, 3, 4, 100, 101, 102, 200, 300}; + int i; + for (i=0;ie.info1->s[i].path; + if (!test_Info(p, mem_ctx, root)) { + ret = False; + } + } + + } + + return ret; } + static BOOL test_Enum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) { BOOL ret = True; @@ -88,6 +138,39 @@ static BOOL test_Enum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) return ret; } + +static BOOL test_Add(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) +{ + NTSTATUS status; + struct dfs_Add add; + struct dfs_Remove rem; + + add.in.path = "\\\\win2003\\2nd root\\test"; + add.in.server = "win2003"; + add.in.share = "e$"; + add.in.comment = "a test comment"; + add.in.flags = 1; + + status = dcerpc_dfs_Add(p, mem_ctx, &add); + if (!NT_STATUS_IS_OK(status)) { + printf("Add failed - %s\n", nt_errstr(status)); + return False; + } + + rem.in.path = add.in.path; + rem.in.server = add.in.server; + rem.in.share = add.in.share; + + status = dcerpc_dfs_Remove(p, mem_ctx, &rem); + if (!NT_STATUS_IS_OK(status)) { + printf("Add failed - %s\n", nt_errstr(status)); + return False; + } + + return True; +} + + BOOL torture_rpc_dfs(int dummy) { NTSTATUS status; @@ -106,6 +189,12 @@ BOOL torture_rpc_dfs(int dummy) ret = False; } +#if 0 + if (!test_Add(p, mem_ctx)) { + ret = False; + } +#endif + if (!test_Enum(p, mem_ctx)) { ret = False; } -- cgit