r10368: when building the epm tower, don't put host names in the ip address
authorAndrew Tridgell <tridge@samba.org>
Tue, 20 Sep 2005 22:52:54 +0000 (22:52 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:38:32 +0000 (13:38 -0500)
field, instead put a zero address. Note that zero is correct (ie. we
shouldn't do the lookup) as in the client we want to send a zero for
the server to fill in. When we make this call from the server we fill
in a real IP.
(This used to be commit e54c8b5658761c33d50a1a557d2ec77229b07b47)

source4/librpc/rpc/dcerpc_util.c

index 73a677cb62c48620ea5c2948301941fa68d25640..42fc897fd6aa8208aac2d2bb7f1ddef97b8b2e6c 100644 (file)
@@ -798,7 +798,18 @@ NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct dcerpc_binding *
        
        /* The 5th contains the network address */
        if (num_protocols >= 3 && binding->host) {
-               status = dcerpc_floor_set_rhs_data(mem_ctx, &tower->floors[4], binding->host);
+               if (is_ipaddress(binding->host)) {
+                       status = dcerpc_floor_set_rhs_data(mem_ctx, &tower->floors[4], 
+                                                          binding->host);
+               } else {
+                       /* note that we don't attempt to resolve the
+                          name here - when we get a hostname here we
+                          are in the client code, and want to put in
+                          a wildcard all-zeros IP for the server to
+                          fill in */
+                       status = dcerpc_floor_set_rhs_data(mem_ctx, &tower->floors[4], 
+                                                          "0.0.0.0");
+               }
                if (NT_STATUS_IS_ERR(status)) {
                        return status;
                }