STEP04c: HACK s4 client use dcerpc_connection_set_max_fragment_sizes
authorStefan Metzmacher <metze@samba.org>
Wed, 22 Jan 2014 11:53:06 +0000 (12:53 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 10:45:39 +0000 (12:45 +0200)
source4/librpc/rpc/dcerpc_smb.c
source4/librpc/rpc/dcerpc_sock.c

index 468f3989802021c99a3ff2a4db7687c4b4ca77c7..b2327a04f75bb8dbfc7abb5f2b83d37108524bf9 100644 (file)
@@ -153,16 +153,10 @@ static void dcerpc_pipe_open_smb_done(struct tevent_req *subreq)
        if (composite_nomem(c->conn, ctx)) {
                return;
        }
+       dcerpc_connection_set_max_fragment_sizes(c->conn,
+                               TSTREAM_SMBXCLI_NP_MAX_BUF_SIZE);
        dcerpc_connection_set_use_trans_fn(c->conn,
-                                          tstream_smbXcli_np_use_trans);
-
-       /*
-        * Windows uses 4280 for ncacn_np,
-        * so we also use it, this is what our
-        * tstream_smbXcli_np code relies on.
-        */
-       c->srv_max_xmit_frag = 4280;
-       c->srv_max_recv_frag = 4280;
+                               tstream_smbXcli_np_use_trans);
 
        /* Over-ride the default session key with the SMB session key */
        c->security_state.session_key = smb_session_key;
index b13e7a6945ccd957cda2c13ef9061ee2e616b1ba..0832e853cf96a520e79da98294a7b14245d13223 100644 (file)
@@ -88,14 +88,6 @@ static void continue_socket_connect(struct composite_context *ctx)
        conn->transport.transport       = s->transport;
        conn->transport.private_data    = NULL;
 
-       /*
-        * Windows uses 5840 for ncacn_ip_tcp,
-        * so we also use it (for every transport which uses bsd sockets)
-        */
-       conn->srv_max_xmit_frag = 5840;
-       conn->srv_max_recv_frag = 5840;
-
-       conn->transport.pending_reads = 0;
        conn->server_name   = strupper_talloc(conn, s->target_hostname);
 
        rc = tstream_bsd_existing_socket(conn, sock_fd, &stream);
@@ -113,6 +105,12 @@ static void continue_socket_connect(struct composite_context *ctx)
        if (composite_nomem(conn->conn, c)) {
                return;
        }
+       if (s->transport == NCACN_IP_TCP) {
+               /*
+                * Windows uses 5840 for ncacn_ip_tcp,
+                */
+               dcerpc_connection_set_max_fragment_sizes(conn->conn, 5840);
+       }
 
        /* ensure we don't get SIGPIPE */
        BlockSignals(true, SIGPIPE);