[GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.
[samba.git] / source / libsmb / clifsinfo.c
index 92537ed317e13d76df5b126176abc1cbb75832c7..d2f759b1929f51091b0b9cf54e3dcb36fb677f79 100644 (file)
@@ -5,7 +5,7 @@
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -14,8 +14,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "includes.h"
@@ -65,7 +64,7 @@ BOOL cli_unix_extensions_version(struct cli_state *cli, uint16 *pmajor, uint16 *
 
        *pmajor = SVAL(rdata,0);
        *pminor = SVAL(rdata,2);
-       *pcaplow = IVAL(rdata,4);
+       cli->posix_capabilities = *pcaplow = IVAL(rdata,4);
        *pcaphigh = IVAL(rdata,8);
 
        /* todo: but not yet needed 
@@ -302,118 +301,3 @@ cleanup:
 
        return ret;     
 }
-
-/******************************************************************************
- Send/receive the request encryption blob.
-******************************************************************************/
-
-static NTSTATUS enc_blob_send_receive(struct cli_state *cli, DATA_BLOB *in, DATA_BLOB *out)
-{
-       uint16 setup;
-       char param[4];
-       char *rparam=NULL, *rdata=NULL;
-       unsigned int rparam_count=0, rdata_count=0;
-       NTSTATUS status = NT_STATUS_OK;
-
-       setup = TRANSACT2_SETFSINFO;
-
-       SSVAL(param,0,0);
-       SSVAL(param,2,SMB_REQUEST_TRANSPORT_ENCRYPTION);
-
-       if (!cli_send_trans(cli, SMBtrans2,
-                               NULL,
-                               0, 0,
-                               &setup, 1, 0,
-                               param, 4, 0,
-                               (char *)in->data, in->length, CLI_BUFFER_SIZE)) {
-               status = cli_nt_error(cli);
-               goto out;
-       }
-
-       if (!cli_receive_trans(cli, SMBtrans2,
-                               &rparam, &rparam_count,
-                               &rdata, &rdata_count)) {
-               status = cli_nt_error(cli);
-               goto out;
-       }
-
-       if (cli_is_error(cli)) {
-               status = cli_nt_error(cli);
-               if (!NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
-                       goto out;
-               }
-       }
-
-       *out = data_blob(rdata, rdata_count);
-
-  out:
-
-       SAFE_FREE(rparam);
-       SAFE_FREE(rdata);
-       return status;
-}
-
-/******************************************************************************
- Start a raw ntlmssp encryption.
-******************************************************************************/
-
-NTSTATUS cli_raw_ntlm_smb_encryption_start(struct cli_state *cli, 
-                               const char *user,
-                               const char *pass,
-                               const char *domain)
-{
-       DATA_BLOB blob_in = data_blob(NULL, 0);
-       DATA_BLOB blob_out = data_blob(NULL, 0);
-       NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
-       struct smb_trans_enc_state *es = NULL;
-
-       es = SMB_MALLOC_P(struct smb_trans_enc_state);
-       if (!es) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       ZERO_STRUCTP(es);
-       es->smb_enc_type = SMB_TRANS_ENC_NTLM;
-       status = ntlmssp_client_start(&es->s.ntlmssp_state);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto fail;
-       }
-
-       ntlmssp_want_feature(es->s.ntlmssp_state, NTLMSSP_FEATURE_SESSION_KEY);
-       es->s.ntlmssp_state->neg_flags |= (NTLMSSP_NEGOTIATE_SIGN|NTLMSSP_NEGOTIATE_SEAL);
-
-       if (!NT_STATUS_IS_OK(status = ntlmssp_set_username(es->s.ntlmssp_state, user))) {
-               goto fail;
-       }
-       if (!NT_STATUS_IS_OK(status = ntlmssp_set_domain(es->s.ntlmssp_state, domain))) {
-               goto fail;
-       }
-       if (!NT_STATUS_IS_OK(status = ntlmssp_set_password(es->s.ntlmssp_state, pass))) {
-               goto fail;
-       }
-
-       do {
-               status = ntlmssp_update(es->s.ntlmssp_state, blob_in, &blob_out);
-               data_blob_free(&blob_in);
-               if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED) || NT_STATUS_IS_OK(status)) {
-                       status = enc_blob_send_receive(cli, &blob_out, &blob_in);
-               }
-               data_blob_free(&blob_out);
-       } while (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED));
-
-       data_blob_free(&blob_in);
-
-       if (NT_STATUS_IS_OK(status)) {
-               /* Replace the old state, if any. */
-               if (cli->trans_enc_state) {
-                       common_free_encryption_state(&cli->trans_enc_state);
-               }
-               cli->trans_enc_state = es;
-               cli->trans_enc_state->enc_on = True;
-               es = NULL;
-       }
-
-  fail:
-
-       common_free_encryption_state(&es);
-       return status;
-}