Author: mimir Date: 2005-08-03 03:28:10 +0000 (Wed, 03 Aug 2005) New Revision: 8975
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8975 Log: Very basic test for delshare function based on code submitted by Gregory LEOCADIE <[EMAIL PROTECTED]>. rafal Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_share.c branches/SAMBA_4_0/source/torture/torture.c Changeset: Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_share.c =================================================================== --- branches/SAMBA_4_0/source/torture/libnet/libnet_share.c 2005-08-03 03:09:17 UTC (rev 8974) +++ branches/SAMBA_4_0/source/torture/libnet/libnet_share.c 2005-08-03 03:28:10 UTC (rev 8975) @@ -161,30 +161,81 @@ } +BOOL test_addshare(struct dcerpc_pipe *pipe, TALLOC_CTX *mem_ctx, const char *host, + const char* share) +{ + NTSTATUS status; + struct srvsvc_NetShareAdd add; + struct srvsvc_NetShareInfo2 i; + + i.name = share; + i.type = STYPE_DISKTREE; + i.path = "C:\\WINDOWS\\TEMP"; + i.max_users = 5; + i.comment = "Comment to the test share"; + i.password = NULL; + i.permissions = 0x0; + + add.in.server_unc = host; + add.in.level = 2; + add.in.info.info2 = &i; + + status = dcerpc_srvsvc_NetShareAdd(pipe, mem_ctx, &add); + if (!NT_STATUS_IS_OK(status)) { + printf("Failed to add a new share\n"); + return False; + } + + printf("share added\n"); + return True; +} + + BOOL torture_delshare(void) { + struct dcerpc_pipe *p; + struct dcerpc_binding *bind; struct libnet_context* libnetctx; - const char* host; + const char *host, *binding; TALLOC_CTX *mem_ctx; NTSTATUS status; BOOL ret = True; struct libnet_DelShare share; mem_ctx = talloc_init("test_listshares"); - host = lp_parm_string(-1, "torture", "host"); + binding = lp_parm_string(-1, "torture", "binding"); + status = dcerpc_parse_binding(mem_ctx, binding, &bind); + if (!NT_STATUS_IS_OK(status)) { + printf("Error while parsing the binding string\n"); + ret = False; + goto done; + } libnetctx = libnet_context_init(NULL); libnetctx->cred = cmdline_credentials; - share.in.server_name = host; + status = torture_rpc_connection(mem_ctx, + &p, + DCERPC_SRVSVC_NAME, + DCERPC_SRVSVC_UUID, + DCERPC_SRVSVC_VERSION); + + if (!test_addshare(p, mem_ctx, host, TEST_SHARENAME)) { + ret = False; + goto done; + } + + share.in.server_name = bind->host; share.in.share_name = TEST_SHARENAME; status = libnet_DelShare(libnetctx, mem_ctx, &share); if (!NT_STATUS_IS_OK(status)) { ret = False; + goto done; } + +done: talloc_free(mem_ctx); - return ret; } Modified: branches/SAMBA_4_0/source/torture/torture.c =================================================================== --- branches/SAMBA_4_0/source/torture/torture.c 2005-08-03 03:09:17 UTC (rev 8974) +++ branches/SAMBA_4_0/source/torture/torture.c 2005-08-03 03:28:10 UTC (rev 8975) @@ -2346,6 +2346,7 @@ {"NET-API-CREATEUSER", torture_createuser, 0}, {"NET-API-RPCCONNECT", torture_rpc_connect, 0}, {"NET-API-LISTSHARES", torture_listshares, 0}, + {"NET-API-DELSHARE", torture_delshare, 0}, {NULL, NULL, 0}};
