s3-librpc: Added tcpip support for dcerpc_binding_vector_create.
authorAndreas Schneider <asn@samba.org>
Tue, 22 Feb 2011 10:53:35 +0000 (11:53 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 8 Mar 2011 10:41:28 +0000 (11:41 +0100)
Signed-off-by: Günther Deschner <gd@samba.org>
source3/librpc/rpc/dcerpc_ep.c
source3/librpc/rpc/dcerpc_ep.h
source3/rpc_server/rpc_ep_setup.c

index 54db4cdbcae14c1e8f75b54bdd45ab5b7605b551..bda24a68654798bdd25014a798f37fb9d701642a 100644 (file)
@@ -27,6 +27,7 @@
 
 NTSTATUS dcerpc_binding_vector_create(TALLOC_CTX *mem_ctx,
                                      const struct ndr_interface_table *iface,
+                                     uint16_t port,
                                      struct dcerpc_binding_vector **pbvec)
 {
        struct dcerpc_binding_vector *bvec;
@@ -81,7 +82,17 @@ NTSTATUS dcerpc_binding_vector_create(TALLOC_CTX *mem_ctx,
                                }
                                break;
                        case NCACN_IP_TCP:
-                               /* TODO */
+                               if (port == 0) {
+                                       continue;
+                               }
+
+                               b->endpoint = talloc_asprintf(b, "%u", port);
+                               if (b->endpoint == NULL) {
+                                       status = NT_STATUS_NO_MEMORY;
+                                       goto done;
+                               }
+
+                               break;
                        case NCALRPC:
                                /* TODO */
                        default:
index 6da7f9b9b2a4b071f5803e1fb8f0e15fef7dc520..f88f468611985bc1033933544402b397fb4d8a36 100644 (file)
@@ -27,6 +27,7 @@ struct dcerpc_binding_vector {
 
 NTSTATUS dcerpc_binding_vector_create(TALLOC_CTX *mem_ctx,
                                      const struct ndr_interface_table *iface,
+                                     uint16_t port,
                                      struct dcerpc_binding_vector **pbvec);
 
 /**
index e8640fa1e993658077d9cb4dfecce468d744099f..fbb1ba54592ab5dd872c695bf108b092ced9d87c 100644 (file)
@@ -134,6 +134,7 @@ static NTSTATUS _rpc_ep_register(struct tevent_context *ev_ctx,
 
        status = dcerpc_binding_vector_create(talloc_tos(),
                                              iface,
+                                             port,
                                              &v);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
@@ -166,6 +167,7 @@ static NTSTATUS _rpc_ep_unregister(const struct ndr_interface_table *iface)
 
        status = dcerpc_binding_vector_create(talloc_tos(),
                                              iface,
+                                             0,
                                              &v);
        if (!NT_STATUS_IS_OK(status)) {
                return status;