Author: mimir Date: 2005-08-02 22:25:42 +0000 (Tue, 02 Aug 2005) New Revision: 8954
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8954 Log: Use binding string to specify host rather than share path, as we use rpc call here after all. Also, safely exit (freeing memory context) in case of any error. rafal Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_share.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-02 22:01:04 UTC (rev 8953) +++ branches/SAMBA_4_0/source/torture/libnet/libnet_share.c 2005-08-02 22:25:42 UTC (rev 8954) @@ -114,18 +114,31 @@ int i; BOOL ret = True; struct libnet_context* libnetctx; - const char* host; + const char *binding, *host; + struct dcerpc_binding *bind; TALLOC_CTX *mem_ctx; 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); + if (!libnetctx) { + printf("Couldn't allocate libnet context\n"); + ret = False; + goto done; + } + libnetctx->cred = cmdline_credentials; printf("Testing libnet_ListShare\n"); - share.in.server_name = talloc_asprintf(mem_ctx, "%s", host); + share.in.server_name = talloc_asprintf(mem_ctx, "%s", bind->host); for (i = 0; i < ARRAY_SIZE(levels); i++) { share.in.level = levels[i]; @@ -135,12 +148,15 @@ if (!NT_STATUS_IS_OK(status)) { printf("libnet_ListShare level %u failed - %s\n", share.in.level, nt_errstr(status)); ret = False; + goto done; } printf("listing shares:\n"); test_displayshares(share); } +done: + talloc_free(mem_ctx); return ret; }
