STEP04c: ncacn_http
authorStefan Metzmacher <metze@samba.org>
Mon, 20 Oct 2014 07:21:31 +0000 (09:21 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 10:45:39 +0000 (12:45 +0200)
source4/librpc/rpc/dcerpc_connect.c

index 7fe57cd921ba11a37b9930d91e9de9443d2bcf13..f18cbc9aebbb535808a037937bb48d2bcea2cb5d 100644 (file)
@@ -37,6 +37,7 @@
 #include "libcli/resolve/resolve.h"
 #include "lib/http/http.h"
 #include "lib/util/util_net.h"
+#include "librpc/rpc/dcerpc_connection.h"
 
 struct dcerpc_pipe_connect {
        struct dcecli_connection *conn;
@@ -667,11 +668,26 @@ static void continue_pipe_open_ncacn_http(struct tevent_req *subreq)
        if (!composite_is_ok(c)) return;
 
        s->io.conn->transport.transport = NCACN_HTTP;
-       s->io.conn->transport.stream = stream;
-       s->io.conn->transport.write_queue = queue;
-       s->io.conn->transport.pending_reads = 0;
-       s->io.conn->server_name = strupper_talloc(s->io.conn,
-                                                 s->target_hostname);
+       //s->io.conn->transport.stream = stream;
+       //s->io.conn->transport.write_queue = queue;
+       //s->io.conn->transport.pending_reads = 0;
+       //s->io.conn->server_name = strupper_talloc(s->io.conn,
+       //                                        s->target_hostname);
+
+       s->io.conn->assoc = dcerpc_association_create(s->io.conn, 0);
+       if (composite_nomem(s->io.conn->assoc, c)) {
+               return;
+       }
+       s->io.conn->conn = dcerpc_connection_create(s->io.conn,
+                                                   s->io.conn->assoc,
+                                                   &stream);
+       if (composite_nomem(s->io.conn->conn, c)) {
+               return;
+       }
+       /*
+        * Windows uses 5840 for ncacn_http,
+        */
+       dcerpc_connection_set_max_fragment_sizes(s->io.conn->conn, 5840);
 
        composite_done(c);
 }