1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

s4:lib/messaging: add irpc_binding_handle_by_name() helper function

metze
This commit is contained in:
Stefan Metzmacher 2010-08-30 13:44:41 +02:00
parent e26f0abe91
commit 611357aee3
2 changed files with 36 additions and 0 deletions

View File

@ -102,6 +102,10 @@ struct dcerpc_binding_handle *irpc_binding_handle(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
struct server_id server_id,
const struct ndr_interface_table *table);
struct dcerpc_binding_handle *irpc_binding_handle_by_name(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
const char *dest_task,
const struct ndr_interface_table *table);
NTSTATUS irpc_add_name(struct messaging_context *msg_ctx, const char *name);
struct server_id *irpc_servers_byname(struct messaging_context *msg_ctx, TALLOC_CTX *mem_ctx, const char *name);

View File

@ -1401,3 +1401,35 @@ struct dcerpc_binding_handle *irpc_binding_handle(TALLOC_CTX *mem_ctx,
return h;
}
struct dcerpc_binding_handle *irpc_binding_handle_by_name(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
const char *dest_task,
const struct ndr_interface_table *table)
{
struct dcerpc_binding_handle *h;
struct server_id *sids;
struct server_id sid;
/* find the server task */
sids = irpc_servers_byname(msg_ctx, mem_ctx, dest_task);
if (sids == NULL) {
errno = EADDRNOTAVAIL;
return NULL;
}
if (sids[0].id == 0) {
talloc_free(sids);
errno = EADDRNOTAVAIL;
return NULL;
}
sid = sids[0];
talloc_free(sids);
h = irpc_binding_handle(mem_ctx, msg_ctx,
sid, table);
if (h == NULL) {
return NULL;
}
return h;
}