r3032: Somewhat stricter syntax for binding strings:
[gd/samba/.git] / source4 / librpc / rpc / dcerpc_ntlm.c
index 0f02669eb11b17db26553d8ad6b5bc9739625fc6..c236b6c5164937ac0f0aebf8a7f025160038e993 100644 (file)
@@ -33,7 +33,11 @@ NTSTATUS dcerpc_bind_auth_ntlm(struct dcerpc_pipe *p,
 {
        NTSTATUS status;
 
-       status = gensec_client_start(&p->security_state.generic_state);
+       if (!(p->flags & (DCERPC_SIGN | DCERPC_SEAL))) {
+               p->flags |= DCERPC_CONNECT;
+       }
+
+       status = gensec_client_start(p, &p->security_state.generic_state);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(1, ("Failed to start GENSEC client mode: %s\n", nt_errstr(status)));
                return status;
@@ -60,15 +64,16 @@ NTSTATUS dcerpc_bind_auth_ntlm(struct dcerpc_pipe *p,
                return status;
        }
 
-       status = gensec_start_mech_by_authtype(p->security_state.generic_state, DCERPC_AUTH_TYPE_NTLMSSP);
+       status = gensec_start_mech_by_authtype(p->security_state.generic_state, DCERPC_AUTH_TYPE_NTLMSSP, dcerpc_auth_level(p));
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(1, ("Failed to start set GENSEC client NTLMSSP mechanism: %s\n",
                          nt_errstr(status)));
                return status;
        }
        
-       status = dcerpc_bind_auth(p, DCERPC_AUTH_TYPE_NTLMSSP,
-                                 uuid, version);
+       status = dcerpc_bind_auth3(p, DCERPC_AUTH_TYPE_NTLMSSP,
+                                  dcerpc_auth_level(p),
+                                  uuid, version);
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(2, ("Failed to bind to pipe with NTLMSSP: %s\n", nt_errstr(status)));